Initialization
Fetch the EUGENE library from the remote server. On load, the UI presents a keybind selector so the user can choose how to open and close the menu.
local EUGENE = loadstring(game:HttpGet("https://diser.me/EUGENE/library/ui-library.lua"))()
Window and Name
Creates the main window. Set the menu title and a brand subtitle shown above the banner.
| Argument | Type | Description |
|---|---|---|
| Title | string | Menu name shown at the bottom left corner, for example "EUGENE Menu". |
| BrandText | string | Subtitle or link shown above the banner area. |
local Window = EUGENE.new("EUGENE UI Library", "https://diser.me/EUGENE/library/")
Theme API
Four built in themes that update the entire UI instantly. Calling Window:SetTheme() also refreshes all UI elements and automatically applies the matching theme banner to ensure visual consistency.
local ThemeNames = {"Cosmos", "Aurora", "Obsidian", "Sunset"}
SettingsTab:AddSelector("Menu Theme", ThemeNames, 1, function(index, value)
Window:SetTheme(value)
end, "Theme")
Icons
The library uses the Fluent and Lucide icon set. Browse all available names in the source file and reference them exactly as they appear.
https://raw.githubusercontent.com/dawid-scripts/Fluent/refs/heads/master/src/Icons.lua
Config API
The Config system allows users to save and load their settings. It automatically handles serialization of flags and menu positions into JSON files.
EugeneHub/configs/ folder on the user workspace.Window:AddConfigTab("EugeneHub/configs", Flags)
AddConfigTab method creates a prebuilt tab containing the save input, save and refresh buttons, and the interactive list of saved configurations.Tabs
Add tabs to the sidebar to organize your features. The library uses Fluent and Lucide icons by name.
| Argument | Type | Description |
|---|---|---|
| Name | string | Display name of the tab. |
| Description | string | Short description shown as a tooltip or subtitle. Optional |
| Icon | string | Fluent icon name, for example "lucide-user". |
local MainTab = Window:AddTab("Main", "Core modifications", "lucide-user")
Sections
Group elements within a tab under a named section header. Helps visually separate different categories of settings.
| Argument | Type | Description |
|---|---|---|
| Title | string | The section header text. |
MainTab:AddSection("Player Configuration")
Toggles
A switchable element for enabling and disabling boolean states.
| Argument | Type | Description |
|---|---|---|
| Text | string | Label for the toggle. |
| Default | boolean | Initial on or off state. |
| Callback | function | Fires with the new state on change. |
| Flag | string | Unique ID for config saving. Optional |
MainTab:AddToggle("God Mode", false, function(state)
print("God Mode is now " .. tostring(state))
end, "GodModeFlag")
Sliders
A draggable element for adjusting a numerical value. Supports both mouse drag and left or right arrow keys.
| Argument | Type | Description |
|---|---|---|
| Text | string | Label for the slider. |
| Min | number | Minimum value. |
| Max | number | Maximum value. |
| Default | number | Starting value. |
| Callback | function | Fires with the new value when adjusted. |
| Flag | string | Unique ID for config saving. Optional |
MainTab:AddSlider("Walk Speed", 16, 200, 32, function(value)
print("Speed set to " .. tostring(value))
end, "WalkSpeedFlag")
Keybinds
Lets users bind a keyboard key to an action. Click the element and press a key to reassign it.
| Argument | Type | Description |
|---|---|---|
| Text | string | Label for the keybind row. |
| Default | Enum.KeyCode | Default key to bind on first load. |
| Callback | function | Fires with the new KeyCode when changed. |
| Flag | string | Unique ID for config saving. Optional |
MainTab:AddKeybind("Toggle UI", Enum.KeyCode.RightShift, function(key)
print("UI Toggle bound to " .. key.Name)
end, "ToggleUIFlag")
Inputs
A text input field for the user to type custom text. Fires the callback when the user presses Enter to confirm.
| Argument | Type | Description |
|---|---|---|
| Text | string | Label for the input row. |
| Default | string | Initial text value. |
| Placeholder | string | Hint text shown when empty. |
| Callback | function | Fires with the new text when input completes (on Enter). |
| Flag | string | Unique ID for config saving. Optional |
MainTab:AddInput("Player Name", "EUGENE", "Enter name...", function(text)
print("Name set to " .. text)
end, "PlayerNameFlag")
Color Pickers
Opens a custom popup with an interactive 2D SV area, a Hue slider, and a HEX input for precise color selection. Click the 'Confirm' button to apply the color.
| Argument | Type | Description |
|---|---|---|
| Text | string | Label for the color picker row. |
| Default | Color3 | Initial color value. |
| Callback | function | Fires with the new Color3 when the Confirm button is pressed. |
| Flag | string | Unique ID for config saving. Optional |
MainTab:AddColorPicker("ESP Color", Color3.fromRGB(255, 0, 0), function(color)
print("Color selected")
end, "ESPColorFlag")
Selectors
A horizontal cycling selector. The user navigates with left or right arrows to pick from a list of options.
| Argument | Type | Description |
|---|---|---|
| Text | string | Label for the selector row. |
| Options | table | Array of options to cycle through. |
| DefaultIndex | number | One based index of the initially selected item. |
| Callback | function | Fires with (index, value) when the selection changes. |
| Flag | string | Unique ID for config saving. Optional |
local Options = {"Classic", "Midnight", "Obsidian"}
MainTab:AddSelector("Theme", Options, 1, function(index, value)
print("Selected " .. value)
end, "ThemeFlag")
Notifications
Shows a slide in notification at the bottom right of the screen. The title is always "EUGENE" for brand consistency.
| Argument | Type | Description |
|---|---|---|
| Text | string | Message body text. |
| Duration | number | Seconds before auto dismiss. Defaults to 2.5. Optional |
Window:Notify("Script executed successfully!", 3.5)
Modals
A customizable modal dialog for requesting user input. Automatically adapts height based on the number of inputs.
| Argument | Type | Description |
|---|---|---|
| Options | table | Configuration table for the modal. |
Window:ShowModal({
Title = "RESET PASSWORD",
Description = "Enter your new password to reset it.",
Inputs = {
{Name = "Password", Title = "New Password:", Placeholder = "Enter password..."},
{Name = "Confirm", Title = "Confirm Password:", Placeholder = "Confirm password..."}
},
ConfirmText = "Reset",
CancelText = "Cancel",
OnConfirm = function(values)
print("Password:", values.Password)
end,
OnCancel = function()
print("Modal cancelled")
end
})
Example Script
A complete runnable example covering initialization, multiple tabs, and all major UI components including the Config API and Theme features.
local Library = loadstring(game:HttpGet("https://diser.me/EUGENE/library/ui-library.lua"))()
local Flags = {
Speed = 16,
JumpEnabled = false,
ESPColor = Color3.fromRGB(255, 0, 0),
SelectedMode = 1,
Theme = "Classic"
}
local Window = Library.new("EUGENE UI Library Preview", "rscripts.net/@EUGENE")
local MainTab = Window:AddTab("Design", "UI Elements Preview", "lucide-layout")
MainTab:AddSection("Buttons and Toggles")
MainTab:AddButton("Example Button", function() print("Clicked!") end)
MainTab:AddToggle("Example Toggle", true, function(v) Flags.JumpEnabled = v end, "JumpEnabled")
MainTab:AddSection("Sliders and Keybinds")
MainTab:AddSlider("Example Slider", 0, 100, 50, function(v) Flags.Speed = v end, "Speed")
MainTab:AddKeybind("Example Keybind", Enum.KeyCode.F, function(k) print("Bound to: " .. k.Name) end, "MenuKey")
MainTab:AddSection("Color and Selection")
MainTab:AddColorPicker("Example Color", Flags.ESPColor, function(c) Flags.ESPColor = c end, "ESPColor")
MainTab:AddSelector("Example Selector", {"Option 1", "Option 2", "Option 3"}, 1, function(i, v) Flags.SelectedMode = i end, "SelectedMode")
MainTab:AddSection("Inputs and Modals")
MainTab:AddInput("Player Name", "EUGENE", "Enter name...", function(text) print("Name set to " .. text) end, "PlayerNameFlag")
MainTab:AddButton("Show Modal", function()
Window:ShowModal({
Title = "CUSTOM MODAL",
Description = "This is an example modal dialog.",
Inputs = {
{Name = "CustomText", Title = "Enter custom text:", Placeholder = "Hello World"}
},
ConfirmText = "Submit",
CancelText = "Cancel",
OnConfirm = function(values) print("Submitted:", values.CustomText) end
})
end)
Window:AddConfigTab("EugeneHub/configs", Flags)
local SettingsTab = Window:AddTab("Settings", "Menu settings", "lucide-settings")
local ThemeNames = {"Cosmos", "Aurora", "Obsidian", "Sunset"}
SettingsTab:AddSelector("Menu Theme", ThemeNames, 1, function(idx, val)
Window:SetTheme(val)
end, "Theme")
Window:Notify("Design Example loaded!", 3)