Overview
WindUI:CreateWindow(Config) is the entry point for every WindUI interface. It accepts a single configuration table and returns a Window object that exposes methods for managing the UI at runtime.
Only one window can exist at a time. Calling CreateWindow a second time will print a warning and return nil.
Config
Identity
The window title displayed in the topbar.
A subtitle rendered below the title in the topbar.
Icon name (Lucide icon key, e.g.
"house") or a Roblox asset ID string. Also accepts Solar icon syntax, e.g. "solar:folder-2-bold-duotone".Pixel size of the topbar icon.
Corner radius applied to the icon image.
When
true, the icon image is tinted with the current theme’s icon color.Folder name used for config file storage (e.g.
"myhub"). When set, WindUI creates WindUI/<Folder>/ and <Folder>/ on the filesystem. Required for config persistence and key saving.Appearance
Name of the theme to apply on creation. Must match a key in
WindUI:GetThemes(). See Themes for all built-in names.Corner radius (in pixels) for the window frame.
When
true, the window background is rendered semi-transparent.Enables the acrylic (frosted glass) blur effect behind the window.
Custom background for the window. Accepts:
- A Roblox asset ID string — e.g.
"rbxassetid://123456789" - An HTTPS image URL — downloaded and cached to
<Folder>/assets/ "video:<url or rbxassetid>"— plays a looping video background- A gradient table returned by
WindUI:Gradient(stops, props)
Transparency of the background image (0 = fully opaque, 1 = invisible).
Transparency of the drop-shadow behind the window (0 = fully opaque shadow).
When
true, the subtle background panel behind the content area is hidden.Enables an alternate element style with rounder corners and adjusted padding.
Sizing
Initial window size. The offset values are clamped between
MinSize and MaxSize. Defaults to UDim2.new(0, 580, 0, 460).Minimum pixel dimensions the window can be resized to.
Maximum pixel dimensions the window can be resized to.
When
true, a drag handle in the bottom-right corner lets the user resize the window.Automatically scales the window down via
UIScale so it fits within the viewport with a 40-pixel margin.Layout
Pixel width of the left sidebar (tab list area).
When
false (the default), a search bar is rendered at the bottom of the sidebar. Set to true to hide it.The source default is
HideSearchBar ~= false, meaning the search bar is shown by default. Pass HideSearchBar = true to hide it.When
true, a custom scroll indicator is shown alongside the sidebar list.Topbar
Controls the topbar appearance.
| Field | Type | Default | Description |
|---|---|---|---|
Height | number | 52 | Topbar height in pixels. |
ButtonsType | string | "Default" | "Default" places close/minimize/fullscreen on the right; "Mac" places colored dot buttons on the left. |
Interaction
Keyboard key that toggles the window open/closed.
Open Button
Configures the floating button shown when the window is closed (mobile-friendly). Pass a table with any of the following fields:
User Panel
Displays a user info panel at the bottom of the sidebar.
| Field | Type | Description |
|---|---|---|
Enabled | boolean | Whether the panel is visible on creation. |
Anonymous | boolean | Hides the real username/display name. |
Callback | function | Fired when the user clicks the panel. |
Key System
Enables the key gate before the window opens. See the Key System page for full documentation.
Full Example
Methods
Visibility
Window:Close() returns an object with a :Destroy() method. Window:Destroy() is shorthand for Window:Close():Destroy().Appearance
Interaction
Content
Dialogs
Window:Dialog(Config) opens a modal dialog centered over the window.
Open Button
Callbacks
Global WindUI methods
These methods are on theWindUI table and affect the entire interface, not just the window.