-- ================================================ -- x2b16's Troll Hub (v7.7 - FINAL) -- ✅ Go To & Spectate now show "(No Character)" for unloaded players -- ✅ Speed & Jump Power with X buttons and normal defaults -- ✅ Minimize fixed -- Paste ONCE into executor -- ================================================ local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local screenGui = Instance.new("ScreenGui") screenGui.Name = "x2b16sTrollHub" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 640, 0, 480) mainFrame.Position = UDim2.new(0.5, -320, 0.5, -240) mainFrame.BackgroundColor3 = Color3.fromRGB(22, 22, 32) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 14) corner.Parent = mainFrame local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(120, 120, 255) stroke.Thickness = 2.5 stroke.Parent = mainFrame -- Top Bar local topBar = Instance.new("Frame") topBar.Size = UDim2.new(1, 0, 0, 46) topBar.BackgroundColor3 = Color3.fromRGB(12, 12, 28) topBar.Parent = mainFrame local topCorner = Instance.new("UICorner") topCorner.CornerRadius = UDim.new(0, 14) topCorner.Parent = topBar local title = Instance.new("TextLabel") title.Size = UDim2.new(0.7, 0, 1, 0) title.BackgroundTransparency = 1 title.Text = "🔥 x2b16's Troll Hub 🔥" title.TextColor3 = Color3.fromRGB(255, 65, 65) title.TextScaled = true title.Font = Enum.Font.GothamBlack title.Parent = topBar local minBtn = Instance.new("TextButton") minBtn.Size = UDim2.new(0, 115, 0, 30) minBtn.Position = UDim2.new(1, -130, 0.5, -15) minBtn.BackgroundColor3 = Color3.fromRGB(0, 165, 255) minBtn.Text = "MINIMIZE" minBtn.TextColor3 = Color3.new(1,1,1) minBtn.TextScaled = true minBtn.Font = Enum.Font.GothamBold minBtn.Parent = topBar local minCorner = Instance.new("UICorner") minCorner.CornerRadius = UDim.new(0, 9) minCorner.Parent = minBtn -- Scrollable Content local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -28, 1, -88) scroll.Position = UDim2.new(0, 14, 0, 58) scroll.BackgroundTransparency = 1 scroll.ScrollBarThickness = 5 scroll.Parent = mainFrame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 8) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = scroll -- Status local status = Instance.new("TextLabel") status.Size = UDim2.new(1, -20, 0, 30) status.Position = UDim2.new(0, 10, 1, -36) status.BackgroundTransparency = 1 status.Text = "Status: Ready" status.TextColor3 = Color3.fromRGB(170, 170, 255) status.TextScaled = true status.Font = Enum.Font.Gotham status.Parent = mainFrame local function newSection(text) local sec = Instance.new("Frame") sec.Size = UDim2.new(1, 0, 0, 88) sec.BackgroundColor3 = Color3.fromRGB(38, 38, 55) sec.Parent = scroll local c = Instance.new("UICorner"); c.CornerRadius = UDim.new(0, 11); c.Parent = sec local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 32); lbl.BackgroundTransparency = 1; lbl.Text = text lbl.TextColor3 = Color3.fromRGB(255, 215, 80); lbl.TextScaled = true; lbl.Font = Enum.Font.GothamSemibold lbl.Parent = sec return sec end local function newButton(parent, text, color, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.92, 0, 0, 42) btn.Position = UDim2.new(0.04, 0, 0, 38) btn.BackgroundColor3 = color btn.Text = text btn.TextColor3 = Color3.new(1,1,1) btn.TextScaled = true btn.Font = Enum.Font.GothamBold btn.Parent = parent local bc = Instance.new("UICorner"); bc.CornerRadius = UDim.new(0, 10); bc.Parent = btn btn.MouseButton1Click:Connect(function() status.Text = "Opening " .. text .. "..." pcall(callback) task.wait(0.4) status.Text = "✅ " .. text .. " opened" end) end -- 1. Infinite Yield local s1 = newSection("🌟 1. INFINITE YIELD") newButton(s1, "LOAD INFINITE YIELD", Color3.fromRGB(85, 55, 220), function() loadstring(game:HttpGet("https://raw.githubusercontent.com/DarkNetworks/Infinite-Yield/main/latest.lua"))() end) -- 2. Backdoor Executor local s2 = newSection("🔑 2. KEYLESS BACKDOOR EXECUTOR") newButton(s2, "LOAD BACKDOOR EXECUTOR", Color3.fromRGB(220, 20, 20), function() loadstring(game:HttpGet("https://raw.githubusercontent.com/Mcdofries/WORKS/refs/heads/main/1HSHITZWORKS"))() end) -- 3. Spectate (with "No Character" indicator) local s3 = newSection("👁️ 3. SPECTATE PLAYER") newButton(s3, "OPEN SPECTATE", Color3.fromRGB(0, 170, 255), function() local gui = Instance.new("Frame") gui.Size = UDim2.new(0, 300, 0, 300) gui.Position = UDim2.new(0.5, -150, 0.5, -150) gui.BackgroundColor3 = Color3.fromRGB(30, 30, 45) gui.Parent = screenGui local c = Instance.new("UICorner"); c.CornerRadius = UDim.new(0,12); c.Parent = gui local title = Instance.new("TextLabel"); title.Size = UDim2.new(1,0,0,40); title.Text = "Spectate Player"; title.TextColor3 = Color3.fromRGB(255,255,100); title.BackgroundTransparency = 1; title.TextScaled = true; title.Font = Enum.Font.GothamBold; title.Parent = gui local list = Instance.new("ScrollingFrame") list.Size = UDim2.new(1,-20,1,-100); list.Position = UDim2.new(0,10,0,50); list.BackgroundTransparency = 1; list.ScrollBarThickness = 6; list.Parent = gui local ll = Instance.new("UIListLayout"); ll.Padding = UDim.new(0,4); ll.Parent = list local function refresh() for _,v in ipairs(list:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end for _,plr in ipairs(Players:GetPlayers()) do if plr ~= player then local displayName = plr.Name local hasChar = plr.Character and plr.Character:FindFirstChild("Humanoid") if not hasChar then displayName = plr.Name .. " (No Character)" end local b = Instance.new("TextButton") b.Size = UDim2.new(1,0,0,35) b.BackgroundColor3 = hasChar and Color3.fromRGB(50,50,70) or Color3.fromRGB(70,40,40) b.Text = displayName b.TextColor3 = Color3.new(1,1,1) b.Parent = list b.MouseButton1Click:Connect(function() if hasChar then camera.CameraSubject = plr.Character.Humanoid status.Text = "Spectating: " .. plr.Name else status.Text = plr.Name .. " has no character yet" end end) end end list.CanvasSize = UDim2.new(0,0,0,ll.AbsoluteContentSize.Y) end refresh() Players.PlayerAdded:Connect(refresh) Players.PlayerRemoving:Connect(refresh) local stopBtn = Instance.new("TextButton") stopBtn.Size = UDim2.new(1,-20,0,35); stopBtn.Position = UDim2.new(0,10,1,-45) stopBtn.BackgroundColor3 = Color3.fromRGB(100,100,255); stopBtn.Text = "STOP SPECTATING"; stopBtn.TextColor3 = Color3.new(1,1,1); stopBtn.Parent = gui stopBtn.MouseButton1Click:Connect(function() if player.Character and player.Character:FindFirstChild("Humanoid") then camera.CameraSubject = player.Character.Humanoid end status.Text = "Stopped spectating" end) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0,80,0,30); closeBtn.Position = UDim2.new(1,-90,0,5) closeBtn.BackgroundColor3 = Color3.fromRGB(200,50,50); closeBtn.Text = "Close"; closeBtn.TextColor3 = Color3.new(1,1,1); closeBtn.Parent = gui closeBtn.MouseButton1Click:Connect(function() gui:Destroy() end) end) -- 4. Go To (with "No Character" indicator) local s4 = newSection("🚀 4. GO TO PLAYER") newButton(s4, "OPEN GO TO", Color3.fromRGB(255, 140, 0), function() local gui = Instance.new("Frame") gui.Size = UDim2.new(0, 300, 0, 300) gui.Position = UDim2.new(0.5, -150, 0.5, -150) gui.BackgroundColor3 = Color3.fromRGB(30, 30, 45) gui.Parent = screenGui local c = Instance.new("UICorner"); c.CornerRadius = UDim.new(0,12); c.Parent = gui local title = Instance.new("TextLabel"); title.Size = UDim2.new(1,0,0,40); title.Text = "Go To Player"; title.TextColor3 = Color3.fromRGB(255,200,80); title.BackgroundTransparency = 1; title.TextScaled = true; title.Font = Enum.Font.GothamBold; title.Parent = gui local list = Instance.new("ScrollingFrame") list.Size = UDim2.new(1,-20,1,-100); list.Position = UDim2.new(0,10,0,50); list.BackgroundTransparency = 1; list.ScrollBarThickness = 6; list.Parent = gui local ll = Instance.new("UIListLayout"); ll.Padding = UDim.new(0,4); ll.Parent = list local function refresh() for _,v in ipairs(list:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end for _,plr in ipairs(Players:GetPlayers()) do if plr ~= player then local displayName = plr.Name local hasChar = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") if not hasChar then displayName = plr.Name .. " (No Character)" end local b = Instance.new("TextButton") b.Size = UDim2.new(1,0,0,35) b.BackgroundColor3 = hasChar and Color3.fromRGB(50,50,70) or Color3.fromRGB(70,40,40) b.Text = displayName b.TextColor3 = Color3.new(1,1,1) b.Parent = list b.MouseButton1Click:Connect(function() if hasChar and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = plr.Character.HumanoidRootPart.CFrame + Vector3.new(0,5,0) status.Text = "Teleported to " .. plr.Name gui:Destroy() else status.Text = plr.Name .. " has no character yet" end end) end end list.CanvasSize = UDim2.new(0,0,0,ll.AbsoluteContentSize.Y) end refresh() Players.PlayerAdded:Connect(refresh) Players.PlayerRemoving:Connect(refresh) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(1,-20,0,35); closeBtn.Position = UDim2.new(0,10,1,-45) closeBtn.BackgroundColor3 = Color3.fromRGB(200,50,50); closeBtn.Text = "Close"; closeBtn.TextColor3 = Color3.new(1,1,1); closeBtn.Parent = gui closeBtn.MouseButton1Click:Connect(function() gui:Destroy() end) end) -- 5. Speed GUI (with X button + default 16) local s5 = newSection("⚡ 5. ADJUST SPEED") newButton(s5, "OPEN SPEED GUI", Color3.fromRGB(0, 200, 100), function() local g = Instance.new("Frame") g.Size = UDim2.new(0,280,0,160); g.Position = UDim2.new(0.5,-140,0.5,-80); g.BackgroundColor3 = Color3.fromRGB(30,30,45); g.Parent = screenGui local c = Instance.new("UICorner"); c.CornerRadius = UDim.new(0,12); c.Parent = g local t = Instance.new("TextLabel"); t.Size = UDim2.new(1,0,0,40); t.Text = "Set WalkSpeed"; t.TextScaled = true; t.Font = Enum.Font.GothamBold; t.BackgroundTransparency = 1; t.TextColor3 = Color3.fromRGB(100,255,100); t.Parent = g local box = Instance.new("TextBox"); box.Size = UDim2.new(0.8,0,0,35); box.Position = UDim2.new(0.1,0,0,55); box.Text = "16"; box.BackgroundColor3 = Color3.fromRGB(50,50,70); box.TextColor3 = Color3.new(1,1,1); box.Parent = g local apply = Instance.new("TextButton"); apply.Size = UDim2.new(0.8,0,0,35); apply.Position = UDim2.new(0.1,0,0,100); apply.Text = "APPLY"; apply.BackgroundColor3 = Color3.fromRGB(0,180,80); apply.TextColor3 = Color3.new(1,1,1); apply.Parent = g local closeX = Instance.new("TextButton"); closeX.Size = UDim2.new(0,30,0,30); closeX.Position = UDim2.new(1,-35,0,5); closeX.BackgroundColor3 = Color3.fromRGB(200,50,50); closeX.Text = "X"; closeX.TextColor3 = Color3.new(1,1,1); closeX.Parent = g closeX.MouseButton1Click:Connect(function() g:Destroy() end) apply.MouseButton1Click:Connect(function() local n = tonumber(box.Text) if n and player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.WalkSpeed = n status.Text = "Speed set to " .. n end end) end) -- 6. Jump Power GUI (with X button + default 50) local s6 = newSection("🦘 6. ADJUST JUMP POWER") newButton(s6, "OPEN JUMP GUI", Color3.fromRGB(255, 100, 200), function() local g = Instance.new("Frame") g.Size = UDim2.new(0,280,0,160); g.Position = UDim2.new(0.5,-140,0.5,-80); g.BackgroundColor3 = Color3.fromRGB(30,30,45); g.Parent = screenGui local c = Instance.new("UICorner"); c.CornerRadius = UDim.new(0,12); c.Parent = g local t = Instance.new("TextLabel"); t.Size = UDim2.new(1,0,0,40); t.Text = "Set JumpPower"; t.TextScaled = true; t.Font = Enum.Font.GothamBold; t.BackgroundTransparency = 1; t.TextColor3 = Color3.fromRGB(255,180,100); t.Parent = g local box = Instance.new("TextBox"); box.Size = UDim2.new(0.8,0,0,35); box.Position = UDim2.new(0.1,0,0,55); box.Text = "50"; box.BackgroundColor3 = Color3.fromRGB(50,50,70); box.TextColor3 = Color3.new(1,1,1); box.Parent = g local apply = Instance.new("TextButton"); apply.Size = UDim2.new(0.8,0,0,35); apply.Position = UDim2.new(0.1,0,0,100); apply.Text = "APPLY"; apply.BackgroundColor3 = Color3.fromRGB(0,180,80); apply.TextColor3 = Color3.new(1,1,1); apply.Parent = g local closeX = Instance.new("TextButton"); closeX.Size = UDim2.new(0,30,0,30); closeX.Position = UDim2.new(1,-35,0,5); closeX.BackgroundColor3 = Color3.fromRGB(200,50,50); closeX.Text = "X"; closeX.TextColor3 = Color3.new(1,1,1); closeX.Parent = g closeX.MouseButton1Click:Connect(function() g:Destroy() end) apply.MouseButton1Click:Connect(function() local n = tonumber(box.Text) if n and player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.JumpPower = n status.Text = "JumpPower set to " .. n end end) end) -- Auto scroll layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scroll.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 30) end) -- Draggable + Minimize + INSERT (fixed) local dragging, startPos topBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true startPos = input.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - startPos mainFrame.Position = UDim2.new(mainFrame.Position.X.Scale, mainFrame.Position.X.Offset + delta.X, mainFrame.Position.Y.Scale, mainFrame.Position.Y.Offset + delta.Y) startPos = input.Position end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) local minimized = false local originalSize = mainFrame.Size minBtn.MouseButton1Click:Connect(function() minimized = not minimized if minimized then TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {Size = UDim2.new(0,640,0,46)}):Play() minBtn.Text = "EXPAND" scroll.Visible = false status.Visible = false else TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {Size = originalSize}):Play() minBtn.Text = "MINIMIZE" task.wait(0.28) scroll.Visible = true status.Visible = true end end) UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.Insert then mainFrame.Visible = not mainFrame.Visible end end) mainFrame.BackgroundTransparency = 1 TweenService:Create(mainFrame, TweenInfo.new(0.5), {BackgroundTransparency = 0}):Play() print("✅ x2b16's Troll Hub v7.7 - Final Version") status.Text = "Go To & Spectate now show (No Character)"