Sign In to Your Account

Manual registration is temporarily disabled. Please use Discord, Google or GitHub to create an account.

CONTINUE WITH
Nexus Ui Library *example* - Universal Script | Free Roblox Script

Nexus Ui Library *example*

Universal 57 views 2 months ago
Nexus Ui Library *example* - Roblox Script
Mobile Mobile Friendly

Description

Credits: Carterjam28YT

Nexus Library (Nexus UI)🚀 What is Nexus LibraryNexus Library is a lightweight UI library designed for Roblox — a simple, flexible “UI‑building toolkit” that makes it easy to create windows, tabs, sections, buttons and more with a consistent theme out of the box. It provides a ready‑to‑use color palette, built‑in animations (hover, click, fade‑in, slide‑in), and optional key‑system support (for premium / access‑controlled UIs).It’s ideal if you want to quickly build sleek, modern UI interfaces in Roblox without writing everything from scratch.✨ Why use Nexus Libraryready‑made themes & colors — you don’t have to pick and define every color or style manually; the library gives you a consistent palette (primary, dark, secondary, success, warning, error, etc.).built‑in animation presets — common UI animations like hover, click effects, fade‑ins and sliding are baked in.rapid UI creation — utility functions like CreateElement let you spawn GUI objects with custom properties without boilerplate.optional key‑system support — if you want to gate parts of your UI behind a “premium key” (e.g. for VIP access), Nexus Library offers a basic key‑validation system and a default key‑entry screen.modular structure — windows, tabs, sections and components are organized so you can build complex UIs in a structured way.

579 Lines 18,772 Bytes
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local LibraryUrl = "https://raw.githubusercontent.com/Carterjam28YT/Nexus-UI/refs/heads/main/Nexus%20Library%20open%20src"
local Success, Library = pcall(function()
    return loadstring(game:HttpGet(LibraryUrl))()
end)

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")

-- 1. Initialize the Window
Library:Watermark("My Script Name | v1.0")
local Window = Library:Window("My Script Hub")

local Icons = {
    Combat = "7733771472", -- eye
    -- you can add yours icons
}

-- 2. Create a Tab
-- Note: This library requires Tabs to contain SubTabs.
Window:Section("Main Functions")
local MainTab = Window:Tab("Main", "7733917120") -- also can without icon: local TestTab = Window:Tab("Your Page")
Window:Section("Set Functions")
local SettingsTab = Window:Tab("Settings", "7733771472" )

-- 3. Create a SubTab (Required hierarchy: Window -> Tab -> SubTab)
local GeneralPage = MainTab:SubTab("General")
local CombatPage = MainTab:SubTab("Combat")

-- 4. Create Groupboxes (Containers for items)
-- You can choose "Left" or "Right" side
local FarmGroup = GeneralPage:Groupbox("Farming", "Left", "7733774602")
local ExtraGroup = GeneralPage:Groupbox("Extras", "Right", Icons.Combat)
local CombatGroup = CombatPage:Groupbox("pvp Settings", "Left")
local NewUiGroup = GeneralPage:Groupbox("New UI Features", "Right") 
local VisualsGroup = CombatPage:Groupbox("Visuals", "Right")

-------------------------------------------------------------------------
-- EXAMPLES OF FUNCTIONS
-------------------------------------------------------------------------

-- LABEL & PARAGRAPH
FarmGroup:AddLabel("Farming Status: Idle")
FarmGroup:AddParagraph({
    Title = "About",
    Content = "Select a weapon and enable Auto Farm. This text will automatically wrap if it gets too long for the line.",
    TextWrapped = true
})

-- 3. Пример с очень длинным текстом для проверки
FarmGroup:AddParagraph({
    Title = "Warning",
    Content = "This is a very long text to test if the paragraph system is working correctly. It should wrap to multiple lines automatically based on the width of the box."
})

-- TOGGLES (The examples you asked for)
FarmGroup:AddToggle({
    Title = "Auto Farm",
    Default = false,
    Flag = "AutoFarmFlag", -- Unique identifier for configs
    Callback = function(Value)
        print("Auto Farm is now:", Value)
        -- Your Auto Farm Loop here
    end
})

