-- x2b16's Hub - Final Fixed Version (Unview + Styled Search) - April 2026 -- Hotkey: K local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local CoreGui = game:GetService("CoreGui") local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "x2b16sHub" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = CoreGui -- Toggle Button local ToggleButton = Instance.new("TextButton") ToggleButton.Size = UDim2.new(0, 230, 0, 60) ToggleButton.Position = UDim2.new(0.5, -115, 0, 20) ToggleButton.BackgroundColor3 = Color3.fromRGB(20, 50, 160) ToggleButton.Text = "x2b16's Hub ▼" ToggleButton.TextColor3 = Color3.new(1,1,1) ToggleButton.Font = Enum.Font.GothamBlack ToggleButton.TextSize = 22 ToggleButton.BorderSizePixel = 0 ToggleButton.BackgroundTransparency = 0.05 ToggleButton.Parent = ScreenGui local tc = Instance.new("UICorner"); tc.CornerRadius = UDim.new(0,20); tc.Parent = ToggleButton local ts = Instance.new("UIStroke"); ts.Thickness = 3; ts.Color = Color3.fromRGB(80,160,255); ts.Parent = ToggleButton -- Main Frame local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 520, 0, 380) MainFrame.Position = UDim2.new(0.5, -260, 0.5, -190) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) MainFrame.BorderSizePixel = 0 MainFrame.Visible = false MainFrame.Parent = ScreenGui local MainCorner = Instance.new("UICorner"); MainCorner.CornerRadius = UDim.new(0,16); MainCorner.Parent = MainFrame -- Title Bar local TitleBar = Instance.new("Frame") TitleBar.Size = UDim2.new(1,0,0,56) TitleBar.BackgroundColor3 = Color3.fromRGB(28,28,48) TitleBar.BorderSizePixel = 0 TitleBar.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1,-90,1,0) Title.Position = UDim2.new(0,24,0,0) Title.BackgroundTransparency = 1 Title.Text = "x2b16's Hub" Title.TextColor3 = Color3.fromRGB(220,220,255) Title.Font = Enum.Font.GothamBlack Title.TextSize = 23 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TitleBar local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0,56,0,56) CloseBtn.Position = UDim2.new(1,-62,0,0) CloseBtn.BackgroundColor3 = Color3.fromRGB(190,60,60) CloseBtn.Text = "×" CloseBtn.TextColor3 = Color3.new(1,1,1) CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 32 CloseBtn.BorderSizePixel = 0 CloseBtn.Parent = TitleBar local cc = Instance.new("UICorner"); cc.CornerRadius = UDim.new(0,12); cc.Parent = CloseBtn -- Sidebar local Sidebar = Instance.new("Frame") Sidebar.Size = UDim2.new(0, 140, 1, -68) Sidebar.Position = UDim2.new(0, 14, 0, 68) Sidebar.BackgroundColor3 = Color3.fromRGB(20, 20, 30) Sidebar.BorderSizePixel = 0 Sidebar.Parent = MainFrame local sc = Instance.new("UICorner"); sc.CornerRadius = UDim.new(0,12); sc.Parent = Sidebar local SidebarScrolling = Instance.new("ScrollingFrame") SidebarScrolling.Size = UDim2.new(1, -8, 1, -8) SidebarScrolling.Position = UDim2.new(0, 4, 0, 4) SidebarScrolling.BackgroundTransparency = 1 SidebarScrolling.BorderSizePixel = 0 SidebarScrolling.ScrollBarThickness = 6 SidebarScrolling.ScrollBarImageColor3 = Color3.fromRGB(80, 140, 255) SidebarScrolling.VerticalScrollBarInset = Enum.ScrollBarInset.Always SidebarScrolling.CanvasSize = UDim2.new(0, 0, 0, 0) SidebarScrolling.Parent = Sidebar local SidebarLayout = Instance.new("UIListLayout") SidebarLayout.Padding = UDim.new(0, 8) SidebarLayout.SortOrder = Enum.SortOrder.LayoutOrder SidebarLayout.Parent = SidebarScrolling local function makeBtn(text, active) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -12, 0, 50) btn.BackgroundColor3 = active and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) btn.Text = text btn.TextColor3 = Color3.new(1,1,1) btn.Font = Enum.Font.GothamBold btn.TextSize = 20 btn.BorderSizePixel = 0 btn.Parent = SidebarScrolling local c = Instance.new("UICorner"); c.CornerRadius = UDim.new(0,12); c.Parent = btn return btn end local GoToTab = makeBtn("Go To", true) local ESPTab = makeBtn("ESP", false) local ViewTab = makeBtn("View", false) local JumpTab = makeBtn("Jump", false) local SpeedTab = makeBtn("Speed", false) local SpinbotTab = makeBtn("Spinbot", false) SidebarLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() SidebarScrolling.CanvasSize = UDim2.new(0, 0, 0, SidebarLayout.AbsoluteContentSize.Y + 25) end) -- Content Area local ContentArea = Instance.new("Frame") ContentArea.Size = UDim2.new(1, -178, 1, -80) ContentArea.Position = UDim2.new(0, 162, 0, 68) ContentArea.BackgroundColor3 = Color3.fromRGB(20,20,30) ContentArea.BorderSizePixel = 0 ContentArea.Parent = MainFrame local ContentCorner = Instance.new("UICorner"); ContentCorner.CornerRadius = UDim.new(0,12); ContentCorner.Parent = ContentArea local GoToContent = Instance.new("Frame"); GoToContent.Size = UDim2.new(1,0,1,0); GoToContent.BackgroundTransparency = 1; GoToContent.Parent = ContentArea local ESPContent = Instance.new("Frame"); ESPContent.Size = UDim2.new(1,0,1,0); ESPContent.BackgroundTransparency = 1; ESPContent.Visible = false; ESPContent.Parent = ContentArea local ViewContent = Instance.new("Frame"); ViewContent.Size = UDim2.new(1,0,1,0); ViewContent.BackgroundTransparency = 1; ViewContent.Visible = false; ViewContent.Parent = ContentArea local JumpContent = Instance.new("Frame"); JumpContent.Size = UDim2.new(1,0,1,0); JumpContent.BackgroundTransparency = 1; JumpContent.Visible = false; JumpContent.Parent = ContentArea local SpeedContent = Instance.new("Frame"); SpeedContent.Size = UDim2.new(1,0,1,0); SpeedContent.BackgroundTransparency = 1; SpeedContent.Visible = false; SpeedContent.Parent = ContentArea local SpinbotContent = Instance.new("Frame"); SpinbotContent.Size = UDim2.new(1,0,1,0); SpinbotContent.BackgroundTransparency = 1; SpinbotContent.Visible = false; SpinbotContent.Parent = ContentArea local function createScrolling(parent) local s = Instance.new("ScrollingFrame") s.Size = UDim2.new(1,-10,1,-70) s.Position = UDim2.new(0,5,0,62) s.BackgroundTransparency = 1 s.BorderSizePixel = 0 s.ScrollBarThickness = 6 s.ScrollBarImageColor3 = Color3.fromRGB(100,140,255) s.VerticalScrollBarInset = Enum.ScrollBarInset.Always s.CanvasSize = UDim2.new(0,0,0,0) s.Parent = parent local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0,12) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = s return s end local GoToScrolling = createScrolling(GoToContent) local ViewScrolling = createScrolling(ViewContent) -- Styled Search & Unview (same look as player buttons) local function createStyledInput(parent, isButton, placeholderOrText) local obj if isButton then obj = Instance.new("TextButton") obj.Text = placeholderOrText obj.BackgroundColor3 = Color3.fromRGB(190,60,60) else obj = Instance.new("TextBox") obj.PlaceholderText = placeholderOrText obj.Text = "" obj.BackgroundColor3 = Color3.fromRGB(40,40,50) end obj.Size = UDim2.new(0.92, 0, 0, 50) obj.Position = UDim2.new(0.04, 0, 0, 6) obj.TextColor3 = Color3.new(1,1,1) obj.Font = Enum.Font.GothamSemibold obj.TextSize = 19 obj.TextXAlignment = Enum.TextXAlignment.Left obj.BorderSizePixel = 0 obj.Parent = parent local corner = Instance.new("UICorner"); corner.CornerRadius = UDim.new(0,14); corner.Parent = obj local pad = Instance.new("UIPadding"); pad.PaddingLeft = UDim.new(0,30); pad.Parent = obj return obj end local GoToSearch = createStyledInput(GoToContent, false, "Search players...") local ViewSearch = createStyledInput(ViewContent, false, "Search players...") local UnviewButton = createStyledInput(ViewContent, true, " Unview (Stop Spectating)") -- Variables local spectatingPlayer = nil local originalCameraSubject = nil local BoxESPEnabled = false local NameESPEnabled = false local ESPObjects = {} local JumpPower = 50 local InfiniteJumpEnabled = false local WalkSpeedValue = 16 local SpinbotEnabled = false local SpinSpeed = 50 local spinConnection = nil -- ==================== Player List with Search ==================== local function refreshList(scrolling, searchBox, isView) for _, v in ipairs(scrolling:GetChildren()) do if v:IsA("TextButton") and v ~= UnviewButton then v:Destroy() end end local searchText = searchBox.Text:lower() local list = {} for _, plr in Players:GetPlayers() do if plr ~= LocalPlayer and (searchText == "" or plr.Name:lower():find(searchText)) then table.insert(list, plr) end end table.sort(list, function(a,b) return a.Name:lower() < b.Name:lower() end) for _, plr in list do local btn = Instance.new("TextButton") btn.Size = UDim2.new(1,0,0,58) btn.BackgroundColor3 = Color3.fromRGB(45,75,55) btn.Text = " " .. plr.Name btn.TextColor3 = Color3.fromRGB(235,235,255) btn.Font = Enum.Font.GothamSemibold btn.TextSize = 19 btn.TextXAlignment = Enum.TextXAlignment.Left btn.BorderSizePixel = 0 btn.Parent = scrolling local corner = Instance.new("UICorner"); corner.CornerRadius = UDim.new(0,14); corner.Parent = btn local pad = Instance.new("UIPadding"); pad.PaddingLeft = UDim.new(0,30); pad.Parent = btn btn.MouseButton1Click:Connect(function() if isView then local hum = plr.Character and plr.Character:FindFirstChild("Humanoid") if hum then originalCameraSubject = Camera.CameraSubject Camera.CameraSubject = hum Camera.CameraType = Enum.CameraType.Custom spectatingPlayer = plr end else local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local targetRoot = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") if myRoot and targetRoot then myRoot.CFrame = targetRoot.CFrame * CFrame.new(0, 4, 0) end end end) end scrolling.CanvasSize = UDim2.new(0, 0, 0, #list * 72) end -- Live Search GoToSearch:GetPropertyChangedSignal("Text"):Connect(function() if GoToContent.Visible then refreshList(GoToScrolling, GoToSearch, false) end end) ViewSearch:GetPropertyChangedSignal("Text"):Connect(function() if ViewContent.Visible then refreshList(ViewScrolling, ViewSearch, true) end end) -- Fixed Unview Button UnviewButton.MouseButton1Click:Connect(function() if originalCameraSubject then Camera.CameraSubject = originalCameraSubject end Camera.CameraType = Enum.CameraType.Custom spectatingPlayer = nil end) -- ==================== ESP ==================== local function createESP(plr) if ESPObjects[plr] then return end local box = Drawing.new("Square") box.Thickness = 2.5 box.Color = Color3.fromRGB(0,255,100) box.Transparency = 0.85 box.Filled = false box.Visible = false local nameTag = Drawing.new("Text") nameTag.Size = 16 nameTag.Center = true nameTag.Outline = true nameTag.Color = Color3.fromRGB(255,255,100) nameTag.Visible = false ESPObjects[plr] = {Box = box, Name = nameTag} end local function removeESP(plr) if ESPObjects[plr] then ESPObjects[plr].Box:Remove() ESPObjects[plr].Name:Remove() ESPObjects[plr] = nil end end local function updateESP() for plr, data in pairs(ESPObjects) do local char = plr.Character if char and char:FindFirstChild("HumanoidRootPart") then local root = char.HumanoidRootPart local topPos = root.Position + Vector3.new(0, 2.8, 0) local bottomPos = root.Position - Vector3.new(0, 3.2, 0) local top, onTop = Camera:WorldToViewportPoint(topPos) local bottom, onBottom = Camera:WorldToViewportPoint(bottomPos) if onTop and onBottom then local height = math.abs(top.Y - bottom.Y) local width = height * 0.6 data.Box.Visible = BoxESPEnabled if BoxESPEnabled then data.Box.Size = Vector2.new(width, height) data.Box.Position = Vector2.new(top.X - width/2, top.Y) end data.Name.Visible = NameESPEnabled if NameESPEnabled then data.Name.Text = plr.Name data.Name.Position = Vector2.new(top.X, top.Y - 22) end else data.Box.Visible = false data.Name.Visible = false end else data.Box.Visible = false data.Name.Visible = false end end end -- ==================== Speed & Jump ==================== local function applySpeedAndJump(char) if not char then return end local hum = char:FindFirstChild("Humanoid") if hum then hum.WalkSpeed = WalkSpeedValue hum.JumpPower = JumpPower end end -- ==================== Spinbot ==================== local function startSpinbot() if spinConnection then spinConnection:Disconnect() end spinConnection = RunService.RenderStepped:Connect(function() if SpinbotEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local root = LocalPlayer.Character.HumanoidRootPart root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(SpinSpeed / 10), 0) end end) end local function stopSpinbot() if spinConnection then spinConnection:Disconnect() spinConnection = nil end end -- ==================== Tab Elements (Jump, Speed, Spinbot) ==================== local function createTabElements() -- Jump Tab local JumpPowerLabel = Instance.new("TextLabel") JumpPowerLabel.Size = UDim2.new(0.85,0,0,50) JumpPowerLabel.Position = UDim2.new(0.075,0,0,20) JumpPowerLabel.BackgroundTransparency = 1 JumpPowerLabel.Text = "Jump Power: 50" JumpPowerLabel.TextColor3 = Color3.new(1,1,1) JumpPowerLabel.Font = Enum.Font.GothamSemibold JumpPowerLabel.TextSize = 20 JumpPowerLabel.Parent = JumpContent local JumpPowerBox = Instance.new("TextBox") JumpPowerBox.Size = UDim2.new(0.85,0,0,50) JumpPowerBox.Position = UDim2.new(0.075,0,0,80) JumpPowerBox.BackgroundColor3 = Color3.fromRGB(40,40,50) JumpPowerBox.Text = "50" JumpPowerBox.TextColor3 = Color3.new(1,1,1) JumpPowerBox.Font = Enum.Font.GothamBold JumpPowerBox.TextSize = 20 JumpPowerBox.Parent = JumpContent local jpc = Instance.new("UICorner"); jpc.CornerRadius = UDim.new(0,12); jpc.Parent = JumpPowerBox local JumpConfirm = Instance.new("TextButton") JumpConfirm.Size = UDim2.new(0.85,0,0,55) JumpConfirm.Position = UDim2.new(0.075,0,0,150) JumpConfirm.BackgroundColor3 = Color3.fromRGB(45,75,55) JumpConfirm.Text = "Confirm Jump Power" JumpConfirm.TextColor3 = Color3.new(1,1,1) JumpConfirm.Font = Enum.Font.GothamBold JumpConfirm.TextSize = 18 JumpConfirm.Parent = JumpContent local jc = Instance.new("UICorner"); jc.CornerRadius = UDim.new(0,12); jc.Parent = JumpConfirm local InfiniteJumpToggle = Instance.new("TextButton") InfiniteJumpToggle.Size = UDim2.new(0.85,0,0,55) InfiniteJumpToggle.Position = UDim2.new(0.075,0,0,220) InfiniteJumpToggle.BackgroundColor3 = Color3.fromRGB(75,45,45) InfiniteJumpToggle.Text = "Infinite Jump: OFF" InfiniteJumpToggle.TextColor3 = Color3.new(1,1,1) InfiniteJumpToggle.Font = Enum.Font.GothamBold InfiniteJumpToggle.TextSize = 18 InfiniteJumpToggle.Parent = JumpContent local ijtc = Instance.new("UICorner"); ijtc.CornerRadius = UDim.new(0,12); ijtc.Parent = InfiniteJumpToggle -- Speed Tab local SpeedLabel = Instance.new("TextLabel") SpeedLabel.Size = UDim2.new(0.85,0,0,50) SpeedLabel.Position = UDim2.new(0.075,0,0,20) SpeedLabel.BackgroundTransparency = 1 SpeedLabel.Text = "WalkSpeed: 16" SpeedLabel.TextColor3 = Color3.new(1,1,1) SpeedLabel.Font = Enum.Font.GothamSemibold SpeedLabel.TextSize = 20 SpeedLabel.Parent = SpeedContent local SpeedBox = Instance.new("TextBox") SpeedBox.Size = UDim2.new(0.85,0,0,50) SpeedBox.Position = UDim2.new(0.075,0,0,80) SpeedBox.BackgroundColor3 = Color3.fromRGB(40,40,50) SpeedBox.Text = "16" SpeedBox.TextColor3 = Color3.new(1,1,1) SpeedBox.Font = Enum.Font.GothamBold SpeedBox.TextSize = 20 SpeedBox.Parent = SpeedContent local spc = Instance.new("UICorner"); spc.CornerRadius = UDim.new(0,12); spc.Parent = SpeedBox local SpeedConfirm = Instance.new("TextButton") SpeedConfirm.Size = UDim2.new(0.85,0,0,55) SpeedConfirm.Position = UDim2.new(0.075,0,0,150) SpeedConfirm.BackgroundColor3 = Color3.fromRGB(45,75,55) SpeedConfirm.Text = "Confirm WalkSpeed" SpeedConfirm.TextColor3 = Color3.new(1,1,1) SpeedConfirm.Font = Enum.Font.GothamBold SpeedConfirm.TextSize = 18 SpeedConfirm.Parent = SpeedContent local scc = Instance.new("UICorner"); scc.CornerRadius = UDim.new(0,12); scc.Parent = SpeedConfirm -- Spinbot Tab local SpinbotLabel = Instance.new("TextLabel") SpinbotLabel.Size = UDim2.new(0.85,0,0,50) SpinbotLabel.Position = UDim2.new(0.075,0,0,20) SpinbotLabel.BackgroundTransparency = 1 SpinbotLabel.Text = "Spin Speed: 50" SpinbotLabel.TextColor3 = Color3.new(1,1,1) SpinbotLabel.Font = Enum.Font.GothamSemibold SpinbotLabel.TextSize = 20 SpinbotLabel.Parent = SpinbotContent local SpinSpeedBox = Instance.new("TextBox") SpinSpeedBox.Size = UDim2.new(0.85,0,0,50) SpinSpeedBox.Position = UDim2.new(0.075,0,0,80) SpinSpeedBox.BackgroundColor3 = Color3.fromRGB(40,40,50) SpinSpeedBox.Text = "50" SpinSpeedBox.TextColor3 = Color3.new(1,1,1) SpinSpeedBox.Font = Enum.Font.GothamBold SpinSpeedBox.TextSize = 20 SpinSpeedBox.Parent = SpinbotContent local spinbc = Instance.new("UICorner"); spinbc.CornerRadius = UDim.new(0,12); spinbc.Parent = SpinSpeedBox local SpinConfirm = Instance.new("TextButton") SpinConfirm.Size = UDim2.new(0.85,0,0,55) SpinConfirm.Position = UDim2.new(0.075,0,0,150) SpinConfirm.BackgroundColor3 = Color3.fromRGB(45,75,55) SpinConfirm.Text = "Confirm Spin Speed" SpinConfirm.TextColor3 = Color3.new(1,1,1) SpinConfirm.Font = Enum.Font.GothamBold SpinConfirm.TextSize = 18 SpinConfirm.Parent = SpinbotContent local spinc = Instance.new("UICorner"); spinc.CornerRadius = UDim.new(0,12); spinc.Parent = SpinConfirm local SpinbotToggle = Instance.new("TextButton") SpinbotToggle.Size = UDim2.new(0.85,0,0,55) SpinbotToggle.Position = UDim2.new(0.075,0,0,220) SpinbotToggle.BackgroundColor3 = Color3.fromRGB(75,45,45) SpinbotToggle.Text = "Spinbot: OFF" SpinbotToggle.TextColor3 = Color3.new(1,1,1) SpinbotToggle.Font = Enum.Font.GothamBold SpinbotToggle.TextSize = 20 SpinbotToggle.Parent = SpinbotContent local spintc = Instance.new("UICorner"); spintc.CornerRadius = UDim.new(0,12); spintc.Parent = SpinbotToggle -- Connections JumpConfirm.MouseButton1Click:Connect(function() local num = tonumber(JumpPowerBox.Text) if num then JumpPower = math.clamp(num, 1, 1000) JumpPowerBox.Text = tostring(JumpPower) JumpPowerLabel.Text = "Jump Power: " .. JumpPower if LocalPlayer.Character then applySpeedAndJump(LocalPlayer.Character) end end end) InfiniteJumpToggle.MouseButton1Click:Connect(function() InfiniteJumpEnabled = not InfiniteJumpEnabled InfiniteJumpToggle.Text = "Infinite Jump: " .. (InfiniteJumpEnabled and "ON" or "OFF") InfiniteJumpToggle.BackgroundColor3 = InfiniteJumpEnabled and Color3.fromRGB(45,75,55) or Color3.fromRGB(75,45,45) end) SpeedConfirm.MouseButton1Click:Connect(function() local num = tonumber(SpeedBox.Text) if num then WalkSpeedValue = math.clamp(num, 1, 1000) SpeedBox.Text = tostring(WalkSpeedValue) SpeedLabel.Text = "WalkSpeed: " .. WalkSpeedValue if LocalPlayer.Character then applySpeedAndJump(LocalPlayer.Character) end end end) SpinConfirm.MouseButton1Click:Connect(function() local num = tonumber(SpinSpeedBox.Text) if num then SpinSpeed = math.clamp(num, 1, 1000) SpinSpeedBox.Text = tostring(SpinSpeed) SpinbotLabel.Text = "Spin Speed: " .. SpinSpeed end end) SpinbotToggle.MouseButton1Click:Connect(function() SpinbotEnabled = not SpinbotEnabled SpinbotToggle.Text = "Spinbot: " .. (SpinbotEnabled and "ON" or "OFF") SpinbotToggle.BackgroundColor3 = SpinbotEnabled and Color3.fromRGB(45,75,55) or Color3.fromRGB(75,45,45) if SpinbotEnabled then startSpinbot() else stopSpinbot() end end) end createTabElements() -- ==================== Tab Switching ==================== local function switchTab(tab) GoToContent.Visible = tab == "GoTo" ESPContent.Visible = tab == "ESP" ViewContent.Visible = tab == "View" JumpContent.Visible = tab == "Jump" SpeedContent.Visible = tab == "Speed" SpinbotContent.Visible = tab == "Spinbot" GoToTab.BackgroundColor3 = tab == "GoTo" and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) ESPTab.BackgroundColor3 = tab == "ESP" and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) ViewTab.BackgroundColor3 = tab == "View" and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) JumpTab.BackgroundColor3 = tab == "Jump" and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) SpeedTab.BackgroundColor3 = tab == "Speed" and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) SpinbotTab.BackgroundColor3 = tab == "Spinbot" and Color3.fromRGB(45,75,55) or Color3.fromRGB(40,40,50) if tab == "GoTo" then refreshList(GoToScrolling, GoToSearch, false) elseif tab == "View" then refreshList(ViewScrolling, ViewSearch, true) end end GoToTab.MouseButton1Click:Connect(function() switchTab("GoTo") end) ESPTab.MouseButton1Click:Connect(function() switchTab("ESP") end) ViewTab.MouseButton1Click:Connect(function() switchTab("View") end) JumpTab.MouseButton1Click:Connect(function() switchTab("Jump") end) SpeedTab.MouseButton1Click:Connect(function() switchTab("Speed") end) SpinbotTab.MouseButton1Click:Connect(function() switchTab("Spinbot") end) -- ==================== ESP Toggles ==================== local BoxESPToggle = Instance.new("TextButton") BoxESPToggle.Size = UDim2.new(0.85,0,0,60) BoxESPToggle.Position = UDim2.new(0.075,0,0,70) BoxESPToggle.BackgroundColor3 = Color3.fromRGB(75,45,45) BoxESPToggle.Text = "Box ESP: OFF" BoxESPToggle.TextColor3 = Color3.new(1,1,1) BoxESPToggle.Font = Enum.Font.GothamBold BoxESPToggle.TextSize = 20 BoxESPToggle.BorderSizePixel = 0 BoxESPToggle.Parent = ESPContent local bc = Instance.new("UICorner"); bc.CornerRadius = UDim.new(0,12); bc.Parent = BoxESPToggle local NameESPToggle = Instance.new("TextButton") NameESPToggle.Size = UDim2.new(0.85,0,0,60) NameESPToggle.Position = UDim2.new(0.075,0,0,150) NameESPToggle.BackgroundColor3 = Color3.fromRGB(75,45,45) NameESPToggle.Text = "Name ESP: OFF" NameESPToggle.TextColor3 = Color3.new(1,1,1) NameESPToggle.Font = Enum.Font.GothamBold NameESPToggle.TextSize = 20 NameESPToggle.BorderSizePixel = 0 NameESPToggle.Parent = ESPContent local nc = Instance.new("UICorner"); nc.CornerRadius = UDim.new(0,12); nc.Parent = NameESPToggle BoxESPToggle.MouseButton1Click:Connect(function() BoxESPEnabled = not BoxESPEnabled BoxESPToggle.Text = "Box ESP: " .. (BoxESPEnabled and "ON" or "OFF") BoxESPToggle.BackgroundColor3 = BoxESPEnabled and Color3.fromRGB(45,75,55) or Color3.fromRGB(75,45,45) end) NameESPToggle.MouseButton1Click:Connect(function() NameESPEnabled = not NameESPEnabled NameESPToggle.Text = "Name ESP: " .. (NameESPEnabled and "ON" or "OFF") NameESPToggle.BackgroundColor3 = NameESPEnabled and Color3.fromRGB(45,75,55) or Color3.fromRGB(75,45,45) end) -- ==================== Toggle Hub ==================== local function toggleHub() MainFrame.Visible = not MainFrame.Visible ToggleButton.Text = MainFrame.Visible and "x2b16's Hub ▲" or "x2b16's Hub ▼" end ToggleButton.MouseButton1Click:Connect(toggleHub) CloseBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false ToggleButton.Text = "x2b16's Hub ▼" end) UserInputService.InputBegan:Connect(function(i, gp) if gp then return end if i.KeyCode == Enum.KeyCode.K then toggleHub() end end) -- ==================== Events ==================== Players.PlayerAdded:Connect(function(plr) createESP(plr) if GoToContent.Visible then refreshList(GoToScrolling, GoToSearch, false) end if ViewContent.Visible then refreshList(ViewScrolling, ViewSearch, true) end end) Players.PlayerRemoving:Connect(function(plr) removeESP(plr) if GoToContent.Visible then refreshList(GoToScrolling, GoToSearch, false) end if ViewContent.Visible then refreshList(ViewScrolling, ViewSearch, true) end end) LocalPlayer.CharacterAdded:Connect(function(char) task.wait(0.5) applySpeedAndJump(char) end) for _, plr in Players:GetPlayers() do if plr ~= LocalPlayer then createESP(plr) end end RunService.RenderStepped:Connect(updateESP) UserInputService.JumpRequest:Connect(function() if InfiniteJumpEnabled then local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end end) task.spawn(function() switchTab("GoTo") if LocalPlayer.Character then task.wait(1) applySpeedAndJump(LocalPlayer.Character) end end) print("✅ x2b16's Hub Loaded Successfully - Unview fixed + Styled Search/Unview")