A comprehensive, production-ready UI library for Roblox scripts featuring deep theme and config management integration. Create professional interfaces with windows, tabs, interactive elements, and persistent user customization.
- π¨ Deep Theme Integration: Built-in ThemeManager with real-time color updates and custom theme support
- πΎ Advanced Save System: Persistent configuration saving/loading with auto-registration
- π’ Professional Notifications: Rich notification system with animations, DPI scaling, and structured content
- π§ Automatic Manager Setup: One-line functions to add theme/config tabs to any window
- π± Enhanced Mobile Support: Responsive design with touch optimizations and DPI scaling
β οΈ Warning Box System: Color-coded alerts for different message types (Info, Warning, Error, Success)- π οΈ Helper Utilities: MakeOutline for consistent UI framing and enhanced tooltip system
- π― Easy-to-Use API: Intuitive method calls for creating complex UIs
- π Perfect Scaling: DPI-aware elements that look crisp on any resolution
Load the library in your script:
local Library = loadstring(game:HttpGet"https://raw.githubusercontent.com/nonsenseontop/KeyForge-UI-Library/master/KeyForgeUILibrary.lua"))()Or require it as a module:
local Library = require(path.to.library)-- Create a window
local win = Library.new("My Script", true, 600, 400, "RightControl")
-- Add a tab
local tab = win:Tab("Main", "rbxassetid://iconId")
-- Add a section
local section = tab:Section("Features")
-- Add UI elements
section:Toggle("Enable Feature", false, function(state)
print("Feature enabled:", state)
end)
section:Slider("Volume", 50, function(value)
print("Volume:", value)
end)
section:Button("Click Me", function()
print("Button clicked!")
end)Automatically add a full theme customization interface:
local tab = win:Tab("Settings")
-- Adds color pickers for all theme colors, font selector, and theme presets
Library:ApplyThemeManager(tab, "Appearance")
-- Manual theme control
ThemeManager:ApplyTheme("Dark") -- Apply built-in theme
ThemeManager:ApplyTheme("MyCustomTheme") -- Apply custom themeAvailable theme options:
- BackgroundColor: Main window background
- MainColor: Section and tab backgrounds
- AccentColor: Buttons, sliders, and highlights
- OutlineColor: Borders and frames
- FontColor: Text color
Automatically add save/load configuration:
local tab = win:Tab("Settings")
-- Adds config input and save/load buttons
Library:ApplySaveManager(tab, "Configuration")
-- Manual config control
SaveManager:Save("myConfig") -- Save current settings
SaveManager:Load("myConfig") -- Load saved settingsDisplay professional notifications:
-- Simple notification
Library:Notify("Feature enabled successfully!")
-- Rich notification with title and description
Library:Notify({
Title = "Important Update",
Description = "Please restart your script for best performance",
Time = 5 -- Display duration in seconds
})Show color-coded alerts in your interface:
-- Different severity levels with distinct colors
section:WarningBox("Beta Feature", "This feature is in beta and may change.", "Warning")
section:WarningBox("Connection Error", "Unable to connect to server.", "Error")
section:WarningBox("Success!", "Settings saved successfully.", "Success")
section:WarningBox("Tip", "You can customize themes in the Settings tab.", "Info")- Window: Main UI container
- Tab: Organize sections within windows
- Section: Group related elements
- Toggle: Boolean on/off switch
- Button: Clickable action trigger
- Dropdown: Selection from multiple options
- Slider: Numeric value selector
- SearchBar: Filterable list container
- Keybind: Hotkey assignment
- TextBox: Text input field
- ColorWheel: HSV color picker
- Label: Display text with optional color
- Title: Decorative heading
Full documentation of all methods and their parameters.
new(windowName, constrainToScreen, width, height, visibilityKeybind, backgroundImageId)LockScreenBoundaries(constrain)
Tab(tabName, tabImage)- Creates a new tabSection(sectionTitle)- Creates a new section within a tab
Most UI elements can be added to any section or container:
Toggle(name, defaultState, callback)Button(name, callback)Dropdown(name, optionList, defaultIndex, callback)Slider(name, defaultValue, callback, max, min)SearchBar(placeholderText)Keybind(name, callback, defaultKey)TextBox(name, callback)ColorWheel(name, defaultColor, callback)Label(text, textSize, textColor)Title(text)
Library:ApplyThemeManager(tab, groupboxName)- Add complete theme customization UI to specified tabLibrary:ApplySaveManager(tab, groupboxName)- Add save/load configuration UI to specified tab
Library:RegisterElementType(elementType, updateFunction)- Register custom element types for theme updatesLibrary:RegisterOption(element, identifier, elementType, defaultValue)- Register elements for configuration savingLibrary:RegisterToggle(element, identifier, defaultValue)- Register toggle elements for saving/loading
Library:MakeOutline(frame, cornerRadius)- Create consistent outline borders for UI elementsLibrary:AddTooltip(infoStr, disabledInfoStr, hoverInstance)- Add hover tooltips to elementsLibrary:Notify(message)orLibrary:Notify({Title, Description, Time})- Display notifications
Library:GetTextBounds(text, font, size, width)- Get precise text dimensions for layoutLibrary:UpdateDPI(instance, properties)- Apply DPI scaling to UI elements
- "Default", "Light", "Dark"
ThemeManager:ApplyTheme(themeName)- Switch to specified theme instantlyThemeManager:SetFolder(folder)- Set theme save locationThemeManager:ThemeUpdate()- Force refresh all element colors
SaveManager:Save(configName)- Save current UI stateSaveManager:Load(configName)- Load saved configurationSaveManager:SetFolder(folder)- Set config save locationSaveManager:IsReady()- Check if file system is availableSaveManager:GetConfigs()- Get list of saved configurations
- Toggle, Slider, Dropdown, ColorPicker, Input
- "Info" - Blue accent color for general information
- "Warning" - Yellow for caution messages
- "Error" - Red for error conditions
- "Success" - Green for positive confirmations
- π¨ Deep Theme Integration: Complete theme manager with real-time color updates
- πΎ Advanced Save System: Persistent configuration with auto-registration
- π’ Professional Notifications: Rich notification system with DPI scaling and animations
β οΈ Warning Box System: Color-coded alerts (Info, Warning, Error, Success)- π§ Automatic Manager Setup: One-line functions to add theme/config tabs
- π DPI Scaling Support: Perfect scaling across all resolutions
- π οΈ Helper Utilities: MakeOutline for consistent borders, enhanced tooltips
- π± Improved Mobile Support: Touch optimizations and responsive design
The library includes an advanced configuration system with:
- Persistent Settings: Save/load UI states automatically
- Element Auto-Registration: New elements automatically register for saving
- File System Integration: Save to custom folders with backup support
- Theme Persistence: Color schemes and font preferences are preserved
- Themes:
KeyForgeSettings/themes/ - Configs:
KeyForgeSettings/settings/
- Works on most Roblox exploits with GUI and mouse support.
- Includes mobile responsiveness with touch controls.
- Supports both Synapse X and other executor environments.
- File system functions required for save/load features.
- Ensure file system functions are available in your executor
- Check that
KeyForgeSettingsfolder can be created - Verify no conflicts with other scripts
- Force reload the script after changing resolutions
- Check that DPI scaling is set to 1.0 if experiencing issues
- On mobile devices, interface automatically adjusts size
- Touch controls are optimized for smaller screens
Contributions are welcome! Please open issues for bugs or feature requests, and submit pull requests for improvements.
- The library is designed to be modular and extensible
- New UI elements should follow the established registration pattern
- Theme compatibility is maintained through the Scheme system
MIT License - Feel free to use, modify, and distribute.