Roblox interface library

Roblox hubs, finished.

Lyra UI is the window from Lyra Avatar Studio, packaged as a library. A resizable glass hub with a side rail that adapts to any screen, toasts, saved settings and 29 elements, built from native instances in one Luau file.

loadstring(game:HttpGet("https://raw.githubusercontent.com/lyraEz/Library-UI/main/src/Lyra.lua"))()
PC and mobile Settings saved with writefile 5 themes
Scroll
29elements, from toggles to a 3D viewer
5themes, switchable live
1 fileno assets to upload
110automated checks per change
What you get

The details players notice, already done.

Every behaviour comes from a hub that real players use every day, on phones and on PC.

Window reference

Resize from the corner

Drag the grip to any size. A badge shows the size in pixels, and the window remembers it next run.

A rail that adapts

196 px with labels on wide windows, a 60 px icon rail on medium ones, a drawer behind a menu button on phones.

Flight animation

Closing shrinks the window into a draggable floating button, and it grows back out along a straight line.

Always a way back

A shortcut key, the floating button, a chat command and opening the Roblox menu three times. Hiding is guarded when none of them work.

Toasts

Kinds, icons, pictures, action buttons and a hairline timer. Up to four stack in the corner, newest closest.

Saved settings

Give any element a Flag. Values are written as JSON and restored on the next run, callbacks included.

Themes, live

Five palettes plus Lyra.AddTheme. Window:SetTheme repaints every instance without rebuilding.

Made for phones too

Touch drag, automatic scale on small screens, captions nudged up for legibility, buttons that keep only their icon when space runs out.

Playground

Drag the corner. Close it. Bring it back.

A browser replica of the window, close enough to get a feel for it. The same layout rules run here as in Roblox, so you can watch the rail turn into icons and then into a drawer.

RightControl shows or hidesEsc ×3 reopens

Components

29 elements, one style.

Each tab, group and column takes the same methods. Every element with a value has Set and Get, and a Flag saves it.

Also: Section, Paragraph, Label, Divider, Button, ButtonRow, Action, TextArea, Group, Columns, Collapsible, Guide, Empty, Preview (3D), Link, Profile and Image. See them all in the docs.

Themes

Five skies to choose from.

Pick one below: this page, the hero and the playground all repaint, the same way Window:SetTheme repaints a live window in Roblox.

Switch at runtime
Window:SetTheme("Rose")

-- or start with it
Lyra:CreateWindow({Title = "My Hub", Theme = "Midnight"})
Your own palette
Lyra.AddTheme("Aurora", {
    Base = Color3.fromRGB(12, 22, 26),
    Accent = Color3.fromRGB(120, 230, 210),
    -- missing keys fall back to Lavender
})
Get started

From zero to a hub in three steps.

Load the library

One line in your executor. The library returns the Lyra table.

Lua
local Lyra = loadstring(game:HttpGet("https://raw.githubusercontent.com/lyraEz/Library-UI/main/src/Lyra.lua"))()

Create a window

Title, subtitle and how players bring it back. Everything else has a sensible default.

Lua
local Window = Lyra:CreateWindow({
    Title = "My Hub",
    Subtitle = "by you  ·  v1.0",
    Keybind = Enum.KeyCode.RightControl,
    ChatCommand = "hub", -- /hub or /e hub reopens it
})

Add tabs and elements

Give values a Flag and they come back next run. SettingsTab adds size, theme and reopen options for free.

Lua
local Main = Window:Tab({Title = "Main", Icon = "star"})
Main:Section("Main", "Your features go here.")
Main:Toggle({Title = "Enabled", Flag = "Enabled", Callback = function(on)
    print("Enabled:", on)
end})
Main:Slider({Title = "Power", Min = 0, Max = 100, Default = 50, Suffix = "%", Flag = "Power"})

Window:SettingsTab()
Window:Notify({Title = "Loaded", Text = "Press RightControl to hide.", Kind = "success"})
Behind it

Made by lyraEz.

Lyra UI started as the interface of Lyra Avatar Studio. Questions, ideas and showcases of what you build go to the Discord.

GITHUB PROFILElyraEz@lyraEz

The moon reminds me that even in darkness, there's always a beautiful light

FAQ

Questions people ask.

Is it free to use?

Yes. Load it with the line above and build whatever you like on top of it.

Does it work on mobile executors?

Yes. Dragging, resizing and the drawer all take touch input, the window scales down a little on small screens and every caption is nudged up one size to stay readable.

Do I need to upload images?

No. The icon sheet is embedded in the file. With writefile and getcustomasset it loads as one image; without them every icon is drawn with frames.

Where are settings saved?

In workspace/LyraUI/<Window name>.json through your executor's writefile. Pass ConfigFile = false to turn saving off.

Can I use it in Roblox Studio?

Yes, require it from a LocalScript. Saving and the embedded icon sheet need executor functions, so in Studio the window runs without them and draws vector icons.

What happens if my callback errors?

The window keeps working. The error goes to the console and to the status line, so you see it without the hub breaking.