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 4 views 3 days 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...

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