FarmGroup:AddToggle({
    Title = "Accept Quest",
    Default = true,
    Callback = function(Value)
        print("Auto Quest:", Value)
    end
})

CombatGroup:AddToggle({
    Title = "Auto Parry",
    Default = false,
    Callback = function(Value)
        print("Parry enabled:", Value)
    end
})

ExtraGroup:AddCheckbox({
    Title = "Safe Mode",
    Default = true,
    Description = "Это новый квадратный чекбокс. Отличается от Toggle видом.",
    Callback = function(Value)
        print("Safe Mode State:", Value)
    end
})

ExtraGroup:AddCheckbox({
    Title = "Debug Info",
    Default = false,
    Risky = true, -- Красный текст
    Callback = function(Value)
        print("Debug:", Value)
    end
})

CombatGroup:AddDropdown({
    Title = "ESP Mode",
    Values = {"Box", "Tracer", "Highlight"},
    Default = "Box",
    Description = "Выберите тип подсветки игроков.",
    Callback = function(Value)
        print("ESP Type:", Value)
    end
})

CombatGroup:AddTextbox({
    Title = "Spam Chat",
    Placeholder = "Enter message...",
    ClearOnFocus = true, -- Очищает текст при нажатии, чтобы удобно вводить новый
    Description = "Сообщение, которое будет отправляться в чат.",
    Callback = function(Value)
        print("Will spam:", Value)
    end
})

CombatGroup:AddToggle({
    Title = "Auto Attack",
    Default = false,
    Risky = true, -- Сделает текст красным, чтобы предупредить пользователя
    Description = "Автоматически атакует игроков в радиусе 15 стадов.", -- Всплывающее описание
    Callback = function(Value)
        print("Auto Attack:", Value)
    end
})

CombatGroup:AddSlider({
    Title = "WalkSpeed",
    Min = 16,
    Max = 250,
    Default = 16,
    Rounding = 0,
    Suffix = " studs", -- will be show "16 studs", "50 studs" и т.д.
    Description = "Изменяет скорость передвижения персонажа.",
    Callback = function(Value)
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.WalkSpeed = Value
        end
    end
})

-- SLIDER
CombatGroup:AddSlider({
    Title = "Attack Distance",
    Min = 1,
    Max = 50,
    Default = 15,
    Rounding = 1, -- Decimals (0 = integer)
    Callback = function(Value)
        print("Distance set to:", Value)
    end
})

-- DROPDOWN (Single)
ExtraGroup:AddDropdown({
    Title = "Weapon Select",
    Values = {"Sword", "Bow", "Magic", "Loll", "Lool", "Loool", "Looool", "Lol"},
    Default = "Sword",
    Multi = false,
    Callback = function(Value)
        print("Selected Weapon:", Value)
    end
})

-- DROPDOWN (Multi)
ExtraGroup:AddDropdown({
    Title = "Target Priority",
    Values = {"Players", "NPCs", "Bosses", "Lol", "Lol", "Lol", "Loll"},
    Default = {"NPCs"}, -- Note: Must be a table for Multi
    Multi = true,
    Callback = function(Value)
        -- Value returns a table like {Players = true, NPCs = false}
        for k, v in pairs(Value) do
            if v then print(k, "is selected") end
        end
    end
})

-- COLOR PICKER
ExtraGroup:AddColorPicker({
    Title = "ESP Color",
    Default = Color3.fromRGB(255, 0, 0),
    Callback = function(Value)
        print("New Color:", Value)
    end
})

-- KEYBIND
CombatGroup:AddKeybind({
    Title = "Kill Aura Bind",
    Default = Enum.KeyCode.R,
    Callback = function(Key)
        print("Key pressed:", Key)
    end
})

-- TEXTBOX
ExtraGroup:AddTextbox({
    Title = "Custom Message",
    Placeholder = "Enter text...",
    Callback = function(Text)
        print("User typed:", Text)
    end
})

-- BUTTON
ExtraGroup:AddButton({
    Title = "Server Hop",
    Callback = function()
        print("Hopping server...")
    end
})

-- CONFIG SYSTEM (Built into the library)
local SettingsPage = SettingsTab:SubTab("Menu Settings")

