Self-Contained • Zero Dependencies

Build stunning UIs
with 5BLib

A premium glassmorphism UI library for Roblox. Gradient themes, Material icons, smooth animations — all in one self-contained script.

⚡ Quick Start 📖 Documentation
example.lua
local Lib = loadstring(game:HttpGet("https://pastebin.com/raw/zCVYF0fi"))()

local Window = Lib:CreateWindow({
    Name = "My Hub",
    Subtitle = "Premium Edition",
    Theme = "Nightlight",
    LoadingEnabled = true,
})

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

Tab:CreateButton({
    Name = "Click Me",
    Description = "Every element supports descriptions",
    Callback = function()
        print("Hello from 5BLib!")
    end
})

Everything you need, built in.

No external assets. No models to import. A single script that creates a beautiful, feature-rich UI from scratch.

🪟

Glassmorphism Design

Semi-transparent dark panels with subtle borders and backdrop effects create a premium, modern aesthetic.

🎨

10 Gradient Themes

Nightlight, Starlight, Solar, Sparkle, Lime, Cherry, Daylight, Blossom, Vine, Ocean — switch in one line.

🔣

50+ Material Icons

Built-in icon library. Use names like "home", "settings", "shield" — no asset IDs needed.

Smooth Animations

Every interaction uses Exponential easing with 4 speed tiers for buttery-smooth UI transitions.

🔑

Key System

Optional key validation gate with Discord integration & key saving. Protect your scripts easily.

💾

Config Save & Load

Flag-based configuration persistence. Users' settings are automatically saved and restored.

10 hand-crafted gradient presets.

Each theme defines a 3-color gradient that accents the entire UI — title bar, toggles, sliders, and more.

Nightlight
Starlight
Solar
Sparkle
Lime
Cherry
Daylight
Blossom
Vine
Ocean

Up and running in 30 seconds.

Load the library, create a window, add tabs and elements. That's it.

-- 1. Load the library
local Lib = loadstring(game:HttpGet("https://pastebin.com/raw/zCVYF0fi"))()

-- 2. Create a window
local Window = Lib:CreateWindow({
    Name = "My Hub",
    Theme = "Nightlight",
    LoadingEnabled = true,
})

-- 3. Optional: Home tab with dashboard
Window:CreateHomeTab()

-- 4. Create tabs
local MainTab = Window:CreateTab({ Name = "Main", Icon = "home" })

-- 5. Add elements (direct or via sections)
local Section = MainTab:CreateSection("Combat")

Section:CreateToggle({
    Name = "Auto Parry",
    Description = "Automatically parries incoming attacks",
    CurrentValue = false,
    Flag = "AutoParry",
    Callback = function(value)
        print("Auto Parry:", value)
    end
})

Complete Documentation

Every function, parameter, and return value — documented.

Library:CreateWindow(settings)

Creates the main UI window. Returns a Window object.

Parameter Type Default Description
Name string "5BLib Hub" Window title
Subtitle string "" Text below the title
LogoID string? nil Roblox asset ID for logo icon
LoadingEnabled boolean true Show animated loading screen
LoadingTitle string "5BLib Interface" Loading screen title
LoadingSubtitle string "Loading..." Loading screen subtitle
Theme string "Nightlight" Gradient theme preset name
ToggleBind KeyCode RightControl Key to show/hide the UI
KeySystem boolean false Enable key system gate
ConfigurationSaving table {} Config save settings (Enabled, FolderName, FileName)
local Window = Lib:CreateWindow({
    Name = "My Hub",
    Subtitle = "v1.0",
    Theme = "Starlight",
    ToggleBind = Enum.KeyCode.RightControl,
})

Library:Notification(data)

Shows a toast notification with icon, title, and content.

Parameter Type Default Description
Title string "Notification" Notification title
Content string "" Notification body text
Icon string "info" Material icon name
Type string "Info" Info, Success, Warning, or Error
Duration number? auto Duration in seconds (auto-calculated from content length)

Library:Destroy()

Completely removes the UI, disconnects all events, and cleans up flags/options.

Window:CreateHomeTab(settings)

