Everything Noctro exposes.
One accent-driven theme, a sidebar-first window, and a control set that covers what a script menu actually needs. This page is the complete API, nothing here isn't in the library.
Overview
Noctro is a dark-theme UI library for Roblox executors, written in Luau with no external dependencies. It ships sidebar navigation, sections, a full control set, a config system, a key system, a watermark, a keybind list, and notifications, all driven by a single accent color.
Installation
Load the library directly from noctro.cc, nothing to download or host yourself.
local Noctro = loadstring(game:HttpGet("https://noctro.cc/noctro.lua"))()Cache-bust
Executors cache HttpGet results. Append a changing query string if you need a guaranteed-fresh pull while testing.
local Source = game:HttpGet("https://noctro.cc/noctro.lua?v=" .. tostring(tick()))
local Noctro = loadstring(Source)()Quick start
A minimal menu with one page, one section, and a toggle bound to a keybind.
local Noctro = loadstring(game:HttpGet("https://noctro.cc/noctro.lua"))()
Noctro:LoadingScreen({
Title = "Noctro";
Subtitle = "Initializing...";
Duration = 1.25;
})
Noctro.SetWatermark("Noctro", true)
Noctro.SetKeybindList(true)
local Window = Noctro:Window({
Title = "Noctro";
Footer = ".gg/yourinvite";
Logo = "hash"; -- lucide name or rbxassetid://...
})
local Combat = Window:Page({ Icon = "swords" })
local Aimbot = Combat:SubPage({ Name = "Aimbot" })
local Main = Aimbot:Section({ Name = "Main"; Side = "Left"; Icon = "crosshair" })
local Enable = Main:Label({ Text = "Enable aimbot" })
Enable:Toggle({ Flag = "AimbotEnabled"; State = false; Callback = function(v) end })
Enable:Keybind({ Flag = "AimbotKey"; Key = Enum.KeyCode.RightShift; Type = "Hold" })
Main:Slider({
Name = "Field of view";
Flag = "AimbotFOV";
Min = 10; Max = 120; Default = 90;
Suffix = "°";
})
Noctro:BuildConfigPage(Window)
Noctro.Notify({ Title = "Noctro"; Text = "Loaded"; Type = "Success"; Duration = 3 })Library globals
| Member | Description |
|---|---|
| Noctro:Window(opts) | Create the main window. Returns Window. |
| Noctro:LoadingScreen(opts) | Centered loading overlay (Title, Subtitle, Duration). |
| Noctro:BuildConfigPage(Window) | Adds a full settings-style config + theme page. |
| Noctro.Notify(opts) | Toast notification. |
| Noctro.SetWatermark(text, enabled?) | Top watermark. |
| Noctro.SetKeybindList(enabled?) | Floating, draggable keybind list. |
| Noctro.SetConfigFolder(path) | Custom config directory (default "Noctro"). |
| Noctro.SetScale(number) | UI scale, e.g. 1, 0.9, 1.1. |
| Noctro.MenuKey | Menu toggle key (default Enum.KeyCode.LeftAlt). |
| Noctro.Theme / Noctro.DefaultTheme | Live theme tables. |
| Noctro.ApplyTheme() | Re-paint all themed instances. |
| Noctro.SaveConfig / LoadConfig / DeleteConfig / ListConfigs | Config file operations. |
| Noctro.SetAutoload(name?) / GetAutoload() | Autoload config name. |
| Noctro.Flags | Runtime flag store. |
Window
local Window = Noctro:Window({
Title = "My Script";
Footer = "discord.gg/invite";
Logo = "hash"; -- top-left brand icon
Icon = "hash"; -- alias for Logo
})| Method | Description |
|---|---|
| Window:Page({ Icon }) | Sidebar tab. Icon: lucide name or rbxassetid://… |
| Window.SetLogo(icon) | Change logo at runtime. |
| Window.TabEditMode | When true, tabs can be reordered from the sidebar. |
Sidebar behavior
- Soft radial selection bloom on the active tab, accent-colored.
- A small reorder toggle sits at the bottom of the sidebar.
- With reorder on, drag tabs, a ghost icon follows the cursor and an outline placeholder marks the drop slot.
- Tab order is saved in layout and configs.
Page → SubPage → Section
local Page = Window:Page({ Icon = "eye" })
local Sub = Page:SubPage({ Name = "ESP" })
local Sec = Sub:Section({
Name = "Players";
Side = "Left"; -- "Left" | "Right"
Icon = "users";
})Sections support drag rearrange with a ghost preview between columns and slots. Positions persist via layout.
Elements
Every element lives on a Section.
Label, row host for Toggle / Keybind / Colorpicker
local Row = Section:Label({ Text = "Enable feature" })
Row:Toggle({ Flag = "MyToggle"; State = false; Callback = function(v) end })
Row:Keybind({ Flag = "MyKey"; Key = Enum.KeyCode.E; Type = "Toggle" }) -- "Toggle" | "Hold"
Row:Colorpicker({ Flag = "MyColor"; Color = Color3.fromRGB(138, 156, 229) })Slider
Section:Slider({
Name = "Smoothness";
Flag = "Smooth";
Min = 0; Max = 100; Default = 35;
Suffix = "%";
Callback = function(v) end;
})Dropdown
Section:Dropdown({
Name = "Target part";
Flag = "Part";
Options = { "Head"; "Torso"; "HumanoidRootPart" };
Default = "Head";
Multi = false; -- true = multi-select
Search = false; -- optional search box
Callback = function(v) end;
})Input
Section:Input({
Name = "Config name";
Flag = "CfgName";
Placeholder = "Enter name...";
Default = "";
Callback = function(text) end;
})Button
Section:Button({
Name = "Unload";
Callback = function() end;
})Buttons don't need to span the full section width, several can sit in a row depending on layout.
Paragraph
Section:Paragraph({
Title = "Build";
Body = "Noctro UI · stable";
})Used for fixed, non-editable text, about, credits, a Discord link.
Theme
Default palette, blue accent:
| Key | Role |
|---|---|
| Accent | Primary highlight, tabs, toggles, sliders, selection. |
| AccentDark | Gradient partner, derived from Accent if needed. |
| Background | Window body. |
| Surface / SurfaceAlt | Panels, header, sections. |
| Border / SectionBorder | Strokes. |
| Text / TextDim | Typography. |
Changing theme colors, via BuildConfigPage colorpickers or script, calls ApplyTheme() and updates window chrome, the sidebar, sections, the selected tab bloom and icon, toggle / slider / sub-tab gradients, button hover gradients, and the watermark and keybind list accents. Theme is stored inside configs.
Config system
Noctro.SetConfigFolder("MyScript/Configs") -- optional
Noctro.SaveConfig("rage")
Noctro.LoadConfig("rage")
Noctro.DeleteConfig("rage")
Noctro.ListConfigs() -- { "rage", "legit", ... }
Noctro.SetAutoload("rage")What is saved
- All registered flags, toggles, sliders, dropdowns, keybinds, colors.
- Theme colors.
- Menu key.
- Layout, tab order, section order/side, keybind list and watermark positions.
BuildConfigPage(Window) adds
- A config list, click to select, selected name highlights.
- Save / Load / Overwrite / Delete / Refresh / Set autoload, acting on the selected config.
- A name field synced to selection.
- Theme colorpickers with a reset to default.
Key system (optional)
Gate the menu behind a key you validate yourself.
Noctro:KeySystem({
-- integrate with your backend; this is a demo validator
Validate = function(key)
-- return success, expiresAt (unix) or nil
if key == "noctro-demo" then
return true, os.time() + 7 * 24 * 3600
end
return false
end;
Remember = true;
ShowExpiry = true; -- menu + optional watermark
WatermarkExpiry = true;
})- Same visual language as the main menu, gradients, surfaces, corners.
- Key field only, no username or password by default.
- Remember-me checkbox, draggable login panel.
- On success: a loading state on the menu, then the full UI.
- Sign out clears the stored key.
Watermark & keybind list
Noctro.SetWatermark("Noctro", true)
Noctro.SetKeybindList(true)- Watermark: top-center, theme-matched, no user-id spam.
- Keybind list: lists active binds with mode, draggable, clamped on-screen, position saved.
Notifications
Noctro.Notify({
Title = "Aimbot";
Text = "Enabled";
Type = "Success"; -- Success | Error | Warning | Info
Duration = 3;
})- Compact height, animated in and out.
- Position configurable from the menu, e.g. top right.
- Optional auto-notify on toggle changes via Noctro.NotifyToggles.
Search
Header search filters all controls by name across tabs. Matching a control on another tab switches to that tab automatically. Dropdowns can enable their own search with Search = true , useful for player lists.
Menu interaction
| Behavior | Detail |
|---|---|
| Open / close | Noctro.MenuKey (default Left Alt), rebindable. |
| Drag menu | Strong, smooth drag, cannot leave the screen. |
| Search bar | Dragging the search field does not move the window. |
| UI scale | Noctro.SetScale(1) |
| Unload | Provide a Button that destroys the GUI / clears hooks. |
File / config layout
Noctro/ -- or custom SetConfigFolder path
myconfig.json
layout.json -- optional layout snapshot
Autoload.txt -- if using autoload helpersRead the full, unmodified library file any time on the source page.