Skip to main content
WindUI is a Luau UI library built for Roblox script hubs. It gives you a fully-featured window system, 10+ built-in themes, and a comprehensive set of interactive elements — all designed to work with the Roblox exploit environment.
WindUI is currently in Beta. Bugs and unstable features may occur. Report issues on GitHub or join the Discord server.

Get started

Installation

Load WindUI into your script hub in seconds with a single loadstring call.

Quickstart

Build your first window with tabs and UI elements in minutes.

Components

Explore every component — windows, tabs, buttons, sliders, dropdowns, and more.

Themes

Browse all 10+ built-in themes and learn how to create your own.

Key features

10+ built-in themes

Dark, Light, Rose, Plant, Indigo, Sky, Violet, Amber, and more — all swappable at runtime.

Rich UI elements

Toggle, Button, Slider, Dropdown, Input, Colorpicker, Keybind — all with save/load support.

Config system

Persist element state between sessions using Flag identifiers and the built-in config manager.

Key system

Gate your hub behind license keys or external API validation without extra dependencies.

Notifications & dialogs

Toast notifications, modal dialogs, and popup overlays built in.

Localization

Ship your hub in multiple languages with WindUI’s localization module.

Quick look

quickstart.lua
local WindUI = loadstring(game:HttpGet(
  "https://raw.githubusercontent.com/Footagesus/WindUI/main/dist/main.lua"
))()

local Window = WindUI:CreateWindow({
  Title = "My Hub",
  Icon = "star",
  Theme = "Dark",
})

local Tab = Window:Tab({ Title = "Main", Icon = "home" })

Tab:Toggle({
  Title = "Enable Feature",
  Value = false,
  Callback = function(state)
    print("Feature:", state)
  end,
})
1

Load WindUI

Copy the loadstring loader and paste it at the top of your script.
2

Create a window

Call WindUI:CreateWindow() with your hub’s title, icon, and theme.
3

Add tabs and elements

Use Window:Tab() to create tabs, then add UI elements like buttons, toggles, and sliders.
4

Save state with flags

Add a Flag to any element and use the config manager to persist values between sessions.

Build docs developers (and LLMs) love