-- ██████╗ ██████╗ ██╗ ██╗██╗ ██╗██╗ ██████╗ ███╗ ██╗ -- ██╔═══██╗██╔══██╗██║ ██║██║ ██║██║██╔═══██╗████╗ ██║ -- ██║ ██║██████╔╝██║ ██║██║ ██║██║██║ ██║██╔██╗ ██║ -- ██║ ██║██╔══██╗██║ ██║╚██╗ ██╔╝██║██║ ██║██║╚██╗██║ -- ╚██████╔╝██████╔╝███████╗██║ ╚████╔╝ ██║╚██████╔╝██║ ╚████║ -- v 0.0.1 local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local ReplicatedFirst = game:GetService("ReplicatedFirst") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Lighting = game:GetService("Lighting") local Player = Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") if PlayerGui:FindFirstChild("OblivionFramework") then return end local UI_CONFIG = { Primary = Color3.fromRGB(10, 10, 10), CardBg = Color3.fromRGB(18, 18, 18), Border = Color3.fromRGB(32, 32, 32), Highlight = Color3.fromRGB(255, 255, 255), Text = Color3.fromRGB(245, 245, 245), Muted = Color3.fromRGB(120, 120, 125), Destructive = Color3.fromRGB(255, 80, 80), SidebarWidth = 72 } local THEMES = { Neutral = Color3.fromRGB(150, 150, 150), Amber = Color3.fromRGB(255, 170, 0), Blue = Color3.fromRGB(0, 120, 255), Cyan = Color3.fromRGB(0, 200, 255), Emerald = Color3.fromRGB(0, 200, 120), Fuchsia = Color3.fromRGB(200, 0, 255), Green = Color3.fromRGB(100, 200, 0), Indigo = Color3.fromRGB(80, 100, 255), Lime = Color3.fromRGB(150, 255, 0), Orange = Color3.fromRGB(255, 100, 0), Pink = Color3.fromRGB(255, 80, 150) } local STATES = { Fly = {Active = false, Speed = 50}, Noclip = false, HubVisible = true, CommandPrefix = "ob/", Settings = { Appearance = { UIScale = 1.0, FontSize = 14, BlurStrength = 0, Transparency = 0, AnimationsEnabled = true, AccentColor = "Neutral" }, Notifications = { Duration = 4, SoundEnabled = true, Position = "BottomRight", SeverityFilter = "All" }, Controls = { FlySpeed = 50, Sensitivity = 1.0, Keybinds = { ToggleHub = Enum.KeyCode.RightControl, Fly = Enum.KeyCode.F, Noclip = Enum.KeyCode.N } }, Performance = { FPSLimit = 60, RenderDistance = 1000, ParticlesEnabled = true, LowGraphicsMode = false }, Audio = { MasterVolume = 0.5, MusicVolume = 0.5, Muted = false }, Privacy = { ChatVisible = true, JoinLeaveAlerts = true, ScreenshotWatermark = false }, Advanced = { DebugMode = false, ExperimentalFeatures = false, CommandPrefix = "ob/" }, Accessibility = { ReducedMotion = false, HighContrast = false } } } -- [ Core Systems ] -- local ThemeManager = {} local Listeners = {} function ThemeManager.Subscribe(object, property, colorKey) if not Listeners[colorKey] then Listeners[colorKey] = {} end table.insert(Listeners[colorKey], {Obj = object, Prop = property}) -- Apply immediately if colorKey == "Highlight" then object[property] = UI_CONFIG.Highlight elseif colorKey == "Border" then object[property] = UI_CONFIG.Border end end function ThemeManager.Update(key, newColor) if key == "Highlight" then UI_CONFIG.Highlight = newColor end if Listeners[key] then for _, item in ipairs(Listeners[key]) do if item.Obj then item.Obj[item.Prop] = newColor end end end end local NotificationSystem = {} function NotificationSystem.Show(titleText, descText) local screenGui = PlayerGui:FindFirstChild("OblivionNotifications") or Instance.new("ScreenGui", PlayerGui) screenGui.Name, screenGui.ResetOnSpawn, screenGui.DisplayOrder = "OblivionNotifications", false, 10 local function updateStack() local frames = {} for _, v in ipairs(screenGui:GetChildren()) do if v:IsA("Frame") and v.Name == "Alert" then table.insert(frames, v) end end for i, v in ipairs(frames) do local targetY = -(20 + ((#frames - i) * 80)) TweenService:Create(v, TweenInfo.new(0.4, Enum.EasingStyle.Quart), {Position = UDim2.new(1, -20, 1, targetY)}):Play() end end local alert = Instance.new("Frame", screenGui) alert.Name, alert.Size, alert.BackgroundColor3, alert.AnchorPoint = "Alert", UDim2.new(0, 340, 0, 70), Color3.fromRGB(15, 15, 15), Vector2.new(1, 1) alert.Position, alert.BorderSizePixel = UDim2.new(1, 400, 1, -20), 0 Instance.new("UICorner", alert).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", alert) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local title = Instance.new("TextLabel", alert) title.Text, title.Size, title.Position = titleText:upper(), UDim2.new(1, -30, 0, 18), UDim2.new(0, 15, 0, 15) title.BackgroundTransparency, title.TextColor3, title.TextSize = 1, UI_CONFIG.Text, 13 title.Font, title.TextXAlignment = Enum.Font.BuilderSansBold, Enum.TextXAlignment.Left local desc = Instance.new("TextLabel", alert) desc.Text, desc.Size, desc.Position = descText, UDim2.new(1, -30, 0, 30), UDim2.new(0, 15, 0, 30) desc.BackgroundTransparency, desc.TextColor3, desc.TextSize = 1, UI_CONFIG.Muted, 13 desc.Font, desc.TextXAlignment = Enum.Font.BuilderSans, Enum.TextXAlignment.Left desc.TextWrapped = true updateStack() task.delay(4, function() if alert and alert.Parent then local shrink = TweenService:Create(alert, TweenInfo.new(0.4, Enum.EasingStyle.Quart), {Position = UDim2.new(1, 400, 1, alert.Position.Y.Offset), BackgroundTransparency = 1}) shrink:Play() shrink.Completed:Connect(function() alert:Destroy() updateStack() end) end end) end -- [ Command Registry ] -- local EXE = {} local noclipConnection = nil function EXE.Speed(val) local char = Player.Character if char and char:FindFirstChildOfClass("Humanoid") then char:FindFirstChildOfClass("Humanoid").WalkSpeed = tonumber(val) or 16 NotificationSystem.Show("Performance", "Speed set to " .. (tonumber(val) or 16)) end end function EXE.Jump(val) local char = Player.Character if char and char:FindFirstChildOfClass("Humanoid") then local hum = char:FindFirstChildOfClass("Humanoid") hum.UseJumpPower = true hum.JumpPower = tonumber(val) or 50 NotificationSystem.Show("Performance", "JumpPower set to " .. (tonumber(val) or 50)) end end function EXE.Fly() STATES.Fly.Active = not STATES.Fly.Active NotificationSystem.Show("Movement", "Flight Mode: " .. (STATES.Fly.Active and "Enabled" or "Disabled")) if STATES.Fly.Active then task.spawn(function() local char = Player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then STATES.Fly.Active = false return end local att = Instance.new("Attachment", root) att.Name = "OblivionFlyAtt" local lv = Instance.new("LinearVelocity", root) lv.Name = "OblivionFlyLV" lv.Attachment0 = att lv.MaxForce = 1e6 lv.VectorVelocity = Vector3.new(0, 0, 0) lv.VelocityConstraintMode = Enum.VelocityConstraintMode.Vector lv.RelativeTo = Enum.ActuatorRelativeTo.World local ao = Instance.new("AlignOrientation", root) ao.Name = "OblivionFlyAO" ao.Attachment0 = att ao.Mode = Enum.OrientationAlignmentMode.OneAttachment ao.MaxTorque = 1e6 ao.Responsiveness = 200 while STATES.Fly.Active and char and char.Parent do local camera = Workspace.CurrentCamera local move = Vector3.new(0, 0, 0) if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then move = move - Vector3.new(0, 1, 0) end lv.VectorVelocity = move * STATES.Fly.Speed ao.CFrame = camera.CFrame RunService.RenderStepped:Wait() end if att then att:Destroy() end if lv then lv:Destroy() end if ao then ao:Destroy() end end) end end function EXE.Noclip() STATES.Noclip = not STATES.Noclip NotificationSystem.Show("Physics", "Noclip: " .. (STATES.Noclip and "Enabled" or "Disabled")) if STATES.Noclip then local function setNoclip(char) for _, v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end if noclipConnection then noclipConnection:Disconnect() end noclipConnection = char.DescendantAdded:Connect(function(v) if v:IsA("BasePart") then v.CanCollide = false end end) end if Player.Character then setNoclip(Player.Character) end task.spawn(function() while STATES.Noclip do if Player.Character then for _, v in pairs(Player.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end RunService.Stepped:Wait() end end) else if noclipConnection then noclipConnection:Disconnect(); noclipConnection = nil end end end function EXE.PlayMusic(id) local remote = ReplicatedStorage:FindFirstChild("PlayRemote") or ReplicatedStorage:FindFirstChild("MusicRemote") or ReplicatedStorage:FindFirstChild("Music") if remote and remote:IsA("RemoteEvent") then remote:FireServer("Play", id) NotificationSystem.Show("Audio", "Requesting playback ID: " .. id) else NotificationSystem.Show("Error", "No music remote detected") end end function EXE.GiveTool(name) local tool = ReplicatedStorage:FindFirstChild(name, true) or Lighting:FindFirstChild(name, true) if tool and tool:IsA("Tool") then local clone = tool:Clone() clone.Parent = Player.Backpack clone.Parent = Player.Character NotificationSystem.Show("Inventory", "Obtained " .. name) else NotificationSystem.Show("Error", "Tool not found: " .. name) end end function EXE.Fling(targetName) local char = Player.Character if not char then NotificationSystem.Show("Error", "Character not found") return end local handle = char:FindFirstChildOfClass("Tool") if not handle or not handle:FindFirstChild("Handle") then NotificationSystem.Show("Error", "Equip a tool with a handle first!") return end handle = handle.Handle local function GetPlayerFromPartialName(partial) partial = partial:lower() local matches = {} for _, player in ipairs(Players:GetPlayers()) do if player.Name:lower():sub(1, #partial) == partial then table.insert(matches, player) end end if #matches == 1 then return matches[1] else return nil end end local targetPlayer = GetPlayerFromPartialName(targetName) if not targetPlayer or not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then NotificationSystem.Show("Error", "Player not found or multiple matches") return end NotificationSystem.Show("Fling", "Flinging " .. targetPlayer.DisplayName .. "...") if char.Humanoid.RigType == Enum.HumanoidRigType.R15 then if char:FindFirstChild("RightHand") then char.RightHand:Destroy() end else if char:FindFirstChild("Right Arm") then char["Right Arm"]:Destroy() end end if handle:FindFirstChild("Mesh") then handle.Mesh:Destroy() end handle.RotVelocity = Vector3.new(0, 999999, 0) Workspace.CurrentCamera.CameraSubject = targetPlayer.Character local tp = coroutine.create(function() while task.wait() do handle.CFrame = targetPlayer.Character.HumanoidRootPart.CFrame end end) coroutine.resume(tp) task.wait(2) coroutine.close(tp) Workspace.CurrentCamera.CameraSubject = char.Humanoid NotificationSystem.Show("Fling", "Flung " .. targetPlayer.DisplayName) end function EXE.Kill(targetName) local char = Player.Character if not char then NotificationSystem.Show("Error", "Character not found") return end if not Player.Backpack:FindFirstChildOfClass("Tool") and not char:FindFirstChildOfClass("Tool") then NotificationSystem.Show("Error", "Need a tool in inventory!") return end local function findPlayer(name) name = name:lower() for _, p in pairs(Players:GetPlayers()) do if p ~= Player and p.Name:lower():sub(1, #name) == name then return p end end return nil end local targetPlayer = findPlayer(targetName) if not targetPlayer or not targetPlayer.Character then NotificationSystem.Show("Error", "Player not found") return end local tchar = targetPlayer.Character local thrp = tchar:FindFirstChild("HumanoidRootPart") if not thrp then NotificationSystem.Show("Error", "Target HumanoidRootPart not found") return end NotificationSystem.Show("Kill", "Eliminating " .. targetPlayer.DisplayName .. "...") local hum = char:FindFirstChildOfClass("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") local cam = Workspace.CurrentCamera local anim = char:FindFirstChild("Animate") if not hum or not hrp or not anim then NotificationSystem.Show("Error", "Missing character components") return end local clone = hum:Clone() clone.Parent = char hum:Destroy() cam.CameraSubject = char anim.Disabled = true anim.Disabled = false if Player.Backpack:FindFirstChildOfClass("Tool") then clone:EquipTool(Player.Backpack:FindFirstChildOfClass("Tool")) else clone:UnequipTools() if Player.Backpack:FindFirstChildOfClass("Tool") then clone:EquipTool(Player.Backpack:FindFirstChildOfClass("Tool")) end end local tool = char:FindFirstChildOfClass("Tool") if not tool or not tool:FindFirstChild("Handle") then NotificationSystem.Show("Error", "Tool handle not found") return end task.wait(0.2) thrp.CFrame = tool.Handle.CFrame tool.AncestryChanged:Wait() hrp.CFrame = CFrame.new(Vector3.new(0, Workspace.FallenPartsDestroyHeight + 1, 0)) NotificationSystem.Show("Kill", "Eliminated " .. targetPlayer.DisplayName) end -- [ Handlers ] -- local function onRespawn(char) STATES.Fly.Active = false STATES.Noclip = false if noclipConnection then noclipConnection:Disconnect(); noclipConnection = nil end end Player.CharacterAdded:Connect(onRespawn) Player.Chatted:Connect(function(msg) local args = msg:split(" ") local cmd = args[1]:lower() local prefix = STATES.CommandPrefix if cmd == prefix .. "reset" then if Player.Character then Player.Character:BreakJoints() end elseif cmd == prefix .. "speed" then EXE.Speed(args[2]) elseif cmd == prefix .. "jumpower" then EXE.Jump(args[2]) elseif cmd == prefix .. "fly" then EXE.Fly() elseif cmd == prefix .. "noclip" then EXE.Noclip() elseif cmd == prefix .. "fling" then if args[2] then EXE.Fling(args[2]) else NotificationSystem.Show("Error", "Usage: " .. prefix .. "fling ") end elseif cmd == prefix .. "kill" then if args[2] then EXE.Kill(args[2]) else NotificationSystem.Show("Error", "Usage: " .. prefix .. "kill ") end elseif cmd == prefix .. "prefix" then if args[2] and args[2] ~= "" then STATES.CommandPrefix = args[2] STATES.Settings.Advanced.CommandPrefix = args[2] NotificationSystem.Show("Settings", "Command prefix changed to: " .. args[2]) else NotificationSystem.Show("Info", "Current prefix: " .. prefix) end end end) -- [ UI Construction ] -- local function makeDraggable(obj) local dragging, dragInput, dragStart, startPos obj.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and not UserInputService:GetFocusedTextBox() then dragging = true dragStart = input.Position startPos = obj.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) obj.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart obj.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) end local function createHub() local screen = Instance.new("ScreenGui", PlayerGui) screen.Name, screen.ResetOnSpawn = "OblivionFramework", false screen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local main = Instance.new("Frame", screen) main.Name, main.BackgroundColor3, main.Position = "Main", UI_CONFIG.Primary, UDim2.new(0.5, -283, 0.5, -165) main.Size, main.BorderSizePixel = UDim2.new(0, 567, 0, 331), 0 Instance.new("UICorner", main).CornerRadius = UDim.new(0, 12) local mainStroke = Instance.new("UIStroke", main) mainStroke.Color, mainStroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(mainStroke, "Color", "Border") makeDraggable(main) local sidebar = Instance.new("Frame", main) sidebar.Name, sidebar.Size, sidebar.BackgroundTransparency = "Sidebar", UDim2.new(0, UI_CONFIG.SidebarWidth, 1, 0), 1 local sep = Instance.new("Frame", main) sep.Size, sep.Position, sep.BackgroundColor3 = UDim2.new(0, 1, 1, 0), UDim2.new(0, UI_CONFIG.SidebarWidth, 0, 0), UI_CONFIG.Border sep.BorderSizePixel = 0 ThemeManager.Subscribe(sep, "BackgroundColor3", "Border") local container = Instance.new("Frame", main) container.Name, container.Size, container.Position = "Content", UDim2.new(1, -UI_CONFIG.SidebarWidth, 1, 0), UDim2.new(0, UI_CONFIG.SidebarWidth, 0, 0) container.BackgroundTransparency = 1 local navItems = {} local function createNav(name, iconId, rectOffset, rectSize, pos) local btn = Instance.new("ImageButton", sidebar) btn.Name, btn.BackgroundTransparency, btn.Size, btn.Position = name, 1, UDim2.new(0, 38, 0, 38), pos btn.Image, btn.ImageRectOffset, btn.ImageRectSize, btn.ImageTransparency = iconId, rectOffset, rectSize, 0.6 local page = Instance.new("Frame", container) page.Name, page.Size, page.BackgroundTransparency, page.Visible = name, UDim2.new(1, 0, 1, 0), 1, false btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {ImageTransparency = 0}):Play() end) btn.MouseLeave:Connect(function() if not page.Visible then TweenService:Create(btn, TweenInfo.new(0.2), {ImageTransparency = 0.6}):Play() end end) btn.MouseButton1Click:Connect(function() for _, item in pairs(navItems) do item.Page.Visible = false; TweenService:Create(item.Btn, TweenInfo.new(0.3), {ImageTransparency = 0.6}):Play() end page.Visible = true; TweenService:Create(btn, TweenInfo.new(0.3), {ImageTransparency = 0}):Play() end) navItems[name] = {Btn = btn, Page = page} return page end local home = createNav("Home", "rbxassetid://6764432408", Vector2.new(150, 800), Vector2.new(50, 50), UDim2.new(0.5, -19, 0.08, 0)) local cmdPage = createNav("Commands", "rbxassetid://8445470189", Vector2.new(404, 604), Vector2.new(96, 96), UDim2.new(0.5, -19, 0.38, 0)) local setPage = createNav("Settings", "rbxassetid://8445471332", Vector2.new(604, 404), Vector2.new(96, 96), UDim2.new(0.5, -19, 0.68, 0)) -- [ Components ] -- local UI = {} function UI.Header(parent, text) local h = Instance.new("TextLabel", parent) h.Text, h.Size, h.Name = text:upper(), UDim2.new(1, 0, 0, 25), "Header" h.BackgroundTransparency, h.TextColor3, h.TextSize, h.Font = 1, UI_CONFIG.Muted, 11, Enum.Font.BuilderSansBold h.TextXAlignment = Enum.TextXAlignment.Left local pad = Instance.new("UIPadding", h) pad.PaddingLeft = UDim.new(0, 10) end function UI.Toggle(parent, name, default, fn) local frame = Instance.new("Frame", parent) frame.Size, frame.BackgroundColor3 = UDim2.new(1, 0, 0, 50), UI_CONFIG.CardBg Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", frame) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local t = Instance.new("TextLabel", frame) t.Text, t.Size, t.Position = name, UDim2.new(1, -70, 0, 50), UDim2.new(0, 15, 0, 0) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local pill = Instance.new("TextButton", frame) pill.Name, pill.Text, pill.Size, pill.Position = "Pill", "", UDim2.new(0, 42, 0, 22), UDim2.new(1, -57, 0.5, -11) pill.BackgroundColor3 = default and Color3.fromRGB(45, 45, 45) or Color3.fromRGB(30, 30, 30) pill.AutoButtonColor = false Instance.new("UICorner", pill).CornerRadius = UDim.new(1, 0) local knob = Instance.new("Frame", pill) knob.Name, knob.Size, knob.Position = "Knob", UDim2.new(0, 16, 0, 16), UDim2.new(0, default and 23 or 3, 0.5, -8) knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local active = default pill.MouseButton1Click:Connect(function() active = not active local targetPos = active and UDim2.new(0, 23, 0.5, -8) or UDim2.new(0, 3, 0.5, -8) local targetColor = active and Color3.fromRGB(45, 45, 45) or Color3.fromRGB(30, 30, 30) TweenService:Create(knob, TweenInfo.new(0.25, Enum.EasingStyle.Quart), {Position = targetPos}):Play() TweenService:Create(pill, TweenInfo.new(0.25, Enum.EasingStyle.Quart), {BackgroundColor3 = targetColor}):Play() fn(active) end) end function UI.ThemeOption(parent, name, color, isSelect, fn) local btn = Instance.new("TextButton", parent) btn.Name, btn.Text, btn.Size = name, "", UDim2.new(1, 0, 0, 45) btn.BackgroundTransparency = 1 local circ = Instance.new("Frame", btn) circ.Size, circ.Position = UDim2.new(0, 18, 0, 18), UDim2.new(0, 10, 0.5, -9) circ.BackgroundColor3 = color Instance.new("UICorner", circ).CornerRadius = UDim.new(1, 0) local t = Instance.new("TextLabel", btn) t.Text, t.Size, t.Position = name, UDim2.new(1, -80, 1, 0), UDim2.new(0, 40, 0, 0) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left if isSelect then local check = Instance.new("TextLabel", btn) check.Text, check.Size, check.Position = "✓", UDim2.new(0, 30, 1, 0), UDim2.new(1, -40, 0, 0) check.BackgroundTransparency, check.TextColor3, check.TextSize, check.Font = 1, UI_CONFIG.Highlight, 16, Enum.Font.BuilderSansBold check.TextXAlignment = Enum.TextXAlignment.Right ThemeManager.Subscribe(check, "TextColor3", "Highlight") end btn.MouseButton1Click:Connect(fn) end function UI.ProgressBar(parent, text) local container = Instance.new("Frame", parent) container.Name, container.Size, container.BackgroundTransparency = "ProgressCont", UDim2.new(1, 0, 0, 45), 1 local lbl = Instance.new("TextLabel", container) lbl.Text, lbl.Size, lbl.Position = text, UDim2.new(1, 0, 0, 15), UDim2.new(0, 5, 0, 0) lbl.BackgroundTransparency, lbl.TextColor3, lbl.TextSize, lbl.Font = 1, UI_CONFIG.Muted, 11, Enum.Font.BuilderSansBold lbl.TextXAlignment = Enum.TextXAlignment.Left local track = Instance.new("Frame", container) track.Name, track.Size, track.Position = "Track", UDim2.new(1, -10, 0, 4), UDim2.new(0, 5, 0, 25) track.BackgroundColor3 = UI_CONFIG.Border Instance.new("UICorner", track).CornerRadius = UDim.new(1, 0) ThemeManager.Subscribe(track, "BackgroundColor3", "Border") local bar = Instance.new("Frame", track) bar.Name, bar.Size, bar.BackgroundColor3 = "Bar", UDim2.new(0.5, 0, 1, 0), UI_CONFIG.Highlight Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0) ThemeManager.Subscribe(bar, "BackgroundColor3", "Highlight") return bar end function UI.Slider(parent, name, min, max, default, fn) local frame = Instance.new("Frame", parent) frame.Size, frame.BackgroundColor3 = UDim2.new(1, 0, 0, 60), UI_CONFIG.CardBg Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", frame) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local t = Instance.new("TextLabel", frame) t.Text, t.Size, t.Position = name, UDim2.new(1, -80, 0, 20), UDim2.new(0, 15, 0, 8) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local valueLabel = Instance.new("TextLabel", frame) valueLabel.Text, valueLabel.Size, valueLabel.Position = tostring(default), UDim2.new(0, 60, 0, 20), UDim2.new(1, -75, 0, 8) valueLabel.BackgroundTransparency, valueLabel.TextColor3, valueLabel.TextSize, valueLabel.Font = 1, UI_CONFIG.Highlight, 14, Enum.Font.BuilderSansBold valueLabel.TextXAlignment = Enum.TextXAlignment.Right ThemeManager.Subscribe(valueLabel, "TextColor3", "Highlight") local track = Instance.new("Frame", frame) track.Name, track.Size, track.Position = "Track", UDim2.new(1, -30, 0, 4), UDim2.new(0, 15, 0, 38) track.BackgroundColor3 = UI_CONFIG.Border Instance.new("UICorner", track).CornerRadius = UDim.new(1, 0) ThemeManager.Subscribe(track, "BackgroundColor3", "Border") local fill = Instance.new("Frame", track) fill.Name, fill.Size, fill.BackgroundColor3 = "Fill", UDim2.new((default - min) / (max - min), 0, 1, 0), UI_CONFIG.Highlight fill.BorderSizePixel = 0 Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0) ThemeManager.Subscribe(fill, "BackgroundColor3", "Highlight") local knob = Instance.new("Frame", track) knob.Name, knob.Size, knob.AnchorPoint = "Knob", UDim2.new(0, 12, 0, 12), Vector2.new(0.5, 0.5) knob.Position = UDim2.new((default - min) / (max - min), 0, 0.5, 0) knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local dragging = false local currentValue = default local ContextActionService = game:GetService("ContextActionService") local function updateSlider(input) local relativeX = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) currentValue = math.floor(min + (max - min) * relativeX) valueLabel.Text = tostring(currentValue) knob.Position = UDim2.new(relativeX, 0, 0.5, 0) fill.Size = UDim2.new(relativeX, 0, 1, 0) fn(currentValue) end local function disableMovement() ContextActionService:BindAction("DisableMovement", function() return Enum.ContextActionResult.Sink end, false, Enum.PlayerActions.CharacterForward, Enum.PlayerActions.CharacterBackward, Enum.PlayerActions.CharacterLeft, Enum.PlayerActions.CharacterRight, Enum.PlayerActions.CharacterJump) end local function enableMovement() ContextActionService:UnbindAction("DisableMovement") end track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true disableMovement() updateSlider(input) end end) track.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false enableMovement() end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateSlider(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if dragging then dragging = false enableMovement() end end end) end function UI.Dropdown(parent, name, options, default, fn) local frame = Instance.new("Frame", parent) frame.Size, frame.BackgroundColor3 = UDim2.new(1, 0, 0, 50), UI_CONFIG.CardBg Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", frame) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local t = Instance.new("TextLabel", frame) t.Text, t.Size, t.Position = name, UDim2.new(0.5, -15, 1, 0), UDim2.new(0, 15, 0, 0) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local dropdown = Instance.new("TextButton", frame) dropdown.Name, dropdown.Text, dropdown.Size, dropdown.Position = "Dropdown", default, UDim2.new(0.5, -15, 0, 30), UDim2.new(0.5, 0, 0.5, -15) dropdown.BackgroundColor3, dropdown.TextColor3, dropdown.Font, dropdown.TextSize = UI_CONFIG.Border, UI_CONFIG.Text, Enum.Font.BuilderSansBold, 13 dropdown.AutoButtonColor = false Instance.new("UICorner", dropdown).CornerRadius = UDim.new(0, 6) ThemeManager.Subscribe(dropdown, "BackgroundColor3", "Border") local arrow = Instance.new("TextLabel", dropdown) arrow.Text, arrow.Size, arrow.Position = "▼", UDim2.new(0, 20, 1, 0), UDim2.new(1, -25, 0, 0) arrow.BackgroundTransparency, arrow.TextColor3, arrow.TextSize, arrow.Font = 1, UI_CONFIG.Muted, 10, Enum.Font.BuilderSansBold arrow.TextXAlignment = Enum.TextXAlignment.Right local menu = Instance.new("Frame", frame) menu.Name, menu.Size, menu.Position, menu.Visible = "Menu", UDim2.new(0.5, -15, 0, #options * 30), UDim2.new(0.5, 0, 1, 5), false menu.BackgroundColor3, menu.BorderSizePixel, menu.ZIndex = UI_CONFIG.CardBg, 0, 10 Instance.new("UICorner", menu).CornerRadius = UDim.new(0, 6) local menuStroke = Instance.new("UIStroke", menu) menuStroke.Color = UI_CONFIG.Border ThemeManager.Subscribe(menuStroke, "Color", "Border") local menuLayout = Instance.new("UIListLayout", menu) menuLayout.SortOrder = Enum.SortOrder.LayoutOrder for _, option in ipairs(options) do local optionBtn = Instance.new("TextButton", menu) optionBtn.Name, optionBtn.Text, optionBtn.Size = option, option, UDim2.new(1, 0, 0, 30) optionBtn.BackgroundColor3, optionBtn.TextColor3, optionBtn.Font, optionBtn.TextSize = UI_CONFIG.CardBg, UI_CONFIG.Text, Enum.Font.BuilderSans, 12 optionBtn.AutoButtonColor = false optionBtn.MouseEnter:Connect(function() optionBtn.BackgroundColor3 = UI_CONFIG.Border end) optionBtn.MouseLeave:Connect(function() optionBtn.BackgroundColor3 = UI_CONFIG.CardBg end) optionBtn.MouseButton1Click:Connect(function() dropdown.Text = option menu.Visible = false fn(option) end) end dropdown.MouseButton1Click:Connect(function() menu.Visible = not menu.Visible end) end function UI.Button(parent, text, fn) local btn = Instance.new("TextButton", parent) btn.Name, btn.Text, btn.Size = text, text, UDim2.new(1, 0, 0, 40) btn.BackgroundColor3, btn.TextColor3, btn.Font, btn.TextSize = UI_CONFIG.Border, UI_CONFIG.Text, Enum.Font.BuilderSansBold, 14 btn.AutoButtonColor = false Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) ThemeManager.Subscribe(btn, "BackgroundColor3", "Border") btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = UI_CONFIG.Highlight}):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = UI_CONFIG.Border}):Play() end) btn.MouseButton1Click:Connect(fn) end function UI.Category(parent, name, fn) local btn = Instance.new("TextButton", parent) btn.Name, btn.Text, btn.Size = name, "", UDim2.new(1, 0, 0, 50) btn.BackgroundColor3 = UI_CONFIG.CardBg btn.AutoButtonColor = false Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", btn) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local t = Instance.new("TextLabel", btn) t.Text, t.Size, t.Position = name, UDim2.new(1, -60, 1, 0), UDim2.new(0, 15, 0, 0) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local arrow = Instance.new("TextLabel", btn) arrow.Text, arrow.Size, arrow.Position = "→", UDim2.new(0, 30, 1, 0), UDim2.new(1, -40, 0, 0) arrow.BackgroundTransparency, arrow.TextColor3, arrow.TextSize, arrow.Font = 1, UI_CONFIG.Muted, 18, Enum.Font.BuilderSansBold arrow.TextXAlignment = Enum.TextXAlignment.Right btn.MouseEnter:Connect(function() TweenService:Create(stroke, TweenInfo.new(0.2), {Color = UI_CONFIG.Highlight}):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(stroke, TweenInfo.new(0.2), {Color = UI_CONFIG.Border}):Play() end) btn.MouseButton1Click:Connect(fn) end function UI.Command(parent, name, desc, fn) local frame = Instance.new("Frame", parent) frame.Size, frame.BackgroundColor3 = UDim2.new(1, 0, 0, 50), UI_CONFIG.CardBg Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", frame) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local t = Instance.new("TextLabel", frame) t.Text, t.Size, t.Position = name, UDim2.new(1, -120, 0, 20), UDim2.new(0, 15, 0, 8) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local d = Instance.new("TextLabel", frame) d.Text, d.Size, d.Position = desc, UDim2.new(1, -120, 0, 15), UDim2.new(0, 15, 0, 26) d.BackgroundTransparency, d.TextColor3, d.TextSize, d.Font = 1, UI_CONFIG.Muted, 12, Enum.Font.BuilderSans d.TextXAlignment = Enum.TextXAlignment.Left local run = Instance.new("TextButton", frame) run.Text, run.Size, run.Position = "Run", UDim2.new(0, 80, 0, 30), UDim2.new(1, -95, 0.5, -15) run.BackgroundColor3, run.TextColor3, run.Font, run.TextSize = UI_CONFIG.Border, UI_CONFIG.Text, Enum.Font.BuilderSansBold, 13 ThemeManager.Subscribe(run, "BackgroundColor3", "Border") Instance.new("UICorner", run).CornerRadius = UDim.new(0, 6) run.MouseButton1Click:Connect(fn) end -- [ Layouts ] -- local cmdScroll = Instance.new("ScrollingFrame", cmdPage) cmdScroll.Size, cmdScroll.Position = UDim2.new(1, -40, 1, -40), UDim2.new(0, 20, 0, 20) cmdScroll.BackgroundTransparency, cmdScroll.BorderSizePixel, cmdScroll.ScrollBarThickness = 1, 0, 0 local cmdLayout = Instance.new("UIListLayout", cmdScroll) cmdLayout.Padding, cmdLayout.SortOrder = UDim.new(0, 8), Enum.SortOrder.LayoutOrder UI.Command(cmdScroll, "Fly", "Smooth flight mechanics", function() EXE.Fly() end) UI.Command(cmdScroll, "Speed", "Modify movement velocity", function() EXE.Speed(50) end) UI.Command(cmdScroll, "JumpPower", "Adjust jump height", function() EXE.Jump(100) end) UI.Command(cmdScroll, "Noclip", "Disable collision physics", function() EXE.Noclip() end) UI.Command(cmdScroll, "Reset", "Restore character state", function() Player.Character:BreakJoints() end) UI.Command(cmdScroll, "Music Player", "Play audio via ID", function() EXE.PlayMusic(1837834515) end) UI.Command(cmdScroll, "Grab Tool", "Attempts to find and give a tool", function() EXE.GiveTool("Sword") end) UI.Command(cmdScroll, "Fling", "Tool-based fling (equip tool first)", function() NotificationSystem.Show("Info", "Equip tool, then: " .. STATES.CommandPrefix .. "fling ") end) UI.Command(cmdScroll, "Kill", "Eliminate player with tool (needs tool)", function() NotificationSystem.Show("Info", "Have tool, then: " .. STATES.CommandPrefix .. "kill ") end) -- Settings Navigation local breadcrumb = Instance.new("Frame", setPage) breadcrumb.Name, breadcrumb.Size, breadcrumb.Position = "Breadcrumb", UDim2.new(1, -40, 0, 30), UDim2.new(0, 20, 0, 15) breadcrumb.BackgroundTransparency = 1 local bLayout = Instance.new("UIListLayout", breadcrumb) bLayout.FillDirection, bLayout.SortOrder, bLayout.Padding = Enum.FillDirection.Horizontal, Enum.SortOrder.LayoutOrder, UDim.new(0, 8) bLayout.VerticalAlignment = Enum.VerticalAlignment.Center local setViews = Instance.new("Frame", setPage) setViews.Size, setViews.Position, setViews.BackgroundTransparency = UDim2.new(1, 0, 1, -45), UDim2.new(0, 0, 0, 45), 1 local currentView = nil local history = {} local function switchView(name, frame) if currentView then currentView.Visible = false end currentView = frame currentView.Visible = true for _, v in pairs(breadcrumb:GetChildren()) do if v:IsA("GuiObject") then v:Destroy() end end table.insert(history, {Name = name, View = frame}) for i, h in ipairs(history) do local isActive = (i == #history) local btn = Instance.new("TextButton", breadcrumb) btn.Text, btn.Size, btn.BackgroundTransparency = h.Name, UDim2.new(0, 0, 1, 0), 1 btn.TextColor3, btn.TextSize, btn.Font = isActive and UI_CONFIG.Text or UI_CONFIG.Muted, 13, Enum.Font.BuilderSansBold btn.AutomaticSize = Enum.AutomaticSize.X if not isActive then btn.MouseButton1Click:Connect(function() for j = #history, i + 1, -1 do table.remove(history, j) end local last = history[#history] table.remove(history, #history) switchView(last.Name, last.View) end) local sep = Instance.new("TextLabel", breadcrumb) sep.Text, sep.Size, sep.TextColor3, sep.BackgroundTransparency = ">", UDim2.new(0, 10, 1, 0), UI_CONFIG.Muted, 1 end end end local function createView(name) local sc = Instance.new("ScrollingFrame", setViews) sc.Name, sc.Size, sc.Position, sc.Visible = name, UDim2.new(1, -40, 1, -20), UDim2.new(0, 20, 0, 0), false sc.BackgroundTransparency, sc.BorderSizePixel, sc.ScrollBarThickness = 1, 0, 0 local ly = Instance.new("UIListLayout", sc) ly.Padding, ly.SortOrder = UDim.new(0, 8), Enum.SortOrder.LayoutOrder return sc end local mainSet = createView("Settings") local appSet = createView("Appearance") local notSet = createView("Notifications") local advSet = createView("Advanced") local ctrlSet = createView("Controls") local perfSet = createView("Performance") local audioSet = createView("Audio") local privSet = createView("Privacy & Safety") local accSet = createView("Accessibility") local lanSet = createView("Language & Region") -- Populate Settings UI.Category(mainSet, "Appearance", function() switchView("Appearance", appSet) end) UI.Category(mainSet, "Accessibility", function() switchView("Accessibility", accSet) end) UI.Category(mainSet, "Advanced", function() switchView("Advanced", advSet) end) UI.Header(appSet, "Display") UI.Slider(appSet, "UI Scale", 50, 200, 100, function(val) STATES.Settings.Appearance.UIScale = val / 100 main.Size = UDim2.new(0, 567 * (val / 100), 0, 331 * (val / 100)) end) UI.Slider(appSet, "Font Size", 10, 20, 14, function(val) STATES.Settings.Appearance.FontSize = val NotificationSystem.Show("Appearance", "Font size: " .. val .. " (requires reload)") end) UI.Slider(appSet, "Blur Strength", 0, 10, 0, function(val) STATES.Settings.Appearance.BlurStrength = val local blur = main:FindFirstChild("BlurEffect") or Instance.new("BlurEffect", main) blur.Size = val end) UI.Slider(appSet, "Transparency", 0, 100, 0, function(val) STATES.Settings.Appearance.Transparency = val main.BackgroundTransparency = val / 100 end) UI.Header(appSet, "Behavior") UI.Toggle(appSet, "Animations", true, function(val) STATES.Settings.Appearance.AnimationsEnabled = val end) UI.Header(appSet, "Theme") local themeList = createView("ThemeSelector") UI.Category(appSet, "Select Theme", function() switchView("Theme", themeList) end) local currentTheme = "Neutral" local function refreshThemes() for _, v in pairs(themeList:GetChildren()) do if v:IsA("GuiObject") then v:Destroy() end end local ly = Instance.new("UIListLayout", themeList) ly.Padding, ly.SortOrder = UDim.new(0, 5), Enum.SortOrder.Name for name, color in pairs(THEMES) do UI.ThemeOption(themeList, name, color, currentTheme == name, function() currentTheme = name ThemeManager.Update("Highlight", color) refreshThemes() NotificationSystem.Show("Theme", "Applied " .. name .. " theme") end) end end refreshThemes() UI.Header(notSet, "Status") UI.ProgressBar(notSet, "Memory Usage") UI.ProgressBar(notSet, "Network Latency") UI.Header(lanSet, "Localization") UI.Category(lanSet, "System Language", function() NotificationSystem.Show("Info", "Switching to Roblox System Defaults") end) -- Notifications Settings UI.Header(notSet, "Notifications") UI.Slider(notSet, "Alert Duration", 2, 10, 4, function(val) STATES.Settings.Notifications.Duration = val NotificationSystem.Show("Settings", "Notification duration: " .. val .. "s") end) UI.Toggle(notSet, "Sound Enabled", true, function(val) STATES.Settings.Notifications.SoundEnabled = val end) UI.Dropdown(notSet, "Position", {"BottomRight", "BottomLeft", "TopRight", "TopLeft"}, "BottomRight", function(val) STATES.Settings.Notifications.Position = val NotificationSystem.Show("Settings", "Position: " .. val) end) UI.Dropdown(notSet, "Severity Filter", {"All", "Warnings", "Errors"}, "All", function(val) STATES.Settings.Notifications.SeverityFilter = val end) UI.Header(notSet, "Status") UI.ProgressBar(notSet, "Memory Usage") UI.ProgressBar(notSet, "Network Latency") -- Controls Settings UI.Header(ctrlSet, "Movement") UI.Slider(ctrlSet, "Fly Speed", 10, 200, 50, function(val) STATES.Settings.Controls.FlySpeed = val STATES.Fly.Speed = val end) UI.Slider(ctrlSet, "Sensitivity", 10, 300, 100, function(val) STATES.Settings.Controls.Sensitivity = val / 100 end) UI.Header(ctrlSet, "Keybinds") UI.Category(ctrlSet, "Toggle Hub: RightControl", function() NotificationSystem.Show("Info", "Keybind remapping coming soon") end) -- Performance Settings UI.Header(perfSet, "Graphics") UI.Slider(perfSet, "FPS Limit", 30, 144, 60, function(val) STATES.Settings.Performance.FPSLimit = val NotificationSystem.Show("Performance", "FPS limited to " .. val) end) UI.Slider(perfSet, "Render Distance", 100, 2000, 1000, function(val) STATES.Settings.Performance.RenderDistance = val end) UI.Toggle(perfSet, "Particles Enabled", true, function(val) STATES.Settings.Performance.ParticlesEnabled = val end) UI.Toggle(perfSet, "Low Graphics Mode", false, function(val) STATES.Settings.Performance.LowGraphicsMode = val if val then Lighting.GlobalShadows = false Lighting.FogEnd = 500 else Lighting.GlobalShadows = true Lighting.FogEnd = 100000 end end) -- Audio Settings UI.Header(audioSet, "Volume") UI.Slider(audioSet, "Master Volume", 0, 100, 50, function(val) STATES.Settings.Audio.MasterVolume = val / 100 game:GetService("SoundService").Volume = val / 100 end) UI.Slider(audioSet, "Music Volume", 0, 100, 50, function(val) STATES.Settings.Audio.MusicVolume = val / 100 end) UI.Toggle(audioSet, "Mute All", false, function(val) STATES.Settings.Audio.Muted = val game:GetService("SoundService").Volume = val and 0 or STATES.Settings.Audio.MasterVolume end) -- Privacy Settings UI.Header(privSet, "Visibility") UI.Toggle(privSet, "Chat Visible", true, function(val) STATES.Settings.Privacy.ChatVisible = val local chat = PlayerGui:FindFirstChild("Chat") if chat then chat.Enabled = val end end) UI.Toggle(privSet, "Join/Leave Alerts", true, function(val) STATES.Settings.Privacy.JoinLeaveAlerts = val end) UI.Toggle(privSet, "Screenshot Watermark", false, function(val) STATES.Settings.Privacy.ScreenshotWatermark = val end) -- Accessibility Settings UI.Header(accSet, "Motion") UI.Toggle(accSet, "Reduced Motion", false, function(val) STATES.Settings.Accessibility.ReducedMotion = val NotificationSystem.Show("Accessibility", "Reduced motion: " .. (val and "ON" or "OFF")) end) UI.Header(accSet, "Visual") UI.Toggle(accSet, "High Contrast", false, function(val) STATES.Settings.Accessibility.HighContrast = val if val then UI_CONFIG.Border = Color3.fromRGB(255, 255, 255) ThemeManager.Update("Border", UI_CONFIG.Border) else UI_CONFIG.Border = Color3.fromRGB(32, 32, 32) ThemeManager.Update("Border", UI_CONFIG.Border) end end) -- Advanced Settings UI.Header(advSet, "Developer") UI.Toggle(advSet, "Debug Mode", false, function(val) STATES.Settings.Advanced.DebugMode = val NotificationSystem.Show("Advanced", "Debug mode: " .. (val and "ON" or "OFF")) end) UI.Toggle(advSet, "Experimental Features", false, function(val) STATES.Settings.Advanced.ExperimentalFeatures = val end) UI.Header(advSet, "Commands") function UI.TextInput(parent, name, default, fn) local frame = Instance.new("Frame", parent) frame.Size, frame.BackgroundColor3 = UDim2.new(1, 0, 0, 50), UI_CONFIG.CardBg Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", frame) stroke.Color, stroke.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(stroke, "Color", "Border") local t = Instance.new("TextLabel", frame) t.Text, t.Size, t.Position = name, UDim2.new(0.4, -15, 1, 0), UDim2.new(0, 15, 0, 0) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 14, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local input = Instance.new("TextBox", frame) input.Name, input.Text, input.Size, input.Position = "Input", default, UDim2.new(0.6, -30, 0, 30), UDim2.new(0.4, 0, 0.5, -15) input.BackgroundColor3, input.TextColor3, input.Font, input.TextSize = UI_CONFIG.Border, UI_CONFIG.Text, Enum.Font.BuilderSansBold, 13 input.PlaceholderText = default Instance.new("UICorner", input).CornerRadius = UDim.new(0, 6) ThemeManager.Subscribe(input, "BackgroundColor3", "Border") input.FocusLost:Connect(function(enterPressed) if enterPressed and input.Text ~= "" then fn(input.Text) end end) end UI.TextInput(advSet, "Command Prefix", STATES.CommandPrefix, function(val) STATES.CommandPrefix = val STATES.Settings.Advanced.CommandPrefix = val NotificationSystem.Show("Advanced", "Command prefix set to: " .. val) end) UI.Header(advSet, "Actions") UI.Button(advSet, "Reload UI", function() NotificationSystem.Show("Advanced", "Reloading UI...") task.wait(0.5) screen:Destroy() createHub() end) UI.Button(advSet, "Reset All Settings", function() NotificationSystem.Show("Advanced", "Settings reset to defaults") STATES.Settings.Appearance.UIScale = 1.0 STATES.Settings.Appearance.FontSize = 14 STATES.Settings.Appearance.BlurStrength = 0 STATES.Settings.Appearance.Transparency = 0 STATES.CommandPrefix = "ob/" STATES.Settings.Advanced.CommandPrefix = "ob/" end) switchView("Settings", mainSet) -- Home Tab Profile local pArea = Instance.new("Frame", home) pArea.Size, pArea.Position, pArea.BackgroundTransparency = UDim2.new(1, 0, 0, 90), UDim2.new(0, 0, 0, 20), 1 local pImg = Instance.new("ImageLabel", pArea) pImg.Size, pImg.Position = UDim2.new(0, 48, 0, 48), UDim2.new(0.5, -24, 0, 0) pImg.BackgroundTransparency, pImg.Image = 1, "https://www.roblox.com/headshot-thumbnail/image?userId=" .. Player.UserId .. "&width=150&height=150&format=png" Instance.new("UICorner", pImg).CornerRadius = UDim.new(1, 0) local pName = Instance.new("TextLabel", pArea) pName.Text, pName.Size, pName.Position = Player.DisplayName, UDim2.new(1, 0, 0, 20), UDim2.new(0, 0, 0, 55) pName.BackgroundTransparency, pName.TextColor3, pName.TextSize, pName.Font = 1, UI_CONFIG.Text, 15, Enum.Font.BuilderSansBold local function createCard(parent, cardTitle, cardSub, pos, size) local c = Instance.new("Frame", parent) c.Name, c.Size, c.Position, c.BackgroundColor3 = "Card", size, pos, UI_CONFIG.CardBg Instance.new("UICorner", c).CornerRadius = UDim.new(0, 10) local s = Instance.new("UIStroke", c); s.Color, s.Thickness = UI_CONFIG.Border, 1 ThemeManager.Subscribe(s, "Color", "Border") local h = Instance.new("Frame", c) h.Name, h.Size, h.BackgroundTransparency = "Header", UDim2.new(1, 0, 0, 68), 1 local t = Instance.new("TextLabel", h) t.Text, t.Size, t.Position = cardTitle, UDim2.new(1, -36, 0, 22), UDim2.new(0, 18, 0, 15) t.BackgroundTransparency, t.TextColor3, t.TextSize, t.Font = 1, UI_CONFIG.Text, 16, Enum.Font.BuilderSansBold t.TextXAlignment = Enum.TextXAlignment.Left local st = Instance.new("TextLabel", h) st.Text, st.Size, st.Position = cardSub, UDim2.new(1, -36, 0, 18), UDim2.new(0, 18, 0, 37) st.BackgroundTransparency, st.TextColor3, st.TextSize, st.Font = 1, UI_CONFIG.Muted, 13, Enum.Font.BuilderSans st.TextXAlignment = Enum.TextXAlignment.Left local l = Instance.new("Frame", h) l.Size, l.Position, l.BackgroundColor3 = UDim2.new(1, 0, 0, 1), UDim2.new(0, 0, 1, 0), UI_CONFIG.Border l.BorderSizePixel = 0 ThemeManager.Subscribe(l, "BackgroundColor3", "Border") local b = Instance.new("Frame", c) b.Name, b.Size, b.Position, b.BackgroundTransparency = "Body", UDim2.new(1, 0, 1, -68), UDim2.new(0, 0, 0, 68), 1 return b end local sBody = createCard(home, "Server Statistics", "Live data for the current instance.", UDim2.new(0, 25, 0, 115), UDim2.new(1, -50, 0, 150)) local function addRow(parent, rowName, rowVal, pos) local r = Instance.new("Frame", parent) r.Size, r.Position, r.BackgroundTransparency = UDim2.new(1, -36, 0, 28), pos, 1 local lt = Instance.new("TextLabel", r) lt.Text, lt.Size = rowName, UDim2.new(0.5, 0, 1, 0) lt.BackgroundTransparency, lt.TextColor3, lt.TextSize, lt.Font = 1, UI_CONFIG.Text, 12, Enum.Font.BuilderSans lt.TextXAlignment = Enum.TextXAlignment.Left local rt = Instance.new("TextLabel", r) rt.Text, rt.Size, rt.Position = rowVal, UDim2.new(0.5, 0, 1, 0), UDim2.new(0.5, 0, 0, 0) rt.BackgroundTransparency, rt.TextColor3, rt.TextSize, rt.Font = 1, UI_CONFIG.Text, 12, Enum.Font.BuilderSansBold rt.TextXAlignment = Enum.TextXAlignment.Right return rt end local pCount = addRow(sBody, "Players count", #Players:GetPlayers(), UDim2.new(0, 18, 0, 15)) local uTime = addRow(sBody, "Server uptime", "0 minutes", UDim2.new(0, 18, 0, 48)) Players.PlayerAdded:Connect(function() pCount.Text = #Players:GetPlayers() end) Players.PlayerRemoving:Connect(function() pCount.Text = #Players:GetPlayers() end) local function formatTime(seconds) local h = math.floor(seconds / 3600) local m = math.floor((seconds % 3600) / 60) local parts = {} if h > 0 then table.insert(parts, h .. " hour" .. (h ~= 1 and "s" or "")) end if m > 0 then table.insert(parts, m .. " minute" .. (m ~= 1 and "s" or "")) end return #parts > 0 and table.concat(parts, ", ") or "0 minutes" end task.spawn(function() while task.wait(60) do if uTime and uTime.Parent then uTime.Text = formatTime(math.floor(Workspace.DistributedGameTime)) end end end) uTime.Text = formatTime(math.floor(Workspace.DistributedGameTime)) -- Init navItems.Home.Page.Visible = true navItems.Home.Btn.ImageTransparency = 0 UserInputService.InputBegan:Connect(function(input, gpe) if not gpe and input.KeyCode == Enum.KeyCode.RightControl then STATES.HubVisible = not STATES.HubVisible screen.Enabled = STATES.HubVisible end end) end local function boot() ReplicatedFirst:RemoveDefaultLoadingScreen() local screen = Instance.new("ScreenGui", PlayerGui) screen.Name, screen.IgnoreGuiInset, screen.ResetOnSpawn = "OblivionLoad", true, false local box = Instance.new("Frame", screen) box.Size, box.Position, box.AnchorPoint = UDim2.new(0, 360, 0, 180), UDim2.new(0.5, 0, 0.5, 0), Vector2.new(0.5, 0.5) box.BackgroundColor3, box.BackgroundTransparency = Color3.fromRGB(8, 8, 8), 0 Instance.new("UICorner", box).CornerRadius = UDim.new(0, 14) local stroke = Instance.new("UIStroke", box); stroke.Color = UI_CONFIG.Border local lbl = Instance.new("TextLabel", box) lbl.Text, lbl.Size, lbl.Position = "OBLIVION", UDim2.new(1, 0, 0, 50), UDim2.new(0, 0, 0, 50) lbl.BackgroundTransparency, lbl.TextColor3, lbl.TextSize, lbl.Font = 1, UI_CONFIG.Text, 34, Enum.Font.BuilderSansExtraBold local shell = Instance.new("Frame", box) shell.Size, shell.Position, shell.AnchorPoint, shell.BackgroundColor3 = UDim2.new(0, 260, 0, 2), UDim2.new(0.5, 0, 0.8, 0), Vector2.new(0.5, 0.5), UI_CONFIG.Border Instance.new("UICorner", shell).CornerRadius = UDim.new(1, 0) local bar = Instance.new("Frame", shell) bar.Size, bar.BackgroundColor3 = UDim2.new(0, 0, 1, 0), UI_CONFIG.Highlight Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0) task.wait(1) local move = TweenService:Create(bar, TweenInfo.new(2.5, Enum.EasingStyle.Quart), {Size = UDim2.new(1, 0, 1, 0)}) move:Play() move.Completed:Connect(function() task.wait(0.5); screen:Destroy(); createHub() end) end task.spawn(boot)