Creates a dashboard home tab with player avatar, server stats (ping, players, region, uptime), and executor detection.

Parameter Type Default Description
Icon string "home" Tab icon name
DiscordInvite string "" Discord invite code
SupportedExecutors table {} List of supported executor names

Window:CreateTab(settings)

Creates a new tab. Returns a Tab object with element creation methods.

Parameter Type Default Description
Name string "Tab" Tab display name
Icon string "view_in_ar" Material icon name
ShowTitle boolean true Show tab name as header

Window:SaveConfiguration() / Window:LoadConfiguration()

Saves or loads all flagged elements to/from a JSON file. Requires ConfigurationSaving.Enabled = true in CreateWindow.

Tab:CreateSection(name)

Creates a named section to group elements. Returns a Section object. All element methods below can be called on either Tab (uses a default section) or Section.

local Section = Tab:CreateSection("Combat")
Section:CreateButton({...})  -- element inside section
Tab:CreateButton({...})      -- also works (default section)

Tab:BuildThemeSection() / Tab:BuildConfigSection()

Auto-generates a theme selector or config label section inside the tab.

Section:CreateButton(settings)

Creates a clickable button with optional description and click animation.

Parameter Type Default
Name string "Button"
Description string? nil
Callback function no-op

Methods: :Set({Name, Description, Callback}), :Destroy()

Section:CreateToggle(settings)

Creates a toggle switch with animated knob.

Parameter Type Default
Name string "Toggle"
Description string? nil
CurrentValue boolean false
Flag string? nil
Callback function(boolean) no-op

Methods: :Set(boolean), :Destroy()Properties: .CurrentValue

Section:CreateSlider(settings)

Creates a draggable slider with range and increment.

Parameter Type Default
Name string "Slider"
Range {min, max} {0, 100}
Increment number 1
CurrentValue number 50
Suffix string ""
Flag string? nil
Callback function(number) no-op

Methods: :Set(number), :Destroy()Properties: .CurrentValue

Section:CreateDropdown(settings)

Creates a dropdown with single or multi-select. Supports a special "Player" type that auto-populates with server players.

Parameter Type Default
Name string "Dropdown"
Description string? nil
Options table {"Option 1", "Option 2"}
CurrentOption string|table first option
MultipleOptions boolean false
SpecialType string? nil
Callback function no-op

Methods: :Set(options), :Refresh(newOptions), :Destroy()

Section:CreateInput(settings)

Creates a text input field with optional numeric filter and character limit.

Parameter Type Default
Name string "Input"
Description string? nil
PlaceholderText string "Type here..."
CurrentValue string ""
Numeric boolean false
MaxCharacters number? nil
Enter boolean false
RemoveTextAfterFocusLost boolean false
Callback function(string) no-op

Methods: :Set(value), :Destroy()

Section:CreateBind(settings)

Creates a keybind input. Click the key display to rebind. Supports hold-to-interact mode.

Parameter Type Default
Name string "Keybind"
Description string? nil
CurrentBind string "E"
HoldToInteract boolean false
Callback function(boolean) no-op
OnChangedCallback function(string) no-op

Alias: CreateKeybindMethods: :Set(keyName), :Destroy()

Section:CreateColorPicker(settings)

Creates an HSV color picker with hue bar and saturation/value grid.

Parameter Type Default
Name string "Color Picker"
Color Color3 White
Flag string? nil
Callback function(Color3) no-op

Methods: :Set({Color = Color3}), :Destroy()

Section:CreateLabel(settings)

Creates a text label. Three styles available:

Style Appearance
1 Normal — plain text on transparent background
2 Info — blue accent bar on dark blue background
3 Warning — yellow accent bar on dark amber background

Methods: :Set(text), :Destroy()

Section:CreateParagraph(settings)

Creates a multi-line text block with title and auto-wrapping content.

Parameter Type Default
Title string "Paragraph"
Content string "Content"

Methods: :Set({Title, Content}), :Destroy()

Section:CreateDivider()

Creates a horizontal separator line. No parameters.

Methods: :Visible(boolean)