--[[ ╔══════════════════════════════════════════════════════════════════════════════╗ ║ NEXUS UI LIBRARY v3.0 ║ ║ Ultra-Configurable Roblox GUI Library ║ ║ 30+ Components | 15+ Themes | Premium System ║ ╚══════════════════════════════════════════════════════════════════════════════╝ --]] local NexusUI = {} local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TextService = game:GetService("TextService") local CoreGui = game:GetService("CoreGui") local Lighting = game:GetService("Lighting") local LocalPlayer = Players.LocalPlayer -- ═══════════════════════════════════════════════════════════════════════════════ -- DEFAULT CONFIGURATION (Fully Customizable) -- ═══════════════════════════════════════════════════════════════════════════════ NexusUI.DefaultConfig = { -- Window Settings Title = "Nexus UI", SubTitle = "v3.0", Executor = "Unknown Executor", -- GUI Dimensions GUIWidth = 400, GUIHeight = 300, -- Position Position = "Center", -- "Center", "TopLeft", "TopRight", "BottomLeft", "BottomRight", or UDim2 -- Features KeySystem = true, KeySystemTitle = "🔐 Key Authentication", KeySystemSubtitle = "Enter your access key to continue", ShowUserInfo = true, ShowExecutorInfo = true, ShowPremiumBadge = true, Draggable = true, Minimizable = true, Closable = true, Resizable = false, -- Key Settings FreeKeys = {"NEXUS-FREE-2024", "NEXUS-STARTER", "FREE-ACCESS"}, PremiumKeys = {"NEXUS-PREMIUM-VIP", "NEXUS-ELITE-2024", "PREMIUM-LIFETIME"}, -- Animation AnimationSpeed = 0.3, EasingStyle = Enum.EasingStyle.Quart, EasingDirection = Enum.EasingDirection.Out, -- Styling Theme = "Dark", CornerRadius = 8, TabWidth = 100, TitleBarHeight = 38, Padding = 10, Font = Enum.Font.Gotham, FontBold = Enum.Font.GothamBold, FontMedium = Enum.Font.GothamMedium, FontSemiBold = Enum.Font.GothamSemibold, -- Notification NotificationDuration = 3, NotificationPosition = "BottomRight", -- "TopRight", "TopLeft", "BottomRight", "BottomLeft" -- Premium Features PremiumFeatures = { "ThemeCustomizer", "AdvancedAnimations", "CloudSave", "PrioritySupport", "CustomComponents", "NoWatermark", "AutoUpdate", "MultiInstance", "ScriptHub", "DebugMode", "ResizableWindow", "CustomFont", "BlurBackground", }, -- Callbacks OnLoad = function() end, OnClose = function() end, OnMinimize = function() end, OnKeyAuthenticated = function(keyType) end, OnThemeChange = function(themeName) end, OnError = function(err) warn("[NexusUI] " .. tostring(err)) end, } -- ═══════════════════════════════════════════════════════════════════════════════ -- THEME SYSTEM (15+ Themes) -- ═══════════════════════════════════════════════════════════════════════════════ NexusUI.Themes = { Dark = { Background = Color3.fromRGB(22, 22, 28), Secondary = Color3.fromRGB(32, 32, 40), Tertiary = Color3.fromRGB(42, 42, 52), Accent = Color3.fromRGB(88, 101, 242), AccentHover = Color3.fromRGB(105, 116, 245), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(178, 178, 188), TextDark = Color3.fromRGB(120, 120, 130), Border = Color3.fromRGB(50, 50, 60), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Midnight = { Background = Color3.fromRGB(12, 12, 22), Secondary = Color3.fromRGB(22, 22, 38), Tertiary = Color3.fromRGB(32, 32, 52), Accent = Color3.fromRGB(155, 89, 182), AccentHover = Color3.fromRGB(175, 122, 197), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(180, 180, 200), TextDark = Color3.fromRGB(120, 120, 150), Border = Color3.fromRGB(40, 40, 65), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Ocean = { Background = Color3.fromRGB(12, 28, 42), Secondary = Color3.fromRGB(18, 38, 58), Tertiary = Color3.fromRGB(28, 52, 78), Accent = Color3.fromRGB(0, 168, 255), AccentHover = Color3.fromRGB(51, 185, 255), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(180, 200, 220), TextDark = Color3.fromRGB(100, 130, 160), Border = Color3.fromRGB(35, 60, 85), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Forest = { Background = Color3.fromRGB(12, 32, 22), Secondary = Color3.fromRGB(18, 42, 28), Tertiary = Color3.fromRGB(28, 58, 38), Accent = Color3.fromRGB(46, 204, 113), AccentHover = Color3.fromRGB(88, 214, 141), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(180, 210, 190), TextDark = Color3.fromRGB(100, 150, 120), Border = Color3.fromRGB(30, 55, 40), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Crimson = { Background = Color3.fromRGB(32, 12, 12), Secondary = Color3.fromRGB(42, 18, 18), Tertiary = Color3.fromRGB(58, 28, 28), Accent = Color3.fromRGB(231, 76, 60), AccentHover = Color3.fromRGB(236, 112, 99), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(210, 180, 180), TextDark = Color3.fromRGB(150, 100, 100), Border = Color3.fromRGB(60, 35, 35), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Light = { Background = Color3.fromRGB(245, 245, 250), Secondary = Color3.fromRGB(235, 235, 240), Tertiary = Color3.fromRGB(225, 225, 230), Accent = Color3.fromRGB(88, 101, 242), AccentHover = Color3.fromRGB(105, 116, 245), Text = Color3.fromRGB(30, 30, 35), TextDim = Color3.fromRGB(80, 80, 90), TextDark = Color3.fromRGB(130, 130, 140), Border = Color3.fromRGB(200, 200, 210), Success = Color3.fromRGB(39, 174, 96), Warning = Color3.fromRGB(211, 168, 0), Error = Color3.fromRGB(192, 57, 43), Info = Color3.fromRGB(41, 128, 185), Premium = Color3.fromRGB(218, 165, 32), Free = Color3.fromRGB(120, 120, 130), }, Cream = { Background = Color3.fromRGB(250, 245, 235), Secondary = Color3.fromRGB(240, 235, 225), Tertiary = Color3.fromRGB(230, 225, 215), Accent = Color3.fromRGB(210, 105, 30), AccentHover = Color3.fromRGB(220, 130, 60), Text = Color3.fromRGB(40, 30, 20), TextDim = Color3.fromRGB(100, 85, 70), TextDark = Color3.fromRGB(140, 125, 110), Border = Color3.fromRGB(210, 200, 185), Success = Color3.fromRGB(39, 174, 96), Warning = Color3.fromRGB(211, 168, 0), Error = Color3.fromRGB(192, 57, 43), Info = Color3.fromRGB(41, 128, 185), Premium = Color3.fromRGB(218, 165, 32), Free = Color3.fromRGB(120, 120, 130), }, Cyberpunk = { Background = Color3.fromRGB(8, 8, 18), Secondary = Color3.fromRGB(18, 8, 28), Tertiary = Color3.fromRGB(28, 12, 42), Accent = Color3.fromRGB(255, 0, 128), AccentHover = Color3.fromRGB(255, 51, 153), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(255, 180, 220), TextDark = Color3.fromRGB(180, 100, 150), Border = Color3.fromRGB(50, 20, 60), Success = Color3.fromRGB(0, 255, 128), Warning = Color3.fromRGB(255, 255, 0), Error = Color3.fromRGB(255, 0, 0), Info = Color3.fromRGB(0, 255, 255), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Sunset = { Background = Color3.fromRGB(28, 18, 22), Secondary = Color3.fromRGB(42, 28, 32), Tertiary = Color3.fromRGB(58, 38, 42), Accent = Color3.fromRGB(255, 107, 107), AccentHover = Color3.fromRGB(255, 140, 140), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(255, 200, 200), TextDark = Color3.fromRGB(180, 130, 130), Border = Color3.fromRGB(70, 45, 50), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Aurora = { Background = Color3.fromRGB(12, 18, 28), Secondary = Color3.fromRGB(18, 28, 42), Tertiary = Color3.fromRGB(28, 42, 62), Accent = Color3.fromRGB(0, 255, 170), AccentHover = Color3.fromRGB(51, 255, 187), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(180, 220, 210), TextDark = Color3.fromRGB(100, 150, 140), Border = Color3.fromRGB(35, 50, 70), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Matrix = { Background = Color3.fromRGB(4, 8, 4), Secondary = Color3.fromRGB(6, 12, 6), Tertiary = Color3.fromRGB(10, 20, 10), Accent = Color3.fromRGB(0, 255, 65), AccentHover = Color3.fromRGB(51, 255, 102), Text = Color3.fromRGB(0, 255, 65), TextDim = Color3.fromRGB(0, 200, 50), TextDark = Color3.fromRGB(0, 150, 40), Border = Color3.fromRGB(12, 24, 12), Success = Color3.fromRGB(0, 255, 65), Warning = Color3.fromRGB(255, 255, 0), Error = Color3.fromRGB(255, 0, 0), Info = Color3.fromRGB(0, 255, 255), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Neon = { Background = Color3.fromRGB(8, 8, 14), Secondary = Color3.fromRGB(14, 14, 24), Tertiary = Color3.fromRGB(24, 24, 40), Accent = Color3.fromRGB(255, 0, 255), AccentHover = Color3.fromRGB(255, 51, 255), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(255, 180, 255), TextDark = Color3.fromRGB(180, 100, 180), Border = Color3.fromRGB(40, 20, 40), Success = Color3.fromRGB(0, 255, 128), Warning = Color3.fromRGB(255, 255, 0), Error = Color3.fromRGB(255, 0, 0), Info = Color3.fromRGB(0, 255, 255), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Pastel = { Background = Color3.fromRGB(250, 248, 255), Secondary = Color3.fromRGB(240, 238, 250), Tertiary = Color3.fromRGB(230, 228, 245), Accent = Color3.fromRGB(179, 136, 255), AccentHover = Color3.fromRGB(200, 160, 255), Text = Color3.fromRGB(60, 50, 80), TextDim = Color3.fromRGB(100, 90, 120), TextDark = Color3.fromRGB(140, 130, 160), Border = Color3.fromRGB(210, 205, 225), Success = Color3.fromRGB(129, 199, 132), Warning = Color3.fromRGB(255, 213, 79), Error = Color3.fromRGB(239, 83, 80), Info = Color3.fromRGB(100, 181, 246), Premium = Color3.fromRGB(218, 165, 32), Free = Color3.fromRGB(120, 120, 130), }, Gold = { Background = Color3.fromRGB(22, 20, 12), Secondary = Color3.fromRGB(38, 32, 18), Tertiary = Color3.fromRGB(52, 44, 26), Accent = Color3.fromRGB(255, 215, 0), AccentHover = Color3.fromRGB(255, 223, 51), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(230, 210, 170), TextDark = Color3.fromRGB(180, 160, 120), Border = Color3.fromRGB(58, 50, 32), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, Rose = { Background = Color3.fromRGB(28, 18, 20), Secondary = Color3.fromRGB(42, 28, 30), Tertiary = Color3.fromRGB(58, 38, 42), Accent = Color3.fromRGB(255, 105, 180), AccentHover = Color3.fromRGB(255, 140, 200), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(255, 200, 220), TextDark = Color3.fromRGB(180, 120, 140), Border = Color3.fromRGB(70, 45, 52), Success = Color3.fromRGB(46, 204, 113), Warning = Color3.fromRGB(241, 196, 15), Error = Color3.fromRGB(231, 76, 60), Info = Color3.fromRGB(52, 152, 219), Premium = Color3.fromRGB(255, 215, 0), Free = Color3.fromRGB(149, 165, 166), }, } -- ═══════════════════════════════════════════════════════════════════════════════ -- UTILITY FUNCTIONS -- ═══════════════════════════════════════════════════════════════════════════════ local function SafeCall(func, ...) if type(func) ~= "function" then return nil end local success, result = pcall(func, ...) if not success then warn("[NexusUI] Error: " .. tostring(result)) return nil end return result end local function Create(className, properties) local success, instance = pcall(Instance.new, className) if not success or not instance then return nil end for prop, value in pairs(properties or {}) do pcall(function() instance[prop] = value end) end return instance end local function Tween(instance, properties, duration, easingStyle, easingDirection, callback) if not instance or not instance.Parent then return nil end duration = duration or NexusUI.DefaultConfig.AnimationSpeed easingStyle = easingStyle or NexusUI.DefaultConfig.EasingStyle easingDirection = easingDirection or NexusUI.DefaultConfig.EasingDirection local success, tweenInfo = pcall(function() return TweenInfo.new(duration, easingStyle, easingDirection) end) if not success then return nil end local success2, tween = pcall(function() return TweenService:Create(instance, tweenInfo, properties) end) if not success2 or not tween then return nil end if callback then tween.Completed:Connect(function() SafeCall(callback) end) end tween:Play() return tween end local function RoundNumber(num, decimals) decimals = decimals or 2 local mult = 10 ^ decimals return math.floor(num * mult + 0.5) / mult end local function FormatNumber(num) if num >= 1000000 then return string.format("%.1fM", num / 1000000) elseif num >= 1000 then return string.format("%.1fK", num / 1000) else return tostring(num) end end -- ═══════════════════════════════════════════════════════════════════════════════ -- KEY SYSTEM -- ═══════════════════════════════════════════════════════════════════════════════ NexusUI.KeySystem = { IsAuthenticated = false, KeyType = "Free", ValidKeys = {}, Validate = function(self, key, config) config = config or NexusUI.DefaultConfig for _, validKey in ipairs(config.FreeKeys or {}) do if key == validKey then self.IsAuthenticated = true self.KeyType = "Free" return true, "Free" end end for _, validKey in ipairs(config.PremiumKeys or {}) do if key == validKey then self.IsAuthenticated = true self.KeyType = "Premium" return true, "Premium" end end return false, nil end, IsPremium = function(self) return self.KeyType == "Premium" end, HasFeature = function(self, feature, config) if self.KeyType == "Premium" then return true end config = config or NexusUI.DefaultConfig for _, f in ipairs(config.PremiumFeatures or {}) do if f == feature then return false end end return true end, } -- ═══════════════════════════════════════════════════════════════════════════════ -- MAIN WINDOW CREATION -- ═══════════════════════════════════════════════════════════════════════════════ function NexusUI:CreateWindow(userConfig) userConfig = userConfig or {} -- Merge configs local Config = {} for k, v in pairs(self.DefaultConfig) do Config[k] = v end for k, v in pairs(userConfig) do Config[k] = v end local theme = self.Themes[Config.Theme] or self.Themes.Dark local currentTheme = theme -- Parent (support for different executors) local parentGui pcall(function() parentGui = CoreGui end) if not parentGui then pcall(function() parentGui = LocalPlayer:WaitForChild("PlayerGui") end) end if not parentGui then parentGui = game:GetService("StarterGui") end -- ScreenGui local ScreenGui = Create("ScreenGui", { Name = "NexusUI_" .. (pcall(function() return HttpService:GenerateGUID(false) end) and HttpService:GenerateGUID(false) or "GUI"), Parent = parentGui, ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, }) if not ScreenGui then return nil end -- Calculate position local guiPos if typeof(Config.Position) == "UDim2" then guiPos = Config.Position elseif Config.Position == "TopLeft" then guiPos = UDim2.new(0, 20, 0, 20) elseif Config.Position == "TopRight" then guiPos = UDim2.new(1, -Config.GUIWidth - 20, 0, 20) elseif Config.Position == "BottomLeft" then guiPos = UDim2.new(0, 20, 1, -Config.GUIHeight - 20) elseif Config.Position == "BottomRight" then guiPos = UDim2.new(1, -Config.GUIWidth - 20, 1, -Config.GUIHeight - 20) else guiPos = UDim2.new(0.5, -Config.GUIWidth/2, 0.5, -Config.GUIHeight/2) end -- Main Frame local MainFrame = Create("Frame", { Name = "MainFrame", Size = UDim2.new(0, Config.GUIWidth, 0, Config.GUIHeight), Position = guiPos, BackgroundColor3 = currentTheme.Background, BorderSizePixel = 0, Parent = ScreenGui, ClipsDescendants = true, }) if not MainFrame then return nil end -- Corner local Corner = Create("UICorner", { CornerRadius = UDim.new(0, Config.CornerRadius), Parent = MainFrame, }) -- Shadow local Shadow = Create("ImageLabel", { Name = "Shadow", AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0.5, 4), Size = UDim2.new(1, 24, 1, 24), BackgroundTransparency = 1, Image = "rbxassetid://1316045217", ImageColor3 = Color3.fromRGB(0, 0, 0), ImageTransparency = 0.6, ScaleType = Enum.ScaleType.Slice, SliceCenter = Rect.new(10, 10, 118, 118), ZIndex = -1, Parent = MainFrame, }) -- Title Bar local TitleBar = Create("Frame", { Name = "TitleBar", Size = UDim2.new(1, 0, 0, Config.TitleBarHeight), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = MainFrame, }) local TitleBarCorner = Create("UICorner", { CornerRadius = UDim.new(0, Config.CornerRadius), Parent = TitleBar, }) local TitleBarFix = Create("Frame", { Size = UDim2.new(1, 0, 0, 10), Position = UDim2.new(0, 0, 1, -10), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = TitleBar, }) -- Title Text local TitleText = Create("TextLabel", { Name = "Title", Size = UDim2.new(0, 150, 0, 18), Position = UDim2.new(0, 10, 0, 4), BackgroundTransparency = 1, Text = Config.Title, TextColor3 = currentTheme.Text, TextSize = 14, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = TitleBar, }) -- Subtitle local SubTitleText if Config.SubTitle and Config.SubTitle ~= "" then SubTitleText = Create("TextLabel", { Name = "SubTitle", Size = UDim2.new(0, 150, 0, 12), Position = UDim2.new(0, 10, 0, 22), BackgroundTransparency = 1, Text = Config.SubTitle, TextColor3 = currentTheme.TextDark, TextSize = 9, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = TitleBar, }) end -- Executor Info local ExecutorInfo if Config.ShowExecutorInfo then ExecutorInfo = Create("TextLabel", { Name = "ExecutorInfo", Size = UDim2.new(0, 100, 0, 12), Position = UDim2.new(0, 10, 0, Config.SubTitle ~= "" and 34 or 22), BackgroundTransparency = 1, Text = Config.Executor, TextColor3 = currentTheme.TextDark, TextSize = 8, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = TitleBar, }) end -- Premium/Free Badge (beside title) local KeyBadge if Config.ShowPremiumBadge then KeyBadge = Create("Frame", { Name = "KeyBadge", Size = UDim2.new(0, 60, 0, 16), Position = UDim2.new(0, 10 + (TitleText and TitleText.TextBounds.X or 0) + 6, 0, 6), BackgroundColor3 = currentTheme.Free, BorderSizePixel = 0, Parent = TitleBar, }) local KeyBadgeCorner = Create("UICorner", { CornerRadius = UDim.new(0, 4), Parent = KeyBadge, }) local KeyBadgeText = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "FREE", TextColor3 = Color3.fromRGB(255, 255, 255), TextSize = 8, Font = Config.FontBold, Parent = KeyBadge, }) -- Update badge position when title changes local function UpdateBadgePosition() pcall(function() KeyBadge.Position = UDim2.new(0, 10 + TitleText.TextBounds.X + 6, 0, 6) end) end task.delay(0.1, UpdateBadgePosition) end -- User Info Container local UserContainer if Config.ShowUserInfo then UserContainer = Create("Frame", { Name = "UserContainer", Size = UDim2.new(0, 120, 1, 0), Position = UDim2.new(1, -125, 0, 0), BackgroundTransparency = 1, Parent = TitleBar, }) -- Avatar local Avatar = Create("ImageLabel", { Name = "Avatar", Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(0, 0, 0.5, -12), BackgroundColor3 = currentTheme.Tertiary, Image = "", BorderSizePixel = 0, Parent = UserContainer, }) local AvatarCorner = Create("UICorner", { CornerRadius = UDim.new(1, 0), Parent = Avatar, }) pcall(function() local userId = LocalPlayer and LocalPlayer.UserId or 0 Avatar.Image = "https://www.roblox.com/headshot-thumbnail/image?userId=" .. userId .. "&width=150&height=150&format=png" end) -- Username local Username = Create("TextLabel", { Name = "Username", Size = UDim2.new(0, 90, 0, 14), Position = UDim2.new(0, 28, 0, 4), BackgroundTransparency = 1, Text = LocalPlayer and LocalPlayer.Name or "Guest", TextColor3 = currentTheme.Text, TextSize = 11, Font = Config.FontMedium, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = UserContainer, }) -- Key Type Label local KeyTypeLabel = Create("TextLabel", { Name = "KeyType", Size = UDim2.new(0, 50, 0, 12), Position = UDim2.new(0, 28, 0, 20), BackgroundTransparency = 1, Text = "Free", TextColor3 = currentTheme.Free, TextSize = 9, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = UserContainer, }) end -- Window Controls local CloseButton, MinimizeButton if Config.Closable then CloseButton = Create("TextButton", { Name = "Close", Size = UDim2.new(0, 26, 0, 26), Position = UDim2.new(1, -30, 0, 6), BackgroundColor3 = currentTheme.Error, Text = "×", TextColor3 = Color3.fromRGB(255, 255, 255), TextSize = 16, Font = Config.FontBold, Parent = TitleBar, }) local CloseCorner = Create("UICorner", { CornerRadius = UDim.new(0, 6), Parent = CloseButton, }) end if Config.Minimizable then MinimizeButton = Create("TextButton", { Name = "Minimize", Size = UDim2.new(0, 26, 0, 26), Position = UDim2.new(1, Config.Closable and -60 or -30, 0, 6), BackgroundColor3 = currentTheme.Warning, Text = "−", TextColor3 = Color3.fromRGB(255, 255, 255), TextSize = 16, Font = Config.FontBold, Parent = TitleBar, }) local MinimizeCorner = Create("UICorner", { CornerRadius = UDim.new(0, 6), Parent = MinimizeButton, }) end -- Tab Container local TabContainer = Create("Frame", { Name = "TabContainer", Size = UDim2.new(0, Config.TabWidth, 1, -Config.TitleBarHeight), Position = UDim2.new(0, 0, 0, Config.TitleBarHeight), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = MainFrame, }) local TabList = Create("ScrollingFrame", { Name = "TabList", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, ScrollBarThickness = 2, ScrollBarImageColor3 = currentTheme.Accent, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, Parent = TabContainer, }) local TabListLayout = Create("UIListLayout", { Padding = UDim.new(0, 4), HorizontalAlignment = Enum.HorizontalAlignment.Center, Parent = TabList, }) local TabListPadding = Create("UIPadding", { PaddingTop = UDim.new(0, 8), PaddingBottom = UDim.new(0, 8), PaddingLeft = UDim.new(0, 6), PaddingRight = UDim.new(0, 6), Parent = TabList, }) -- Content Container local ContentContainer = Create("Frame", { Name = "ContentContainer", Size = UDim2.new(1, -Config.TabWidth, 1, -Config.TitleBarHeight), Position = UDim2.new(0, Config.TabWidth, 0, Config.TitleBarHeight), BackgroundColor3 = currentTheme.Background, BorderSizePixel = 0, Parent = MainFrame, }) local ContentScroll = Create("ScrollingFrame", { Name = "ContentScroll", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, ScrollBarThickness = 3, ScrollBarImageColor3 = currentTheme.Accent, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, Parent = ContentContainer, }) local ContentLayout = Create("UIListLayout", { Padding = UDim.new(0, 8), HorizontalAlignment = Enum.HorizontalAlignment.Center, Parent = ContentScroll, }) local ContentPadding = Create("UIPadding", { PaddingTop = UDim.new(0, 10), PaddingBottom = UDim.new(0, 10), PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10), Parent = ContentScroll, }) -- Draggable functionality if Config.Draggable then local dragging = false local dragStart = nil local startPos = nil TitleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart MainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end -- Window Object local Window = { Config = Config, ScreenGui = ScreenGui, MainFrame = MainFrame, Theme = currentTheme, Tabs = {}, CurrentTab = nil, IsMinimized = false, IsDestroyed = false, Elements = {}, Notifications = {}, } -- Close functionality if CloseButton then CloseButton.MouseButton1Click:Connect(function() SafeCall(Config.OnClose) Tween(MainFrame, {Size = UDim2.new(0, 0, 0, 0)}, 0.2, nil, nil, function() Window.IsDestroyed = true ScreenGui:Destroy() end) end) end -- Minimize functionality if MinimizeButton then MinimizeButton.MouseButton1Click:Connect(function() Window.IsMinimized = not Window.IsMinimized SafeCall(Config.OnMinimize, Window.IsMinimized) if Window.IsMinimized then Tween(MainFrame, {Size = UDim2.new(0, Config.GUIWidth, 0, Config.TitleBarHeight)}, 0.3) MinimizeButton.Text = "+" else Tween(MainFrame, {Size = UDim2.new(0, Config.GUIWidth, 0, Config.GUIHeight)}, 0.3) MinimizeButton.Text = "−" end end) end -- ═══════════════════════════════════════════════════════════════════════════════ -- THEME MANAGEMENT -- ═══════════════════════════════════════════════════════════════════════════════ function Window:SetTheme(themeName) local newTheme = NexusUI.Themes[themeName] if not newTheme then return end self.Theme = newTheme currentTheme = newTheme Config.Theme = themeName -- Update main elements MainFrame.BackgroundColor3 = newTheme.Background TitleBar.BackgroundColor3 = newTheme.Secondary TitleBarFix.BackgroundColor3 = newTheme.Secondary TabContainer.BackgroundColor3 = newTheme.Secondary ContentContainer.BackgroundColor3 = newTheme.Background TitleText.TextColor3 = newTheme.Text if SubTitleText then SubTitleText.TextColor3 = newTheme.TextDark end if ExecutorInfo then ExecutorInfo.TextColor3 = newTheme.TextDark end TabList.ScrollBarImageColor3 = newTheme.Accent ContentScroll.ScrollBarImageColor3 = newTheme.Accent if UserContainer then local avatar = UserContainer:FindFirstChild("Avatar") if avatar then avatar.BackgroundColor3 = newTheme.Tertiary end local username = UserContainer:FindFirstChild("Username") if username then username.TextColor3 = newTheme.Text end local keyType = UserContainer:FindFirstChild("KeyType") if keyType then keyType.TextColor3 = NexusUI.KeySystem:IsPremium() and newTheme.Premium or newTheme.Free end end -- Update badge if KeyBadge then KeyBadge.BackgroundColor3 = NexusUI.KeySystem:IsPremium() and newTheme.Premium or newTheme.Free end -- Update all tabs and elements for _, tab in pairs(self.Tabs) do if tab.UpdateTheme then tab:UpdateTheme(newTheme) end end SafeCall(Config.OnThemeChange, themeName) end function Window:GetTheme() return currentTheme end function Window:GetThemeName() return Config.Theme end -- ═══════════════════════════════════════════════════════════════════════════════ -- NOTIFICATION SYSTEM -- ═══════════════════════════════════════════════════════════════════════════════ function Window:Notify(notifyConfig) notifyConfig = notifyConfig or {} local title = notifyConfig.Title or "Notification" local content = notifyConfig.Content or "" local duration = notifyConfig.Duration or Config.NotificationDuration local notifType = notifyConfig.Type or "Info" local notifColor = currentTheme.Info if notifType == "Success" then notifColor = currentTheme.Success elseif notifType == "Warning" then notifColor = currentTheme.Warning elseif notifType == "Error" then notifColor = currentTheme.Error end local notifWidth = 260 local notifHeight = 70 local startPos, endPos if Config.NotificationPosition == "TopRight" then startPos = UDim2.new(1, 0, 0, -notifHeight) endPos = UDim2.new(1, -notifWidth - 20, 0, 20 + (#self.Notifications * 80)) elseif Config.NotificationPosition == "TopLeft" then startPos = UDim2.new(0, -notifWidth, 0, -notifHeight) endPos = UDim2.new(0, 20, 0, 20 + (#self.Notifications * 80)) elseif Config.NotificationPosition == "BottomLeft" then startPos = UDim2.new(0, -notifWidth, 1, 0) endPos = UDim2.new(0, 20, 1, -notifHeight - 20 - (#self.Notifications * 80)) else startPos = UDim2.new(1, 0, 1, 0) endPos = UDim2.new(1, -notifWidth - 20, 1, -notifHeight - 20 - (#self.Notifications * 80)) end local NotifFrame = Create("Frame", { Name = "Notification", Size = UDim2.new(0, notifWidth, 0, notifHeight), Position = startPos, BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = ScreenGui, }) local NotifCorner = Create("UICorner", { CornerRadius = UDim.new(0, 8), Parent = NotifFrame, }) local NotifBar = Create("Frame", { Name = "Bar", Size = UDim2.new(0, 4, 1, 0), BackgroundColor3 = notifColor, BorderSizePixel = 0, Parent = NotifFrame, }) local NotifTitle = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -20, 0, 18), Position = UDim2.new(0, 12, 0, 6), BackgroundTransparency = 1, Text = title, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = NotifFrame, }) local NotifContent = Create("TextLabel", { Name = "Content", Size = UDim2.new(1, -20, 0, 0), Position = UDim2.new(0, 12, 0, 26), BackgroundTransparency = 1, Text = content, TextColor3 = currentTheme.TextDim, TextSize = 11, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, AutomaticSize = Enum.AutomaticSize.Y, Parent = NotifFrame, }) table.insert(self.Notifications, NotifFrame) Tween(NotifFrame, {Position = endPos}, 0.3) task.delay(duration, function() Tween(NotifFrame, {Position = startPos}, 0.3, nil, nil, function() for i, notif in ipairs(self.Notifications) do if notif == NotifFrame then table.remove(self.Notifications, i) break end end NotifFrame:Destroy() end) end) end -- ═══════════════════════════════════════════════════════════════════════════════ -- KEY SYSTEM UI -- ═══════════════════════════════════════════════════════════════════════════════ function Window:ShowKeySystem(keyConfig) keyConfig = keyConfig or {} local keyCallback = keyConfig.Callback or Config.OnKeyAuthenticated if not Config.KeySystem then MainFrame.Visible = true Tween(MainFrame, {Size = UDim2.new(0, Config.GUIWidth, 0, Config.GUIHeight)}, 0.5) SafeCall(keyCallback, "Free") return end MainFrame.Visible = false local KeyFrame = Create("Frame", { Name = "KeySystem", Size = UDim2.new(0, 320, 0, 240), Position = UDim2.new(0.5, -160, 0.5, -120), BackgroundColor3 = currentTheme.Background, BorderSizePixel = 0, Parent = ScreenGui, }) local KeyCorner = Create("UICorner", { CornerRadius = UDim.new(0, 10), Parent = KeyFrame, }) local KeyShadow = Create("ImageLabel", { AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0.5, 4), Size = UDim2.new(1, 24, 1, 24), BackgroundTransparency = 1, Image = "rbxassetid://1316045217", ImageColor3 = Color3.fromRGB(0, 0, 0), ImageTransparency = 0.6, ScaleType = Enum.ScaleType.Slice, SliceCenter = Rect.new(10, 10, 118, 118), ZIndex = -1, Parent = KeyFrame, }) local KeyTitle = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, 0, 0, 30), Position = UDim2.new(0, 0, 0, 12), BackgroundTransparency = 1, Text = Config.KeySystemTitle, TextColor3 = currentTheme.Text, TextSize = 16, Font = Config.FontBold, Parent = KeyFrame, }) local KeySubtitle = Create("TextLabel", { Name = "Subtitle", Size = UDim2.new(1, -20, 0, 16), Position = UDim2.new(0, 10, 0, 42), BackgroundTransparency = 1, Text = Config.KeySystemSubtitle, TextColor3 = currentTheme.TextDim, TextSize = 11, Font = Config.Font, Parent = KeyFrame, }) local KeyInput = Create("TextBox", { Name = "Input", Size = UDim2.new(1, -24, 0, 36), Position = UDim2.new(0, 12, 0, 68), BackgroundColor3 = currentTheme.Secondary, Text = "", PlaceholderText = "Enter key here...", TextColor3 = currentTheme.Text, PlaceholderColor3 = currentTheme.TextDark, TextSize = 13, Font = Config.Font, Parent = KeyFrame, }) local KeyInputCorner = Create("UICorner", { CornerRadius = UDim.new(0, 6), Parent = KeyInput, }) local StatusLabel = Create("TextLabel", { Name = "Status", Size = UDim2.new(1, -20, 0, 16), Position = UDim2.new(0, 10, 0, 110), BackgroundTransparency = 1, Text = "", TextColor3 = currentTheme.Error, TextSize = 10, Font = Config.Font, Parent = KeyFrame, }) local SubmitBtn = Create("TextButton", { Name = "Submit", Size = UDim2.new(1, -24, 0, 36), Position = UDim2.new(0, 12, 0, 132), BackgroundColor3 = currentTheme.Accent, Text = "Submit Key", TextColor3 = Color3.fromRGB(255, 255, 255), TextSize = 13, Font = Config.FontBold, Parent = KeyFrame, }) local SubmitCorner = Create("UICorner", { CornerRadius = UDim.new(0, 6), Parent = SubmitBtn, }) local FreeKeyHint = Create("TextLabel", { Name = "Hint", Size = UDim2.new(1, -20, 0, 14), Position = UDim2.new(0, 10, 0, 174), BackgroundTransparency = 1, Text = "Free: " .. (Config.FreeKeys[1] or "NEXUS-FREE") .. " | Premium: " .. (Config.PremiumKeys[1] or "NEXUS-PREMIUM"), TextColor3 = currentTheme.TextDark, TextSize = 9, Font = Config.Font, Parent = KeyFrame, }) local function Shake() Tween(KeyFrame, {Position = UDim2.new(0.5, -155, 0.5, -120)}, 0.05, nil, nil, function() Tween(KeyFrame, {Position = UDim2.new(0.5, -160, 0.5, -120)}, 0.05, nil, nil, function() Tween(KeyFrame, {Position = UDim2.new(0.5, -165, 0.5, -120)}, 0.05, nil, nil, function() Tween(KeyFrame, {Position = UDim2.new(0.5, -160, 0.5, -120)}, 0.05) end) end) end) end SubmitBtn.MouseButton1Click:Connect(function() local key = KeyInput.Text local valid, keyType = NexusUI.KeySystem:Validate(key, Config) if valid then StatusLabel.TextColor3 = currentTheme.Success StatusLabel.Text = "✓ Key validated! Loading..." -- Update badge if KeyBadge then KeyBadge.BackgroundColor3 = keyType == "Premium" and currentTheme.Premium or currentTheme.Free local badgeText = KeyBadge:FindFirstChild("Text") if badgeText then badgeText.Text = keyType:upper() end end if UserContainer then local keyTypeLabel = UserContainer:FindFirstChild("KeyType") if keyTypeLabel then keyTypeLabel.Text = keyType keyTypeLabel.TextColor3 = keyType == "Premium" and currentTheme.Premium or currentTheme.Free end end Tween(KeyFrame, {Size = UDim2.new(0, 0, 0, 0)}, 0.3, nil, nil, function() KeyFrame:Destroy() MainFrame.Visible = true MainFrame.Size = UDim2.new(0, 0, 0, 0) Tween(MainFrame, {Size = UDim2.new(0, Config.GUIWidth, 0, Config.GUIHeight)}, 0.4) SafeCall(keyCallback, keyType) end) else StatusLabel.TextColor3 = currentTheme.Error StatusLabel.Text = "✗ Invalid key. Please try again." Shake() end end) KeyFrame.Size = UDim2.new(0, 0, 0, 0) Tween(KeyFrame, {Size = UDim2.new(0, 320, 0, 240)}, 0.4) end -- ═══════════════════════════════════════════════════════════════════════════════ -- TAB SYSTEM -- ═══════════════════════════════════════════════════════════════════════════════ function Window:CreateTab(tabConfig) tabConfig = tabConfig or {} local tabName = tabConfig.Name or "Tab" local tabIcon = tabConfig.Icon or "" local tabOrder = tabConfig.Order or #self.Tabs + 1 -- Tab Button local TabButton = Create("TextButton", { Name = tabName .. "Tab", Size = UDim2.new(1, -4, 0, 32), BackgroundColor3 = currentTheme.Tertiary, Text = "", AutoButtonColor = false, Parent = TabList, }) local TabButtonCorner = Create("UICorner", { CornerRadius = UDim.new(0, 6), Parent = TabButton, }) local TabName if tabIcon ~= "" then local IconLabel = Create("ImageLabel", { Name = "Icon", Size = UDim2.new(0, 18, 0, 18), Position = UDim2.new(0, 8, 0.5, -9), BackgroundTransparency = 1, Image = tabIcon, ImageColor3 = currentTheme.TextDim, Parent = TabButton, }) TabName = Create("TextLabel", { Name = "Name", Size = UDim2.new(1, -32, 1, 0), Position = UDim2.new(0, 28, 0, 0), BackgroundTransparency = 1, Text = tabName, TextColor3 = currentTheme.TextDim, TextSize = 12, Font = Config.FontMedium, TextXAlignment = Enum.TextXAlignment.Left, Parent = TabButton, }) else TabName = Create("TextLabel", { Name = "Name", Size = UDim2.new(1, -16, 1, 0), Position = UDim2.new(0, 10, 0, 0), BackgroundTransparency = 1, Text = tabName, TextColor3 = currentTheme.TextDim, TextSize = 12, Font = Config.FontMedium, TextXAlignment = Enum.TextXAlignment.Left, Parent = TabButton, }) end -- Tab Content local TabContent = Create("Frame", { Name = tabName .. "Content", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Visible = false, Parent = ContentScroll, }) local TabContentLayout = Create("UIListLayout", { Padding = UDim.new(0, 8), HorizontalAlignment = Enum.HorizontalAlignment.Center, Parent = TabContent, }) -- Tab Object local Tab = { Name = tabName, Button = TabButton, Content = TabContent, Elements = {}, Config = tabConfig, } function Tab:UpdateTheme(newTheme) local isSelected = (Window.CurrentTab == self) TabButton.BackgroundColor3 = isSelected and newTheme.Accent or newTheme.Tertiary if TabName then TabName.TextColor3 = isSelected and Color3.fromRGB(255,255,255) or newTheme.TextDim end local icon = TabButton:FindFirstChild("Icon") if icon then icon.ImageColor3 = isSelected and Color3.fromRGB(255,255,255) or newTheme.TextDim end for _, element in pairs(self.Elements) do if element.UpdateTheme then element:UpdateTheme(newTheme) end end end function Tab:Select() if Window.CurrentTab and Window.CurrentTab ~= self then Window.CurrentTab.Content.Visible = false Tween(Window.CurrentTab.Button, {BackgroundColor3 = currentTheme.Tertiary}, 0.2) local oldName = Window.CurrentTab.Button:FindFirstChild("Name") if oldName then Tween(oldName, {TextColor3 = currentTheme.TextDim}, 0.2) end local oldIcon = Window.CurrentTab.Button:FindFirstChild("Icon") if oldIcon then Tween(oldIcon, {ImageColor3 = currentTheme.TextDim}, 0.2) end end Window.CurrentTab = self self.Content.Visible = true Tween(self.Button, {BackgroundColor3 = currentTheme.Accent}, 0.2) if TabName then Tween(TabName, {TextColor3 = Color3.fromRGB(255,255,255)}, 0.2) end local icon = self.Button:FindFirstChild("Icon") if icon then Tween(icon, {ImageColor3 = Color3.fromRGB(255,255,255)}, 0.2) end end TabButton.MouseButton1Click:Connect(function() Tab:Select() end) TabButton.MouseEnter:Connect(function() if Window.CurrentTab ~= Tab then Tween(TabButton, {BackgroundColor3 = currentTheme.AccentHover}, 0.2) end end) TabButton.MouseLeave:Connect(function() if Window.CurrentTab ~= Tab then Tween(TabButton, {BackgroundColor3 = currentTheme.Tertiary}, 0.2) end end) -- Select first tab if #self.Tabs == 0 then Tab:Select() end table.insert(self.Tabs, Tab) -- ═══════════════════════════════════════════════════════════════════════════════ -- COMPONENT FACTORY -- ═══════════════════════════════════════════════════════════════════════════════ local function GetParent(config) return config and config.Section and config.Section.Content or TabContent end local function AddElement(tab, element) table.insert(tab.Elements, element) return element end -- 1. SECTION function Tab:CreateSection(config) config = config or {} local name = config.Name or "Section" local Frame = Create("Frame", { Name = name .. "Section", Size = UDim2.new(1, 0, 0, 30), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, Parent = TabContent, }) local Title = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, 0, 0, 20), BackgroundTransparency = 1, Text = name, TextColor3 = currentTheme.Text, TextSize = 13, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Line = Create("Frame", { Name = "Line", Size = UDim2.new(1, 0, 0, 1), Position = UDim2.new(0, 0, 0, 22), BackgroundColor3 = currentTheme.Border, BorderSizePixel = 0, Parent = Frame, }) local Content = Create("Frame", { Name = "Content", Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 0, 28), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, Parent = Frame, }) local ContentLayout = Create("UIListLayout", { Padding = UDim.new(0, 6), Parent = Content, }) local Obj = { Frame = Frame, Content = Content, Title = Title, Line = Line, UpdateTheme = function(self, newTheme) Title.TextColor3 = newTheme.Text Line.BackgroundColor3 = newTheme.Border end, } return AddElement(self, Obj) end -- 2. BUTTON function Tab:CreateButton(config) config = config or {} local text = config.Text or "Button" local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Button", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Accent, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", { CornerRadius = UDim.new(0, 6), Parent = Frame, }) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = text, TextColor3 = Color3.fromRGB(255,255,255), TextSize = 12, Font = Config.FontBold, Parent = Frame, }) local Click = Create("TextButton", { Name = "Click", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "", Parent = Frame, }) Click.MouseButton1Click:Connect(function() SafeCall(callback) Tween(Frame, {BackgroundColor3 = currentTheme.AccentHover}, 0.1, nil, nil, function() Tween(Frame, {BackgroundColor3 = currentTheme.Accent}, 0.1) end) end) Click.MouseEnter:Connect(function() Tween(Frame, {BackgroundColor3 = currentTheme.AccentHover}, 0.2) end) Click.MouseLeave:Connect(function() Tween(Frame, {BackgroundColor3 = currentTheme.Accent}, 0.2) end) local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Accent end, SetText = function(self, txt) Label.Text = txt end, SetCallback = function(self, cb) callback = cb end, } return AddElement(self, Obj) end -- 3. TOGGLE function Tab:CreateToggle(config) config = config or {} local text = config.Text or "Toggle" local default = config.Default or false local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Toggle", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, -60, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local BG = Create("Frame", { Name = "BG", Size = UDim2.new(0, 40, 0, 20), Position = UDim2.new(1, -50, 0.5, -10), BackgroundColor3 = default and currentTheme.Accent or currentTheme.Tertiary, BorderSizePixel = 0, Parent = Frame, }) local BGC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = BG}) local Circle = Create("Frame", { Name = "Circle", Size = UDim2.new(0, 16, 0, 16), Position = default and UDim2.new(1, -18, 0.5, -8) or UDim2.new(0, 2, 0.5, -8), BackgroundColor3 = Color3.fromRGB(255,255,255), BorderSizePixel = 0, Parent = BG, }) local CC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = Circle}) local Click = Create("TextButton", { Name = "Click", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "", Parent = Frame, }) local isOn = default Click.MouseButton1Click:Connect(function() isOn = not isOn if isOn then Tween(BG, {BackgroundColor3 = currentTheme.Accent}, 0.2) Tween(Circle, {Position = UDim2.new(1, -18, 0.5, -8)}, 0.2) else Tween(BG, {BackgroundColor3 = currentTheme.Tertiary}, 0.2) Tween(Circle, {Position = UDim2.new(0, 2, 0.5, -8)}, 0.2) end SafeCall(callback, isOn) end) local Obj = { Frame = Frame, Value = isOn, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text BG.BackgroundColor3 = isOn and newTheme.Accent or newTheme.Tertiary end, Set = function(self, val) isOn = val BG.BackgroundColor3 = isOn and currentTheme.Accent or currentTheme.Tertiary Circle.Position = isOn and UDim2.new(1, -18, 0.5, -8) or UDim2.new(0, 2, 0.5, -8) SafeCall(callback, isOn) end, Get = function(self) return isOn end, } return AddElement(self, Obj) end -- 4. SLIDER function Tab:CreateSlider(config) config = config or {} local text = config.Text or "Slider" local min = config.Min or 0 local max = config.Max or 100 local default = config.Default or min local increment = config.Increment or 1 local suffix = config.Suffix or "" local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Slider", Size = UDim2.new(1, 0, 0, 50), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Label", Size = UDim2.new(0.7, 0, 0, 20), Position = UDim2.new(0, 12, 0, 4), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local ValueText = Create("TextLabel", { Name = "Value", Size = UDim2.new(0.3, -16, 0, 20), Position = UDim2.new(0.7, 4, 0, 4), BackgroundTransparency = 1, Text = tostring(default) .. suffix, TextColor3 = currentTheme.Accent, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Right, Parent = Frame, }) local BG = Create("Frame", { Name = "BG", Size = UDim2.new(1, -24, 0, 6), Position = UDim2.new(0, 12, 0, 32), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = Frame, }) local BGC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = BG}) local Fill = Create("Frame", { Name = "Fill", Size = UDim2.new((default - min) / (max - min), 0, 1, 0), BackgroundColor3 = currentTheme.Accent, BorderSizePixel = 0, Parent = BG, }) local FC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = Fill}) local Knob = Create("Frame", { Name = "Knob", Size = UDim2.new(0, 14, 0, 14), Position = UDim2.new((default - min) / (max - min), -7, 0.5, -7), BackgroundColor3 = Color3.fromRGB(255,255,255), BorderSizePixel = 0, Parent = BG, }) local KC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = Knob}) local isDragging = false local currentValue = default local function Update(input) local pos = math.clamp((input.Position.X - BG.AbsolutePosition.X) / BG.AbsoluteSize.X, 0, 1) local val = min + (max - min) * pos val = math.floor(val / increment + 0.5) * increment val = math.clamp(val, min, max) currentValue = val local scale = (val - min) / (max - min) Fill.Size = UDim2.new(scale, 0, 1, 0) Knob.Position = UDim2.new(scale, -7, 0.5, -7) ValueText.Text = tostring(RoundNumber(val, 2)) .. suffix SafeCall(callback, val) end Knob.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = true end end) BG.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = true Update(input) end end) UserInputService.InputChanged:Connect(function(input) if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then Update(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = false end end) local Obj = { Frame = Frame, Value = currentValue, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text ValueText.TextColor3 = newTheme.Accent BG.BackgroundColor3 = newTheme.Tertiary Fill.BackgroundColor3 = newTheme.Accent end, Set = function(self, val) val = math.clamp(val, min, max) currentValue = val local scale = (val - min) / (max - min) Fill.Size = UDim2.new(scale, 0, 1, 0) Knob.Position = UDim2.new(scale, -7, 0.5, -7) ValueText.Text = tostring(RoundNumber(val, 2)) .. suffix SafeCall(callback, val) end, Get = function(self) return currentValue end, } return AddElement(self, Obj) end -- 5. DROPDOWN function Tab:CreateDropdown(config) config = config or {} local text = config.Text or "Dropdown" local options = config.Options or {} local default = config.Default or options[1] or "" local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Dropdown", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, ClipsDescendants = true, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, -50, 0, 34), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Selected = Create("TextLabel", { Name = "Selected", Size = UDim2.new(0, 100, 0, 34), Position = UDim2.new(1, -110, 0, 0), BackgroundTransparency = 1, Text = default, TextColor3 = currentTheme.Accent, TextSize = 11, Font = Config.FontMedium, TextXAlignment = Enum.TextXAlignment.Right, TextTruncate = Enum.TextTruncate.AtEnd, Parent = Frame, }) local Arrow = Create("TextLabel", { Name = "Arrow", Size = UDim2.new(0, 20, 0, 34), Position = UDim2.new(1, -24, 0, 0), BackgroundTransparency = 1, Text = "▼", TextColor3 = currentTheme.TextDim, TextSize = 10, Font = Config.Font, Parent = Frame, }) local OptionsContainer = Create("Frame", { Name = "Options", Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 0, 34), BackgroundTransparency = 1, Parent = Frame, }) local OL = Create("UIListLayout", {Padding = UDim.new(0, 2), Parent = OptionsContainer}) local isOpen = false local selectedOption = default local optionButtons = {} local function MakeOption(opt) local Btn = Create("TextButton", { Name = opt, Size = UDim2.new(1, -16, 0, 28), Position = UDim2.new(0, 8, 0, 0), BackgroundColor3 = currentTheme.Tertiary, Text = opt, TextColor3 = currentTheme.Text, TextSize = 11, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = OptionsContainer, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Btn}) Btn.MouseButton1Click:Connect(function() selectedOption = opt Selected.Text = opt SafeCall(callback, opt) isOpen = false Tween(Frame, {Size = UDim2.new(1, 0, 0, 34)}, 0.2) Arrow.Text = "▼" end) Btn.MouseEnter:Connect(function() Tween(Btn, {BackgroundColor3 = currentTheme.Accent}, 0.15) Tween(Btn, {TextColor3 = Color3.fromRGB(255,255,255)}, 0.15) end) Btn.MouseLeave:Connect(function() Tween(Btn, {BackgroundColor3 = currentTheme.Tertiary}, 0.15) Tween(Btn, {TextColor3 = currentTheme.Text}, 0.15) end) table.insert(optionButtons, Btn) return Btn end for _, opt in ipairs(options) do MakeOption(opt) end local Click = Create("TextButton", { Name = "Click", Size = UDim2.new(1, 0, 0, 34), BackgroundTransparency = 1, Text = "", Parent = Frame, }) Click.MouseButton1Click:Connect(function() isOpen = not isOpen if isOpen then local h = 34 + (#options * 30) + 4 Tween(Frame, {Size = UDim2.new(1, 0, 0, math.min(h, 200))}, 0.2) Arrow.Text = "▲" else Tween(Frame, {Size = UDim2.new(1, 0, 0, 34)}, 0.2) Arrow.Text = "▼" end end) local Obj = { Frame = Frame, Value = selectedOption, Options = optionButtons, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text Selected.TextColor3 = newTheme.Accent Arrow.TextColor3 = newTheme.TextDim for _, btn in ipairs(optionButtons) do btn.BackgroundColor3 = newTheme.Tertiary btn.TextColor3 = newTheme.Text end end, Set = function(self, val) selectedOption = val Selected.Text = val SafeCall(callback, val) end, Get = function(self) return selectedOption end, Refresh = function(self, newOptions) for _, btn in ipairs(optionButtons) do btn:Destroy() end optionButtons = {} for _, opt in ipairs(newOptions) do MakeOption(opt) end end, } return AddElement(self, Obj) end -- 6. INPUT / TEXTBOX function Tab:CreateInput(config) config = config or {} local text = config.Text or "Input" local placeholder = config.Placeholder or "Enter text..." local default = config.Default or "" local callback = config.Callback or function() end local isNumeric = config.Numeric or false local isPassword = config.Password or false local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Input", Size = UDim2.new(1, 0, 0, 56), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Label", Size = UDim2.new(1, -16, 0, 18), Position = UDim2.new(0, 10, 0, 4), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 11, Font = Config.Font, Parent = Frame, }) local Box = Create("TextBox", { Name = "Box", Size = UDim2.new(1, -16, 0, 26), Position = UDim2.new(0, 8, 0, 26), BackgroundColor3 = currentTheme.Tertiary, Text = default, PlaceholderText = placeholder, TextColor3 = currentTheme.Text, PlaceholderColor3 = currentTheme.TextDark, TextSize = 12, Font = Config.Font, ClearTextOnFocus = false, Parent = Frame, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Box}) if isPassword then Box.Text = string.rep("•", #default) end Box.FocusLost:Connect(function(enterPressed) local txt = Box.Text if isNumeric then txt = tonumber(txt) or 0 Box.Text = tostring(txt) end SafeCall(callback, txt, enterPressed) end) Box.Focused:Connect(function() Tween(Box, {BackgroundColor3 = currentTheme.Accent}, 0.2) end) Box.FocusLost:Connect(function() Tween(Box, {BackgroundColor3 = currentTheme.Tertiary}, 0.2) end) local Obj = { Frame = Frame, Box = Box, Value = default, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text Box.BackgroundColor3 = newTheme.Tertiary Box.TextColor3 = newTheme.Text Box.PlaceholderColor3 = newTheme.TextDark end, Set = function(self, val) Box.Text = tostring(val) SafeCall(callback, val, false) end, Get = function(self) return Box.Text end, } return AddElement(self, Obj) end -- 7. KEYBIND function Tab:CreateKeybind(config) config = config or {} local text = config.Text or "Keybind" local defaultKey = config.Default or Enum.KeyCode.LeftShift local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Keybind", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, -80, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local KeyDisplay = Create("TextButton", { Name = "Key", Size = UDim2.new(0, 60, 0, 24), Position = UDim2.new(1, -68, 0.5, -12), BackgroundColor3 = currentTheme.Tertiary, Text = defaultKey.Name, TextColor3 = currentTheme.Text, TextSize = 10, Font = Config.FontBold, Parent = Frame, }) local KC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = KeyDisplay}) local currentKey = defaultKey local isListening = false KeyDisplay.MouseButton1Click:Connect(function() isListening = true KeyDisplay.Text = "..." KeyDisplay.BackgroundColor3 = currentTheme.Accent end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if isListening and input.UserInputType == Enum.UserInputType.Keyboard then isListening = false currentKey = input.KeyCode KeyDisplay.Text = input.KeyCode.Name KeyDisplay.BackgroundColor3 = currentTheme.Tertiary SafeCall(callback, input.KeyCode) elseif input.KeyCode == currentKey and not gameProcessed then SafeCall(callback, currentKey) end end) local Obj = { Frame = Frame, Key = currentKey, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text KeyDisplay.BackgroundColor3 = newTheme.Tertiary KeyDisplay.TextColor3 = newTheme.Text end, Set = function(self, key) currentKey = key KeyDisplay.Text = key.Name end, Get = function(self) return currentKey end, } return AddElement(self, Obj) end -- 8. COLOR PICKER function Tab:CreateColorPicker(config) config = config or {} local text = config.Text or "Color" local defaultColor = config.Default or Color3.fromRGB(255, 0, 0) local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Color", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, -60, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Preview = Create("Frame", { Name = "Preview", Size = UDim2.new(0, 36, 0, 22), Position = UDim2.new(1, -48, 0.5, -11), BackgroundColor3 = defaultColor, BorderSizePixel = 0, Parent = Frame, }) local PC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Preview}) local Click = Create("TextButton", { Name = "Click", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "", Parent = Frame, }) local currentColor = defaultColor Click.MouseButton1Click:Connect(function() local Dialog = Create("Frame", { Name = "ColorDialog", Size = UDim2.new(0, 200, 0, 150), Position = UDim2.new(0.5, -100, 0.5, -75), BackgroundColor3 = currentTheme.Background, BorderSizePixel = 0, Parent = ScreenGui, }) local DC = Create("UICorner", {CornerRadius = UDim.new(0, 8), Parent = Dialog}) local DTitle = Create("TextLabel", { Size = UDim2.new(1, 0, 0, 24), BackgroundTransparency = 1, Text = "Pick a Color", TextColor3 = currentTheme.Text, TextSize = 13, Font = Config.FontBold, Parent = Dialog, }) local colors = { Color3.fromRGB(255,0,0), Color3.fromRGB(255,128,0), Color3.fromRGB(255,255,0), Color3.fromRGB(128,255,0), Color3.fromRGB(0,255,0), Color3.fromRGB(0,255,128), Color3.fromRGB(0,255,255), Color3.fromRGB(0,128,255), Color3.fromRGB(0,0,255), Color3.fromRGB(128,0,255), Color3.fromRGB(255,0,255), Color3.fromRGB(255,0,128), } for i, color in ipairs(colors) do local row = math.floor((i-1)/4) local col = (i-1)%4 local Btn = Create("TextButton", { Size = UDim2.new(0, 40, 0, 30), Position = UDim2.new(0, 10 + col*46, 0, 30 + row*36), BackgroundColor3 = color, Text = "", Parent = Dialog, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Btn}) Btn.MouseButton1Click:Connect(function() currentColor = color Preview.BackgroundColor3 = color SafeCall(callback, color) Dialog:Destroy() end) end local CloseBtn = Create("TextButton", { Size = UDim2.new(0, 60, 0, 24), Position = UDim2.new(0.5, -30, 1, -32), BackgroundColor3 = currentTheme.Accent, Text = "Close", TextColor3 = Color3.fromRGB(255,255,255), TextSize = 11, Font = Config.FontBold, Parent = Dialog, }) local CBC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = CloseBtn}) CloseBtn.MouseButton1Click:Connect(function() Dialog:Destroy() end) end) local Obj = { Frame = Frame, Value = currentColor, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text end, Set = function(self, color) currentColor = color Preview.BackgroundColor3 = color SafeCall(callback, color) end, Get = function(self) return currentColor end, } return AddElement(self, Obj) end -- 9. LABEL function Tab:CreateLabel(config) config = config or {} local text = config.Text or "Label" local color = config.Color or currentTheme.Text local parent = GetParent(config) local Frame = Create("Frame", { Name = "Label", Size = UDim2.new(1, 0, 0, 20), BackgroundTransparency = 1, Parent = parent, }) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = text, TextColor3 = color, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, Parent = Frame, }) local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) if color == currentTheme.Text then Label.TextColor3 = newTheme.Text end end, Set = function(self, txt) Label.Text = txt end, Get = function(self) return Label.Text end, } return AddElement(self, Obj) end -- 10. PARAGRAPH function Tab:CreateParagraph(config) config = config or {} local title = config.Title or "Title" local content = config.Content or "Content..." local parent = GetParent(config) local Frame = Create("Frame", { Name = "Paragraph", Size = UDim2.new(1, 0, 0, 60), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.Y, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local PTitle = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -16, 0, 18), Position = UDim2.new(0, 8, 0, 6), BackgroundTransparency = 1, Text = title, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local PContent = Create("TextLabel", { Name = "Content", Size = UDim2.new(1, -16, 0, 0), Position = UDim2.new(0, 8, 0, 26), BackgroundTransparency = 1, Text = content, TextColor3 = currentTheme.TextDim, TextSize = 11, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, AutomaticSize = Enum.AutomaticSize.Y, Parent = Frame, }) local Obj = { Frame = Frame, Title = PTitle, Content = PContent, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary PTitle.TextColor3 = newTheme.Text PContent.TextColor3 = newTheme.TextDim end, SetTitle = function(self, txt) PTitle.Text = txt end, SetContent = function(self, txt) PContent.Text = txt end, } return AddElement(self, Obj) end -- 11. PROGRESS BAR function Tab:CreateProgressBar(config) config = config or {} local text = config.Text or "Progress" local value = config.Value or 0 local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Progress", Size = UDim2.new(1, 0, 0, 40), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Label", Size = UDim2.new(1, -16, 0, 16), Position = UDim2.new(0, 8, 0, 4), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 11, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local ValueText = Create("TextLabel", { Name = "Value", Size = UDim2.new(0, 40, 0, 16), Position = UDim2.new(1, -48, 0, 4), BackgroundTransparency = 1, Text = tostring(value) .. "%", TextColor3 = currentTheme.Accent, TextSize = 11, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Right, Parent = Frame, }) local BG = Create("Frame", { Name = "BG", Size = UDim2.new(1, -16, 0, 8), Position = UDim2.new(0, 8, 0, 26), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = Frame, }) local BGC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = BG}) local Fill = Create("Frame", { Name = "Fill", Size = UDim2.new(value/100, 0, 1, 0), BackgroundColor3 = currentTheme.Accent, BorderSizePixel = 0, Parent = BG, }) local FC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = Fill}) local Obj = { Frame = Frame, Value = value, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text ValueText.TextColor3 = newTheme.Accent BG.BackgroundColor3 = newTheme.Tertiary Fill.BackgroundColor3 = newTheme.Accent end, Set = function(self, val) val = math.clamp(val, 0, 100) ValueText.Text = tostring(math.floor(val)) .. "%" Tween(Fill, {Size = UDim2.new(val/100, 0, 1, 0)}, 0.3) end, Get = function(self) return value end, } return AddElement(self, Obj) end -- 12. DIVIDER function Tab:CreateDivider(config) config = config or {} local parent = GetParent(config) local Frame = Create("Frame", { Name = "Divider", Size = UDim2.new(1, 0, 0, 1), BackgroundColor3 = currentTheme.Border, BorderSizePixel = 0, Parent = parent, }) local Obj = { Frame = Frame, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Border end, } return AddElement(self, Obj) end -- 13. IMAGE function Tab:CreateImage(config) config = config or {} local imageId = config.Image or "" local size = config.Size or UDim2.new(1, 0, 0, 100) local parent = GetParent(config) local Frame = Create("Frame", { Name = "ImageFrame", Size = size, BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Image = Create("ImageLabel", { Name = "Image", Size = UDim2.new(1, -8, 1, -8), Position = UDim2.new(0, 4, 0, 4), BackgroundTransparency = 1, Image = imageId, ScaleType = Enum.ScaleType.Fit, Parent = Frame, }) local Obj = { Frame = Frame, Image = Image, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Tertiary end, SetImage = function(self, id) Image.Image = id end, } return AddElement(self, Obj) end -- 14. SPACER function Tab:CreateSpacer(config) config = config or {} local height = config.Height or 10 local parent = GetParent(config) local Frame = Create("Frame", { Name = "Spacer", Size = UDim2.new(1, 0, 0, height), BackgroundTransparency = 1, Parent = parent, }) return Frame end -- 15. LIST function Tab:CreateList(config) config = config or {} local title = config.Title or "List" local items = config.Items or {} local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = title .. "List", Size = UDim2.new(1, 0, 0, 120), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local LTitle = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -16, 0, 20), Position = UDim2.new(0, 8, 0, 4), BackgroundTransparency = 1, Text = title, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Scroll = Create("ScrollingFrame", { Name = "Scroll", Size = UDim2.new(1, -8, 1, -28), Position = UDim2.new(0, 4, 0, 24), BackgroundTransparency = 1, ScrollBarThickness = 2, ScrollBarImageColor3 = currentTheme.Accent, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, Parent = Frame, }) local LL = Create("UIListLayout", {Padding = UDim.new(0, 2), Parent = Scroll}) local listItems = {} local Obj = { Frame = Frame, Items = listItems, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary LTitle.TextColor3 = newTheme.Text Scroll.ScrollBarImageColor3 = newTheme.Accent for _, btn in ipairs(listItems) do btn.BackgroundColor3 = newTheme.Tertiary btn.TextColor3 = newTheme.Text end end, AddItem = function(self, itemText) local Btn = Create("TextButton", { Size = UDim2.new(1, -4, 0, 26), Position = UDim2.new(0, 2, 0, 0), BackgroundColor3 = currentTheme.Tertiary, Text = itemText, TextColor3 = currentTheme.Text, TextSize = 11, Font = Config.Font, Parent = Scroll, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Btn}) Btn.MouseButton1Click:Connect(function() SafeCall(callback, itemText) end) Btn.MouseEnter:Connect(function() Tween(Btn, {BackgroundColor3 = currentTheme.Accent}, 0.15) Tween(Btn, {TextColor3 = Color3.fromRGB(255,255,255)}, 0.15) end) Btn.MouseLeave:Connect(function() Tween(Btn, {BackgroundColor3 = currentTheme.Tertiary}, 0.15) Tween(Btn, {TextColor3 = currentTheme.Text}, 0.15) end) table.insert(listItems, Btn) return Btn end, Clear = function(self) for _, btn in ipairs(listItems) do btn:Destroy() end listItems = {} end, } for _, item in ipairs(items) do Obj:AddItem(item) end return AddElement(self, Obj) end -- 16. MULTI-TOGGLE function Tab:CreateMultiToggle(config) config = config or {} local text = config.Text or "Multi Toggle" local options = config.Options or {} local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Multi", Size = UDim2.new(1, 0, 0, 30 + (#options * 28)), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Title = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -16, 0, 20), Position = UDim2.new(0, 8, 0, 4), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local selected = {} local buttons = {} for i, option in ipairs(options) do local Btn = Create("TextButton", { Name = option, Size = UDim2.new(1, -16, 0, 24), Position = UDim2.new(0, 8, 0, 24 + (i-1)*26), BackgroundColor3 = currentTheme.Tertiary, Text = " " .. option, TextColor3 = currentTheme.TextDim, TextSize = 11, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Btn}) local Check = Create("TextLabel", { Name = "Check", Size = UDim2.new(0, 20, 1, 0), Position = UDim2.new(1, -24, 0, 0), BackgroundTransparency = 1, Text = "✓", TextColor3 = currentTheme.Accent, TextSize = 14, Font = Config.FontBold, Visible = false, Parent = Btn, }) Btn.MouseButton1Click:Connect(function() if selected[option] then selected[option] = nil Check.Visible = false Tween(Btn, {BackgroundColor3 = currentTheme.Tertiary}, 0.15) Tween(Btn, {TextColor3 = currentTheme.TextDim}, 0.15) else selected[option] = true Check.Visible = true Tween(Btn, {BackgroundColor3 = currentTheme.Accent}, 0.15) Tween(Btn, {TextColor3 = Color3.fromRGB(255,255,255)}, 0.15) end SafeCall(callback, selected) end) table.insert(buttons, Btn) end local Obj = { Frame = Frame, Selected = selected, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Title.TextColor3 = newTheme.Text for _, btn in ipairs(buttons) do local opt = btn.Name if selected[opt] then btn.BackgroundColor3 = newTheme.Accent btn.TextColor3 = Color3.fromRGB(255,255,255) else btn.BackgroundColor3 = newTheme.Tertiary btn.TextColor3 = newTheme.TextDim end end end, Set = function(self, selections) selected = selections for _, btn in ipairs(buttons) do local check = btn:FindFirstChild("Check") local opt = btn.Name if selected[opt] then check.Visible = true btn.BackgroundColor3 = currentTheme.Accent btn.TextColor3 = Color3.fromRGB(255,255,255) else check.Visible = false btn.BackgroundColor3 = currentTheme.Tertiary btn.TextColor3 = currentTheme.TextDim end end end, Get = function(self) return selected end, } return AddElement(self, Obj) end -- 17. THEME SELECTOR (Premium) function Tab:CreateThemeSelector(config) config = config or {} local parent = GetParent(config) if not NexusUI.KeySystem:IsPremium() then return self:CreateLabel({ Text = "🔒 Theme Customizer (Premium Only)", Color = currentTheme.Warning, Section = config and config.Section, }) end local Frame = Create("Frame", { Name = "ThemeSelector", Size = UDim2.new(1, 0, 0, 80), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Title = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -16, 0, 20), Position = UDim2.new(0, 8, 0, 4), BackgroundTransparency = 1, Text = "🎨 Theme Selector", TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Scroll = Create("ScrollingFrame", { Name = "Scroll", Size = UDim2.new(1, -8, 1, -28), Position = UDim2.new(0, 4, 0, 24), BackgroundTransparency = 1, ScrollBarThickness = 2, ScrollBarImageColor3 = currentTheme.Accent, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.X, ScrollingDirection = Enum.ScrollingDirection.X, Parent = Frame, }) local SL = Create("UIListLayout", {Padding = UDim.new(0, 6), FillDirection = Enum.FillDirection.Horizontal, Parent = Scroll}) for themeName, themeData in pairs(NexusUI.Themes) do local Btn = Create("TextButton", { Size = UDim2.new(0, 70, 0, 40), BackgroundColor3 = themeData.Accent, Text = themeName, TextColor3 = Color3.fromRGB(255,255,255), TextSize = 10, Font = Config.FontBold, Parent = Scroll, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Btn}) Btn.MouseButton1Click:Connect(function() Window:SetTheme(themeName) end) end local Obj = { Frame = Frame, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Title.TextColor3 = newTheme.Text Scroll.ScrollBarImageColor3 = newTheme.Accent end, } return AddElement(self, Obj) end -- 18. CHIP / TAG function Tab:CreateChip(config) config = config or {} local text = config.Text or "Chip" local color = config.Color or currentTheme.Accent local removable = config.Removable or false local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Chip", Size = UDim2.new(0, 0, 0, 26), BackgroundColor3 = color, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.X, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 13), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(0, 0, 1, 0), Position = UDim2.new(0, 10, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = Color3.fromRGB(255,255,255), TextSize = 11, Font = Config.FontMedium, AutomaticSize = Enum.AutomaticSize.X, Parent = Frame, }) if removable then local RemoveBtn = Create("TextButton", { Name = "Remove", Size = UDim2.new(0, 18, 0, 18), Position = UDim2.new(1, -20, 0.5, -9), BackgroundTransparency = 1, Text = "×", TextColor3 = Color3.fromRGB(255,255,255), TextSize = 14, Font = Config.FontBold, Parent = Frame, }) RemoveBtn.MouseButton1Click:Connect(function() SafeCall(callback, "removed") Frame:Destroy() end) Frame.Size = UDim2.new(0, 0, 0, 26) end local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) end, Set = function(self, txt) Label.Text = txt end, } return AddElement(self, Obj) end -- 19. BADGE function Tab:CreateBadge(config) config = config or {} local text = config.Text or "Badge" local badgeType = config.Type or "Default" -- Default, Success, Warning, Error, Info, Premium local parent = GetParent(config) local badgeColors = { Default = currentTheme.Accent, Success = currentTheme.Success, Warning = currentTheme.Warning, Error = currentTheme.Error, Info = currentTheme.Info, Premium = currentTheme.Premium, } local color = badgeColors[badgeType] or currentTheme.Accent local Frame = Create("Frame", { Name = text .. "Badge", Size = UDim2.new(0, 0, 0, 18), BackgroundColor3 = color, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.X, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(0, 0, 1, 0), Position = UDim2.new(0, 8, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = Color3.fromRGB(255,255,255), TextSize = 9, Font = Config.FontBold, AutomaticSize = Enum.AutomaticSize.X, Parent = Frame, }) local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) end, Set = function(self, txt) Label.Text = txt end, SetType = function(self, t) badgeType = t Frame.BackgroundColor3 = badgeColors[t] or currentTheme.Accent end, } return AddElement(self, Obj) end -- 20. ACCORDION function Tab:CreateAccordion(config) config = config or {} local title = config.Title or "Accordion" local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = title .. "Accordion", Size = UDim2.new(1, 0, 0, 32), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, ClipsDescendants = true, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Header = Create("TextButton", { Name = "Header", Size = UDim2.new(1, 0, 0, 32), BackgroundTransparency = 1, Text = "", Parent = Frame, }) local TitleLabel = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -40, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = title, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Header, }) local Arrow = Create("TextLabel", { Name = "Arrow", Size = UDim2.new(0, 20, 0, 32), Position = UDim2.new(1, -28, 0, 0), BackgroundTransparency = 1, Text = "▼", TextColor3 = currentTheme.TextDim, TextSize = 12, Font = Config.Font, Parent = Header, }) local Content = Create("Frame", { Name = "Content", Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 0, 32), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, Parent = Frame, }) local CL = Create("UIListLayout", {Padding = UDim.new(0, 6), Parent = Content}) local CP = Create("UIPadding", {PaddingTop = UDim.new(0, 4), PaddingBottom = UDim.new(0, 4), PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10), Parent = Content}) local isOpen = false Header.MouseButton1Click:Connect(function() isOpen = not isOpen if isOpen then Tween(Arrow, {Rotation = 180}, 0.2) Frame.AutomaticSize = Enum.AutomaticSize.Y else Tween(Arrow, {Rotation = 0}, 0.2) Frame.Size = UDim2.new(1, 0, 0, 32) end SafeCall(callback, isOpen) end) local Obj = { Frame = Frame, Content = Content, IsOpen = isOpen, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary TitleLabel.TextColor3 = newTheme.Text Arrow.TextColor3 = newTheme.TextDim end, Toggle = function(self) isOpen = not isOpen if isOpen then Arrow.Rotation = 180 Frame.AutomaticSize = Enum.AutomaticSize.Y else Arrow.Rotation = 0 Frame.Size = UDim2.new(1, 0, 0, 32) end end, } return AddElement(self, Obj) end -- 21. TOOLTIP function Tab:CreateTooltip(config) config = config or {} local text = config.Text or "Tooltip" local target = config.Target local parent = GetParent(config) local Frame = Create("Frame", { Name = "Tooltip", Size = UDim2.new(0, 0, 0, 24), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.X, Visible = false, Parent = ScreenGui, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(0, 0, 1, 0), Position = UDim2.new(0, 8, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 10, Font = Config.Font, AutomaticSize = Enum.AutomaticSize.X, Parent = Frame, }) if target then target.MouseEnter:Connect(function() Frame.Visible = true Frame.Position = UDim2.new(0, target.AbsolutePosition.X, 0, target.AbsolutePosition.Y - 30) Tween(Frame, {BackgroundTransparency = 0}, 0.2) end) target.MouseLeave:Connect(function() Tween(Frame, {BackgroundTransparency = 1}, 0.2, nil, nil, function() Frame.Visible = false end) end) end local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Tertiary Label.TextColor3 = newTheme.Text end, Set = function(self, txt) Label.Text = txt end, Show = function(self) Frame.Visible = true Tween(Frame, {BackgroundTransparency = 0}, 0.2) end, Hide = function(self) Tween(Frame, {BackgroundTransparency = 1}, 0.2, nil, nil, function() Frame.Visible = false end) end, } return AddElement(self, Obj) end -- 22. TABLE / DATA GRID function Tab:CreateDataGrid(config) config = config or {} local columns = config.Columns or {"Name", "Value"} local rows = config.Rows or {} local parent = GetParent(config) local Frame = Create("Frame", { Name = "DataGrid", Size = UDim2.new(1, 0, 0, 40 + (#rows * 26)), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Header = Create("Frame", { Name = "Header", Size = UDim2.new(1, 0, 0, 24), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = Frame, }) local HC = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Header}) local colWidth = 1 / #columns for i, col in ipairs(columns) do local ColLabel = Create("TextLabel", { Size = UDim2.new(colWidth, -4, 1, 0), Position = UDim2.new((i-1)*colWidth, 2, 0, 0), BackgroundTransparency = 1, Text = col, TextColor3 = currentTheme.Text, TextSize = 10, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Header, }) end local rowFrames = {} local Obj = { Frame = Frame, Rows = rowFrames, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Header.BackgroundColor3 = newTheme.Tertiary end, AddRow = function(self, rowData) local idx = #rowFrames + 1 local Row = Create("Frame", { Size = UDim2.new(1, 0, 0, 24), Position = UDim2.new(0, 0, 0, 24 + (idx-1)*26), BackgroundTransparency = 1, Parent = Frame, }) for i, val in ipairs(rowData) do local ValLabel = Create("TextLabel", { Size = UDim2.new(colWidth, -4, 1, 0), Position = UDim2.new((i-1)*colWidth, 2, 0, 0), BackgroundTransparency = 1, Text = tostring(val), TextColor3 = currentTheme.TextDim, TextSize = 10, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Row, }) end table.insert(rowFrames, Row) Frame.Size = UDim2.new(1, 0, 0, 40 + (#rowFrames * 26)) return Row end, Clear = function(self) for _, row in ipairs(rowFrames) do row:Destroy() end rowFrames = {} Frame.Size = UDim2.new(1, 0, 0, 40) end, } for _, row in ipairs(rows) do Obj:AddRow(row) end return AddElement(self, Obj) end -- 23. NUMBER SPINNER function Tab:CreateNumberSpinner(config) config = config or {} local text = config.Text or "Spinner" local min = config.Min or 0 local max = config.Max or 100 local default = config.Default or min local increment = config.Increment or 1 local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Spinner", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, -100, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local ValueBox = Create("TextBox", { Name = "Value", Size = UDim2.new(0, 50, 0, 24), Position = UDim2.new(1, -90, 0.5, -12), BackgroundColor3 = currentTheme.Tertiary, Text = tostring(default), TextColor3 = currentTheme.Text, TextSize = 11, Font = Config.FontBold, Parent = Frame, }) local VBC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = ValueBox}) local MinusBtn = Create("TextButton", { Name = "Minus", Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, -36, 0.5, -12), BackgroundColor3 = currentTheme.Accent, Text = "−", TextColor3 = Color3.fromRGB(255,255,255), TextSize = 14, Font = Config.FontBold, Parent = Frame, }) local MBC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = MinusBtn}) local PlusBtn = Create("TextButton", { Name = "Plus", Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, -62, 0.5, -12), BackgroundColor3 = currentTheme.Accent, Text = "+", TextColor3 = Color3.fromRGB(255,255,255), TextSize = 14, Font = Config.FontBold, Parent = Frame, }) local PBC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = PlusBtn}) local currentValue = default local function Update(val) val = math.clamp(val, min, max) currentValue = val ValueBox.Text = tostring(val) SafeCall(callback, val) end PlusBtn.MouseButton1Click:Connect(function() Update(currentValue + increment) end) MinusBtn.MouseButton1Click:Connect(function() Update(currentValue - increment) end) ValueBox.FocusLost:Connect(function() local val = tonumber(ValueBox.Text) or min Update(val) end) local Obj = { Frame = Frame, Value = currentValue, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text ValueBox.BackgroundColor3 = newTheme.Tertiary ValueBox.TextColor3 = newTheme.Text MinusBtn.BackgroundColor3 = newTheme.Accent PlusBtn.BackgroundColor3 = newTheme.Accent end, Set = function(self, val) Update(val) end, Get = function(self) return currentValue end, } return AddElement(self, Obj) end -- 24. SEARCH BAR function Tab:CreateSearchBar(config) config = config or {} local placeholder = config.Placeholder or "Search..." local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = "SearchBar", Size = UDim2.new(1, 0, 0, 32), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Icon = Create("TextLabel", { Name = "Icon", Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(0, 6, 0.5, -12), BackgroundTransparency = 1, Text = "🔍", TextColor3 = currentTheme.TextDim, TextSize = 12, Font = Config.Font, Parent = Frame, }) local Box = Create("TextBox", { Name = "Box", Size = UDim2.new(1, -36, 1, 0), Position = UDim2.new(0, 30, 0, 0), BackgroundTransparency = 1, Text = "", PlaceholderText = placeholder, TextColor3 = currentTheme.Text, PlaceholderColor3 = currentTheme.TextDark, TextSize = 12, Font = Config.Font, Parent = Frame, }) Box.Changed:Connect(function(prop) if prop == "Text" then SafeCall(callback, Box.Text) end end) local Obj = { Frame = Frame, Box = Box, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Tertiary Icon.TextColor3 = newTheme.TextDim Box.TextColor3 = newTheme.Text Box.PlaceholderColor3 = newTheme.TextDark end, Set = function(self, txt) Box.Text = txt end, Get = function(self) return Box.Text end, Clear = function(self) Box.Text = "" end, } return AddElement(self, Obj) end -- 25. RICH TEXT / HTML-LIKE LABEL function Tab:CreateRichText(config) config = config or {} local text = config.Text or "Bold and italic" local parent = GetParent(config) local Frame = Create("Frame", { Name = "RichText", Size = UDim2.new(1, 0, 0, 40), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, Parent = parent, }) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, 0, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextWrapped = true, AutomaticSize = Enum.AutomaticSize.Y, RichText = true, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) Label.TextColor3 = newTheme.Text end, Set = function(self, txt) Label.Text = txt end, } return AddElement(self, Obj) end -- 26. CODE BLOCK function Tab:CreateCodeBlock(config) config = config or {} local code = config.Code or "print('Hello World')" local language = config.Language or "lua" local parent = GetParent(config) local Frame = Create("Frame", { Name = "CodeBlock", Size = UDim2.new(1, 0, 0, 80), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local LangLabel = Create("TextLabel", { Name = "Lang", Size = UDim2.new(0, 60, 0, 16), Position = UDim2.new(0, 8, 0, 4), BackgroundTransparency = 1, Text = language, TextColor3 = currentTheme.TextDark, TextSize = 9, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local CodeLabel = Create("TextLabel", { Name = "Code", Size = UDim2.new(1, -16, 1, -24), Position = UDim2.new(0, 8, 0, 20), BackgroundTransparency = 1, Text = code, TextColor3 = currentTheme.TextDim, TextSize = 11, Font = Enum.Font.Code, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local Obj = { Frame = Frame, Code = CodeLabel, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Tertiary LangLabel.TextColor3 = newTheme.TextDark CodeLabel.TextColor3 = newTheme.TextDim end, Set = function(self, txt) CodeLabel.Text = txt end, } return AddElement(self, Obj) end -- 27. COLLAPSIBLE function Tab:CreateCollapsible(config) config = config or {} local title = config.Title or "Collapsible" local parent = GetParent(config) local Frame = Create("Frame", { Name = title .. "Collapsible", Size = UDim2.new(1, 0, 0, 32), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, ClipsDescendants = true, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Header = Create("TextButton", { Name = "Header", Size = UDim2.new(1, 0, 0, 32), BackgroundTransparency = 1, Text = "", Parent = Frame, }) local TitleLabel = Create("TextLabel", { Name = "Title", Size = UDim2.new(1, -40, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = title, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = Header, }) local Toggle = Create("Frame", { Name = "Toggle", Size = UDim2.new(0, 36, 0, 18), Position = UDim2.new(1, -44, 0.5, -9), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = Header, }) local TC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = Toggle}) local Circle = Create("Frame", { Name = "Circle", Size = UDim2.new(0, 14, 0, 14), Position = UDim2.new(0, 2, 0.5, -7), BackgroundColor3 = Color3.fromRGB(255,255,255), BorderSizePixel = 0, Parent = Toggle, }) local CC = Create("UICorner", {CornerRadius = UDim.new(1, 0), Parent = Circle}) local Content = Create("Frame", { Name = "Content", Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 0, 32), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, Parent = Frame, }) local CL = Create("UIListLayout", {Padding = UDim.new(0, 6), Parent = Content}) local CP = Create("UIPadding", {PaddingTop = UDim.new(0, 4), PaddingBottom = UDim.new(0, 4), PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10), Parent = Content}) local isExpanded = false Header.MouseButton1Click:Connect(function() isExpanded = not isExpanded if isExpanded then Tween(Toggle, {BackgroundColor3 = currentTheme.Accent}, 0.2) Tween(Circle, {Position = UDim2.new(1, -16, 0.5, -7)}, 0.2) Frame.AutomaticSize = Enum.AutomaticSize.Y else Tween(Toggle, {BackgroundColor3 = currentTheme.Tertiary}, 0.2) Tween(Circle, {Position = UDim2.new(0, 2, 0.5, -7)}, 0.2) Frame.Size = UDim2.new(1, 0, 0, 32) end end) local Obj = { Frame = Frame, Content = Content, IsExpanded = isExpanded, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary TitleLabel.TextColor3 = newTheme.Text Toggle.BackgroundColor3 = isExpanded and newTheme.Accent or newTheme.Tertiary end, Toggle = function(self) isExpanded = not isExpanded if isExpanded then Toggle.BackgroundColor3 = currentTheme.Accent Circle.Position = UDim2.new(1, -16, 0.5, -7) Frame.AutomaticSize = Enum.AutomaticSize.Y else Toggle.BackgroundColor3 = currentTheme.Tertiary Circle.Position = UDim2.new(0, 2, 0.5, -7) Frame.Size = UDim2.new(1, 0, 0, 32) end end, } return AddElement(self, Obj) end -- 28. BREADCRUMB function Tab:CreateBreadcrumb(config) config = config or {} local items = config.Items or {"Home", "Settings", "Profile"} local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = "Breadcrumb", Size = UDim2.new(1, 0, 0, 24), BackgroundTransparency = 1, Parent = parent, }) local itemLabels = {} local xOffset = 0 for i, item in ipairs(items) do local isLast = (i == #items) local ItemLabel = Create("TextButton", { Name = item, Size = UDim2.new(0, 0, 0, 20), Position = UDim2.new(0, xOffset, 0, 2), BackgroundTransparency = 1, Text = item, TextColor3 = isLast and currentTheme.Text or currentTheme.Accent, TextSize = 11, Font = isLast and Config.FontBold or Config.Font, AutomaticSize = Enum.AutomaticSize.X, Parent = Frame, }) if not isLast then local Separator = Create("TextLabel", { Size = UDim2.new(0, 16, 0, 20), Position = UDim2.new(0, xOffset + ItemLabel.TextBounds.X + 2, 0, 2), BackgroundTransparency = 1, Text = ">", TextColor3 = currentTheme.TextDark, TextSize = 11, Font = Config.Font, Parent = Frame, }) xOffset = xOffset + ItemLabel.TextBounds.X + 18 end if not isLast then ItemLabel.MouseButton1Click:Connect(function() SafeCall(callback, item, i) end) end table.insert(itemLabels, ItemLabel) end local Obj = { Frame = Frame, Items = itemLabels, UpdateTheme = function(self, newTheme) for i, lbl in ipairs(itemLabels) do local isLast = (i == #itemLabels) lbl.TextColor3 = isLast and newTheme.Text or newTheme.Accent end end, } return AddElement(self, Obj) end -- 29. PAGINATION function Tab:CreatePagination(config) config = config or {} local totalPages = config.TotalPages or 5 local currentPage = config.CurrentPage or 1 local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = "Pagination", Size = UDim2.new(1, 0, 0, 30), BackgroundTransparency = 1, Parent = parent, }) local pageButtons = {} local btnWidth = math.min(30, (Config.GUIWidth - Config.TabWidth - 40) / totalPages) for i = 1, totalPages do local Btn = Create("TextButton", { Name = "Page" .. i, Size = UDim2.new(0, btnWidth, 0, 26), Position = UDim2.new(0, (i-1)*(btnWidth+4), 0, 2), BackgroundColor3 = i == currentPage and currentTheme.Accent or currentTheme.Tertiary, Text = tostring(i), TextColor3 = i == currentPage and Color3.fromRGB(255,255,255) or currentTheme.Text, TextSize = 11, Font = Config.FontBold, Parent = Frame, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Btn}) Btn.MouseButton1Click:Connect(function() currentPage = i for j, b in ipairs(pageButtons) do b.BackgroundColor3 = (j == i) and currentTheme.Accent or currentTheme.Tertiary b.TextColor3 = (j == i) and Color3.fromRGB(255,255,255) or currentTheme.Text end SafeCall(callback, i) end) table.insert(pageButtons, Btn) end local Obj = { Frame = Frame, CurrentPage = currentPage, Buttons = pageButtons, UpdateTheme = function(self, newTheme) for i, btn in ipairs(pageButtons) do btn.BackgroundColor3 = (i == currentPage) and newTheme.Accent or newTheme.Tertiary end end, SetPage = function(self, page) currentPage = page for i, btn in ipairs(pageButtons) do btn.BackgroundColor3 = (i == page) and currentTheme.Accent or currentTheme.Tertiary btn.TextColor3 = (i == page) and Color3.fromRGB(255,255,255) or currentTheme.Text end end, } return AddElement(self, Obj) end -- 30. SKELETON / LOADING function Tab:CreateSkeleton(config) config = config or {} local lines = config.Lines or 3 local parent = GetParent(config) local Frame = Create("Frame", { Name = "Skeleton", Size = UDim2.new(1, 0, 0, 10 + (lines * 16)), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local skeletonBars = {} for i = 1, lines do local Bar = Create("Frame", { Name = "Bar" .. i, Size = UDim2.new(math.random(60, 100)/100, 0, 0, 10), Position = UDim2.new(0, 10, 0, 10 + (i-1)*16), BackgroundColor3 = currentTheme.Tertiary, BorderSizePixel = 0, Parent = Frame, }) local BC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Bar}) table.insert(skeletonBars, Bar) -- Shimmer effect local Shimmer = Create("Frame", { Size = UDim2.new(0.3, 0, 1, 0), Position = UDim2.new(-0.3, 0, 0, 0), BackgroundColor3 = Color3.fromRGB(255,255,255), BackgroundTransparency = 0.9, BorderSizePixel = 0, Parent = Bar, }) local SC = Create("UICorner", {CornerRadius = UDim.new(0, 4), Parent = Shimmer}) task.spawn(function() while Bar and Bar.Parent do Tween(Shimmer, {Position = UDim2.new(1, 0, 0, 0)}, 1.5) task.wait(1.5) Shimmer.Position = UDim2.new(-0.3, 0, 0, 0) task.wait(0.5) end end) end local Obj = { Frame = Frame, Bars = skeletonBars, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary for _, bar in ipairs(skeletonBars) do bar.BackgroundColor3 = newTheme.Tertiary end end, Destroy = function(self) for _, bar in ipairs(skeletonBars) do bar:Destroy() end Frame:Destroy() end, } return AddElement(self, Obj) end -- 31. TIMER / COUNTDOWN function Tab:CreateTimer(config) config = config or {} local text = config.Text or "Timer" local seconds = config.Seconds or 60 local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Timer", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Secondary, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(0.5, 0, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = currentTheme.Text, TextSize = 12, Font = Config.Font, TextXAlignment = Enum.TextXAlignment.Left, Parent = Frame, }) local TimeLabel = Create("TextLabel", { Name = "Time", Size = UDim2.new(0.5, -16, 1, 0), Position = UDim2.new(0.5, 4, 0, 0), BackgroundTransparency = 1, Text = string.format("%02d:%02d", math.floor(seconds/60), seconds%60), TextColor3 = currentTheme.Accent, TextSize = 12, Font = Config.FontBold, TextXAlignment = Enum.TextXAlignment.Right, Parent = Frame, }) local isRunning = false local currentSeconds = seconds local connection local function FormatTime(s) return string.format("%02d:%02d", math.floor(s/60), s%60) end local Obj = { Frame = Frame, Time = currentSeconds, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Secondary Label.TextColor3 = newTheme.Text TimeLabel.TextColor3 = newTheme.Accent end, Start = function(self) if isRunning then return end isRunning = true connection = task.spawn(function() while isRunning and currentSeconds > 0 do task.wait(1) currentSeconds = currentSeconds - 1 TimeLabel.Text = FormatTime(currentSeconds) if currentSeconds <= 0 then isRunning = false SafeCall(callback) end end end) end, Stop = function(self) isRunning = false end, Reset = function(self) isRunning = false currentSeconds = seconds TimeLabel.Text = FormatTime(currentSeconds) end, Set = function(self, s) seconds = s currentSeconds = s TimeLabel.Text = FormatTime(s) end, } return AddElement(self, Obj) end -- 32. COPY BUTTON function Tab:CreateCopyButton(config) config = config or {} local text = config.Text or "Copy" local copyText = config.CopyText or "Copied!" local callback = config.Callback or function() end local parent = GetParent(config) local Frame = Create("Frame", { Name = text .. "Copy", Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = currentTheme.Accent, BorderSizePixel = 0, Parent = parent, }) local Corner = Create("UICorner", {CornerRadius = UDim.new(0, 6), Parent = Frame}) local Label = Create("TextLabel", { Name = "Text", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "📋 " .. text, TextColor3 = Color3.fromRGB(255,255,255), TextSize = 12, Font = Config.FontBold, Parent = Frame, }) local Click = Create("TextButton", { Name = "Click", Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "", Parent = Frame, }) Click.MouseButton1Click:Connect(function() pcall(function() setclipboard(copyText) end) Label.Text = "✅ Copied!" task.delay(2, function() if Label and Label.Parent then Label.Text = "📋 " .. text end end) SafeCall(callback, copyText) end) local Obj = { Frame = Frame, Text = Label, UpdateTheme = function(self, newTheme) Frame.BackgroundColor3 = newTheme.Accent end, SetText = function(self, txt) copyText = txt end, } return AddElement(self, Obj) end return Tab end -- ═══════════════════════════════════════════════════════════════════════════════ -- WINDOW METHODS -- ═══════════════════════════════════════════════════════════════════════════════ function Window:SetTitle(newTitle) Config.Title = newTitle TitleText.Text = newTitle if KeyBadge then pcall(function() KeyBadge.Position = UDim2.new(0, 10 + TitleText.TextBounds.X + 6, 0, 6) end) end end function Window:SetSize(width, height) Config.GUIWidth = width Config.GUIHeight = height Tween(MainFrame, {Size = UDim2.new(0, width, 0, height)}, 0.3) end function Window:SetPosition(pos) Tween(MainFrame, {Position = pos}, 0.3) end function Window:Show() MainFrame.Visible = true Tween(MainFrame, {Size = UDim2.new(0, Config.GUIWidth, 0, Config.GUIHeight)}, 0.3) end function Window:Hide() Tween(MainFrame, {Size = UDim2.new(0, 0, 0, 0)}, 0.3, nil, nil, function() MainFrame.Visible = false end) end function Window:Destroy() Tween(MainFrame, {Size = UDim2.new(0, 0, 0, 0)}, 0.2, nil, nil, function() self.IsDestroyed = true ScreenGui:Destroy() end) end function Window:IsVisible() return MainFrame.Visible end function Window:GetConfig() return Config end -- ═══════════════════════════════════════════════════════════════════════════════ -- ANIMATED ENTRANCE -- ═══════════════════════════════════════════════════════════════════════════════ MainFrame.Size = UDim2.new(0, 0, 0, 0) Tween(MainFrame, {Size = UDim2.new(0, Config.GUIWidth, 0, Config.GUIHeight)}, 0.5) SafeCall(Config.OnLoad) return Window end -- ═══════════════════════════════════════════════════════════════════════════════ -- EXAMPLE USAGE -- ═══════════════════════════════════════════════════════════════════════════════ --[[ local Nexus = loadstring(game:HttpGet("YOUR_URL"))() local Window = Nexus:CreateWindow({ Title = "Nexus Hub", SubTitle = "v3.0 Premium", Executor = "Synapse X", Theme = "Dark", KeySystem = true, ShowUserInfo = true, ShowPremiumBadge = true, Position = "Center", NotificationPosition = "BottomRight", OnLoad = function() print("Window loaded!") end, OnKeyAuthenticated = function(keyType) print("Key: " .. keyType) end, }) Window:ShowKeySystem() local MainTab = Window:CreateTab({Name = "Main", Icon = ""}) local VisualTab = Window:CreateTab({Name = "Visual", Icon = ""}) local SettingsTab = Window:CreateTab({Name = "Settings", Icon = ""}) -- Section local Section = MainTab:CreateSection({Name = "Player Mods"}) -- All 32 components demonstrated: MainTab:CreateButton({Text = "Infinite Jump", Section = Section, Callback = function() print("Jump!") end}) MainTab:CreateToggle({Text = "Auto Farm", Default = false, Section = Section, Callback = function(v) print(v) end}) MainTab:CreateSlider({Text = "Speed", Min = 16, Max = 500, Default = 16, Suffix = " s/s", Section = Section, Callback = function(v) print(v) end}) MainTab:CreateDropdown({Text = "Teleport", Options = {"Spawn","Shop","Boss"}, Default = "Spawn", Section = Section, Callback = function(v) print(v) end}) MainTab:CreateInput({Text = "Player", Placeholder = "Name...", Section = Section, Callback = function(t) print(t) end}) MainTab:CreateKeybind({Text = "Fly Key", Default = Enum.KeyCode.F, Section = Section, Callback = function(k) print(k) end}) MainTab:CreateColorPicker({Text = "ESP Color", Default = Color3.fromRGB(255,0,0), Section = Section, Callback = function(c) print(c) end}) MainTab:CreateLabel({Text = "Info Label", Color = Color3.fromRGB(200,200,200), Section = Section}) MainTab:CreateParagraph({Title = "Notice", Content = "This is a paragraph component for longer text.", Section = Section}) MainTab:CreateProgressBar({Text = "Loading", Value = 45, Section = Section}) MainTab:CreateDivider({Section = Section}) MainTab:CreateImage({Image = "rbxassetid://123456", Size = UDim2.new(1,0,0,80), Section = Section}) MainTab:CreateSpacer({Height = 10, Section = Section}) MainTab:CreateList({Title = "Scripts", Items = {"Aimbot","ESP","Fly"}, Section = Section, Callback = function(i) print(i) end}) MainTab:CreateMultiToggle({Text = "Features", Options = {"Aim","ESP","Wall"}, Section = Section, Callback = function(s) print(s) end}) MainTab:CreateThemeSelector({Section = Section}) MainTab:CreateChip({Text = "New", Color = Color3.fromRGB(46,204,113), Section = Section}) MainTab:CreateBadge({Text = "BETA", Type = "Warning", Section = Section}) MainTab:CreateAccordion({Title = "Advanced Settings", Section = Section}) MainTab:CreateDataGrid({Columns = {"Name","Value"}, Rows = {{"Speed","100"},{"Jump","50"}}, Section = Section}) MainTab:CreateNumberSpinner({Text = "Amount", Min = 0, Max = 100, Default = 10, Section = Section}) MainTab:CreateSearchBar({Placeholder = "Search scripts...", Section = Section, Callback = function(t) print(t) end}) MainTab:CreateRichText({Text = "Bold Italic Underline", Section = Section}) MainTab:CreateCodeBlock({Code = "print('Hello World')", Language = "lua", Section = Section}) MainTab:CreateCollapsible({Title = "More Options", Section = Section}) MainTab:CreateBreadcrumb({Items = {"Home","Settings","Profile"}, Section = Section}) MainTab:CreatePagination({TotalPages = 5, CurrentPage = 1, Section = Section, Callback = function(p) print(p) end}) MainTab:CreateSkeleton({Lines = 3, Section = Section}) MainTab:CreateTimer({Text = "Cooldown", Seconds = 60, Section = Section, Callback = function() print("Done!") end}) MainTab:CreateCopyButton({Text = "Copy Script", CopyText = "loadstring()()", Section = Section}) Window:Notify({Title = "Welcome!", Content = "Nexus UI v3.0 loaded!", Type = "Success", Duration = 3}) --]] return NexusUI