Lightweight, drop-in Roblox UI library – no dependencies, full feature set.
local UI = loadstring(game:HttpGet("https://raw.githubusercontent.com/ZaHando15/Optical-UI-Lib-Documentation/refs/heads/main/Base"))()
Update the top-bar text and the ScreenGui name in one call:
UI:SetTitle("Your Script")
local Main = UI:MakeCat({Name = "Main"})
AddLabel(text)AddButton(opts)AddToggle(opts)AddKeybind(opts) WIPAddSlider(opts)AddDropdown(opts)AddColorPicker(opts) WIPCat:AddLabel("Information text")
Cat:AddButton({
Name = "Kill All",
Callback = function()
end
})
Cat:AddToggle({
Name = "ESP",
Default = false,
Callback = function(state)
end
})
Cat:AddKeybind({
Name = "Toggle Fly",
Callback = function()
end
})
Cat:AddSlider({
Name = "WalkSpeed",
Default = 16,
Max = 200,
Callback = function(value)
end
})
Cat:AddDropdown({
Name = "Teleports",
Options = {"Spawn", "Base", "Shop"},
Default = {"Spawn"},
Callback = function(selected)
end
})
Cat:AddColorPicker({
Name = "ESP Colour",
Default = Color3.fromRGB(255,0,0),
Callback = function(color)
end
})
All binds are stored in UI.Keybinds (array) for listing / clearing:
for _,k in pairs(UI.Keybinds) do
print(k.Name, k.Key.Name)
end
local Visuals = UI:MakeCat({Name = "Visuals"})
Visuals:AddToggle({Name = "ESP", Default = false, Callback = function(v)
end})
Visuals:AddKeybind({Name = "Toggle Fly", Callback = function()
end})
Visuals:AddColorPicker({Name = "ESP Colour", Default = Color3.new(1,0,0), Callback = function(c)
end})
Visuals:AddSlider({Name = "Transparency", Default = 0, Max = 100, Callback = function(v)
end})
rbxassetid://6031068420rbxassetid://6031068421rbxassetid://6998583936rbxassetid://6998583760