-- >> ЛЕВАЯ СТОРОНА: CONFIG MANAGER <<
local ConfigGroup = SettingsPage:Groupbox("Configuration", "Left")
local Configs = Library:GetConfigs()

ConfigGroup:AddDropdown({
    Title = "Select Config",
    Values = Configs,
    Default = "default",
    Multi = false,
    Flag = "SelectedConfig",
    Callback = function(Value) end
})

ConfigGroup:AddTextbox({
    Title = "New Config Name",
    Placeholder = "Type name...",
    Flag = "NewConfigName",
    Callback = function(Value) end
})

ConfigGroup:AddButton({
    Title = "Load Selected",
    Callback = function()
        local name = Library.Flags["SelectedConfig"]
        if name then
            Library:LoadConfig(name)
        else
            Library:Notify("Error", "No config selected!", 3)
        end
    end
})

ConfigGroup:AddButton({
    Title = "Save Config",
    Callback = function()
        local name = Library.Flags["NewConfigName"]
        if name == "" or name == nil then name = Library.Flags["SelectedConfig"] end
        if name and name ~= "" then
            Library:SaveConfig(name)
            local NewList = Library:GetConfigs()
            if Library.Items["SelectedConfig"] then Library.Items["SelectedConfig"].Refresh(NewList) end
        else
            Library:Notify("Error", "Enter a name or select a config!", 3)
        end
    end
})

ConfigGroup:AddButton({
    Title = "Delete Config",
    Callback = function()
        local name = Library.Flags["SelectedConfig"]
        if name and name ~= "" then
            -- 1. Удаляем файл
            Library:DeleteConfig(name)
            
            -- 2. Обновляем список в Dropdown
            local NewList = Library:GetConfigs()
            if Library.Items["SelectedConfig"] then 
                Library.Items["SelectedConfig"].Refresh(NewList) 
            end
            
            -- 3. Сбрасываем выбранный конфиг, чтобы избежать ошибок
            Library.Flags["SelectedConfig"] = nil
        else
            Library:Notify("Error", "Select a config first!", 3)
        end
    end
})

ConfigGroup:AddButton({
    Title = "Refresh List",
    Callback = function()
        local NewList = Library:GetConfigs()
        if Library.Items["SelectedConfig"] then Library.Items["SelectedConfig"].Refresh(NewList) end
        Library:Notify("Configs", "List refreshed", 2)
    end
})

-- >> ПРАВАЯ СТОРОНА: THEME MANAGER <<
local ThemeGroup = SettingsPage:Groupbox("Theme Manager", "Right")

-- [[ ДОБАВЛЕНО: Выбор темы ]]
local ThemeList = {}
if Library.ThemePresets then
    for ThemeName, _ in pairs(Library.ThemePresets) do
        table.insert(ThemeList, ThemeName)
    end
    table.sort(ThemeList)
    
    ThemeGroup:AddDropdown({
        Title = "Preset Theme",
        Values = ThemeList,
        Default = "Default",
        Multi = false,
        Callback = function(Value)
            if Library.SetTheme then
                Library:SetTheme(Value)
            else
                warn("Library is outdated, SetTheme missing!")
            end
        end
    })
    ThemeGroup:AddSeparator()
end

ThemeGroup:AddLabel("Custom Colors")

