A compact Luau interface library for Roblox scripts.
Tabs, toggles, sliders, dropdowns, buttons and notifications in one file.
Download: MediaFire Installer folder
Archive password:5139237619
Source:src/NovaUI.lua. One file, no dependencies.GitHub topics: TOPICS.md lists the recommended repository topics.
Nova is a small interface library for Luau scripts. It gives you a clean window, tabs, and the controls that most script UIs need, without dragging in a framework, an asset pack, or a remote loader.
The window is draggable, the theme is a plain table, and every control returns a small object with Get and Set where it makes sense.
- Single file - copy
src/NovaUI.luainto your project. - Tabs -
window:Tab("Main")creates a page and a tab button. - Controls - section, label, button, toggle, slider, dropdown.
- Notifications -
window:Notify("Saved", 3). - Theme table - override
NovaUI.Themebefore creating the window. - Draggable window - no extra dependencies.
- No remote assets - every visual is built from Roblox instances.
- Download the bundle from the MediaFire Installer folder, or copy
src/NovaUI.luafrom this repository. Archive password: 5139237619. - Put
NovaUI.luasomewhere your executor can read. - Load it and create a window:
local Nova = loadstring(readfile("src/NovaUI.lua"))()
local window = Nova.new({
Title = "My Script",
Size = UDim2.fromOffset(520, 360),
})
local main = window:Tab("Main")
main:Section("Appearance")
main:Toggle({
Text = "Enable ESP",
Default = true,
Callback = function(enabled)
print("ESP", enabled)
end,
})
main:Slider({
Text = "Walk speed",
Min = 16,
Max = 64,
Default = 32,
Step = 1,
Callback = function(value)
print("WalkSpeed", value)
end,
})
window:Notify("Loaded", 3)A complete demo is in examples/demo.lua.
| Method | Returns | Notes |
|---|---|---|
Nova.new(options) |
Window | Title, Size, Position, Name, DisplayOrder. |
window:Tab(name) |
Tab | Creates a tab and its page. |
tab:Section(text) |
Frame | Small accent heading. |
tab:Label(text) |
TextLabel | Muted body text. |
tab:Button(options) |
TextButton | Text, Callback. |
tab:Toggle(options) |
{ Get, Set } |
Text, Default, Callback. |
tab:Slider(options) |
{ Get, Set } |
Text, Min, Max, Default, Step, Callback. |
tab:Dropdown(options) |
{ Get, Set } |
Text, Items, Callback. |
window:Notify(text, seconds) |
Frame | Top-right notification. |
window:Destroy() |
- | Disconnects and removes the GUI. |
Full signatures: docs/API.md.
Override the table before creating a window:
local Nova = loadstring(readfile("src/NovaUI.lua"))()
Nova.Theme.Accent = Color3.fromRGB(34, 211, 238)
Nova.Theme.AccentAlt = Color3.fromRGB(14, 165, 233)
Nova.Theme.Background = Color3.fromRGB(6, 12, 20)
local window = Nova.new({ Title = "Aether" })Available keys: Background, Surface, SurfaceAlt, Accent, AccentAlt, Text, Muted, Dim, Danger, Success.
Is Nova an executor?
No. Nova is a UI library. You need an executor or a Roblox script environment to run it.
Does it need a remote asset?
No. Everything is created with Roblox instances.
Can I use it in a paid script?
Yes, under the MIT license. Keep the license notice.
Why is it one file?
So it is easy to copy, audit and ship with a script.
Does it support mobile?
The window uses Roblox input events and should work with touch input for buttons and tabs. Drag is mouse-oriented; extend it if you need touch dragging.
Keep the library small and dependency-free. Read CONTRIBUTING.md before opening a PR. If Nova saves you time, a star helps other script authors find it.
See CHANGELOG.md for the release history.
MIT. See LICENSE.
Nova UI is an independent library and is not affiliated with Roblox Corporation. Use it only in environments where you have permission.