ThemeGroup:AddColorPicker({
    Title = "Accent Color", Default = Library.Theme.Accent, Flag = "ThemeAccent",
    Callback = function(Value) Library:UpdateTheme("Accent", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Background", Default = Library.Theme.Background, Flag = "ThemeBackground",
    Callback = function(Value) Library:UpdateTheme("Background", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Sidebar", Default = Library.Theme.Sidebar, Flag = "ThemeSidebar",
    Callback = function(Value) Library:UpdateTheme("Sidebar", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Groupbox", Default = Library.Theme.Groupbox, Flag = "ThemeGroupbox",
    Callback = function(Value) Library:UpdateTheme("Groupbox", Value) end
})

ThemeGroup:AddLabel("Text & Outlines")

ThemeGroup:AddColorPicker({
    Title = "Main Text", Default = Library.Theme.Text, Flag = "ThemeText",
    Callback = function(Value) Library:UpdateTheme("Text", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Secondary Text", Default = Library.Theme.TextDark, Flag = "ThemeTextDark",
    Callback = function(Value) Library:UpdateTheme("TextDark", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Outline/Stroke", Default = Library.Theme.Outline, Flag = "ThemeOutline",
    Callback = function(Value) Library:UpdateTheme("Outline", Value) end
})

ThemeGroup:AddButton({
    Title = "Reset Theme to Default",
    Callback = function()
        Library:SetTheme("Default") -- Используем функцию сброса на дефолтную тему
        Library:Notify("Theme", "Colors reset to default", 2)
    end
})
    
-- >> ПРАВАЯ СТОРОНА (Ниже Theme Manager) : UI SETTINGS <<
local UISettings = SettingsPage:Groupbox("UI Settings", "Right")

UISettings:AddToggle({
    Title = "Show Watermark",
    Default = true,
    Flag = "WatermarkToggle",
    Callback = function(Value)
        Library.WatermarkSettings.Enabled = Value
    end
})

UISettings:AddTextbox({
    Title = "Watermark Text",
    Default = "RedOnyx V17", -- или ваше название
    Placeholder = "Enter text...",
    ClearOnFocus = false,
    Callback = function(Value)
        Library.WatermarkSettings.Text = Value
    end
})

UISettings:AddToggle({
    Title = "Groupbox Animations",
    Default = true,
    Callback = function(Value)
        if Library.GlobalSettings then
            Library.GlobalSettings.GroupboxAnimations = Value
        end
        print("Groupbox animations set to:", Value)
    end
})

-- Кнопка для быстрой выгрузки интерфейса (полезно)
UISettings:AddButton({
    Title = "Unload / Destroy UI",
    Callback = function()
        local gui = game:GetService("CoreGui"):FindFirstChild("RedOnyx")
        local water = game:GetService("CoreGui"):FindFirstChild("Watermark")
        if gui then gui:Destroy() end
        if water then water:Destroy() end
    end
})

NewUiGroup:AddTextUnformatted("local code = 'Unformatted Style'") -- Моноширинный шрифт
NewUiGroup:AddTextWrapped("This is a text without a header that is long enough to wrap to the next line automatically using AddTextWrapped.")

-- 3. SEPARATOR & SPACING (Разделители и отступы)
NewUiGroup:AddSpacing(5) -- Отступ 5 пикселей
NewUiGroup:AddSeparator() -- Линия
NewUiGroup:AddSpacing(5)

-- 4. LABEL TEXT (Ключ: Значение)
NewUiGroup:AddLabelText("User:", LocalPlayer.Name)
NewUiGroup:AddLabelText("Rank:", "VIP Member")
NewUiGroup:AddLabelText("Status:", "Active")

NewUiGroup:AddSeparator()

-- 5. BULLET TEXT & ALIGNMENT (Списки и отступы)
NewUiGroup:AddBulletText("Safe Mode Enabled")
NewUiGroup:AddBulletText("Anti-Cheat Bypassed")

NewUiGroup:AddNewLine() -- Пустая строка (аналог Spacing)
NewUiGroup:AlignTextToFramePadding("Text aligned with padding") -- Текст с небольшим отступом слева

if NewUiGroup:TreeNode("Folder: Player Scripts") then
    NewUiGroup:AddLabel("Inside the folder!")
    NewUiGroup:AddToggle({
        Title = "Anti-Aim",
        Default = false
    })
    NewUiGroup:AddButton({
        Title = "Reset Character",
        Callback = function() end
    })
    NewUiGroup:TreePop() -- Выход из папки
end

-- 2. Вложенные TreeNode (Папка в папке)
if NewUiGroup:TreeNode("Folder: Nested Example") then
    NewUiGroup:AddLabel("Level 1")
    
    if NewUiGroup:TreeNode("Sub-Folder (Level 2)") then
        NewUiGroup:AddLabel("We are deeper now")
        
        NewUiGroup:AddSlider({
            Title = "Deep Value",
            Default = 50,
            Max = 100
        })

        NewUiGroup:TreePop() -- Закрываем Sub-Folder
    end
    
    NewUiGroup:TreePop() -- Закрываем Nested Example
end

-- 3. / Header (Стилизованный TreeNode с фоном)
-- SetNextItemOpen(true) заставит его быть открытым при запуске скрипта
NewUiGroup:SetNextItemOpen(true) 
if NewUiGroup:CollapsingHeader("Visuals (Header)") then
    NewUiGroup:AddCheckbox({Title = "Box ESP", Default = true})
    NewUiGroup:AddCheckbox({Title = "Tracers", Default = false})
    NewUiGroup:AddColorPicker({Title = "Chams Color", Default = Color3.new(1,1,1)})
    
    NewUiGroup:TreePop()
end

NewUiGroup:AddProgressBar({
    Title = "Health Bar",
    Default = 0.75, -- From 0 to 1 (0% - 100%)
    Flag = "MyProgressBar",
    Description = "Shows health status (example)"
})

-- 2. RADIO BUTTON (Single selection from list, alternative to Dropdown)
NewUiGroup:AddRadioButton({
    Title = "Target Mode",
    Options = {"Nearest", "Lowest HP", "Mouse Position"}, -- Options
    Default = "Nearest",
    Flag = "TargetRadio",
    Callback = function(Value)
        print("Radio Selection changed to:", Value)
    end
})

-- 3. GRAPH (Chart)
-- Useful for displaying FPS, Ping or currency amounts
NewUiGroup:AddGraph({
    Title = "FPS Monitor",
    Values = {0.1, 0.4, 0.3, 0.8, 0.5, 0.9, 0.2}, -- Initial data (from 0 to 1, or scalable)
    Height = 50, -- Graph window height
    Flag = "FPSGraph",
    Description = "Real-time data visualization"
})

-- 4. IMAGE (Picture)
-- Can be used for logos or item previews
VisualsGroup:AddImage({
    Image = "rbxassetid://18216647696", -- Replace with your ID
    Size = UDim2.new(0, 100, 0, 100), -- Size
    Description = "Script logo"
})

-- 5. IMAGE BUTTON (Image button)
VisualsGroup:AddImageButton({
    Image = "rbxassetid://7733771472", -- Eye icon (example)
    Size = UDim2.new(0, 40, 0, 40),
    Description = "Click me!",
    Callback = function()
        print("Image Button Pressed!")
        Library:Notify("Action", "Image Button Clicked", 2)
    end
})

-- Vertical slider (for example, for adjusting jump height or FOV)
NewUiGroup:AddVerticalSlider({
    Title = "Height",
    Min = 0,
    Max = 100,
    Default = 50,
    Height = 120, -- Height of the element itself in pixels
    Flag = "VSlider1",
    Callback = function(v)
        print("Vertical Value:", v)
    end
})

-- Selectable element - like a button but maintains pressed state
NewUiGroup:AddSelectable({
    Title = "Silent Aim (Selectable)",
    Default = false,
    Flag = "Selectable1",
    Callback = function(val)
        print("Selected:", val)
    end
})

-------------------------------------------------------------------------
-- LIVE UPDATE EXAMPLE (FOR GRAPH AND BAR)
-------------------------------------------------------------------------
task.spawn(function()
    while true do
        wait(0.5)
        
        -- Update Progress Bar (HP change simulation)
        if Library.Items["MyProgressBar"] then
            local newHealth = math.random(30, 100) / 100
            Library.Items["MyProgressBar"].Set(newHealth)
        end

        -- Update Graph (FPS simulation)
        if Library.Items["FPSGraph"] then
            local graphData = {}
            for i = 1, 20 do -- Generate 20 points
                table.insert(graphData, math.random(1, 100))
            end
            Library.Items["FPSGraph"].Set(graphData)
        end
    end
end)

Comments

Comments section coming soon...

Frequently Asked Questions

To use this script, you need a Roblox Executor. Simply copy the script from this page, paste it into your executor, and run it while you are in the Universal game.

Yes, this script is completely free to use.

No, this script does not require a key.

Yes, this script is designed to be compatible with mobile executors.

Similar Scripts

Share Script

Share this script with others by copying the link or using your device's share options.

https://rbxscripts.net/scripts/nexus-ui-library-example/
or

Report Script

Help us maintain a safe community. Your report will be reviewed by our moderation team and appropriate action will be taken if needed.

Select a reason...
Malicious Code
Inappropriate Content
Copyright Infringement
Spam
Misleading Information
Other