-- services local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local BadgeService = game:GetService("BadgeService") local player = Players.LocalPlayer local mouse = player:GetMouse() local char, hum, root local function setupChar(c) char = c hum = c:WaitForChild("Humanoid") root = c:WaitForChild("HumanoidRootPart") end setupChar(player.Character or player.CharacterAdded:Wait()) player.CharacterAdded:Connect(setupChar) -- states local states = { infJump = false, fly = false, noclip = false, esp = false, clickTP = false, npcESP = false, spin = false, speed = false, } -- gui local gui = Instance.new("ScreenGui") gui.Name = "HAXUI (kinda shit)" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local main = Instance.new("Frame", gui) main.Size = UDim2.fromOffset(260, 420) main.Position = UDim2.fromScale(0.4, 0.3) main.BackgroundColor3 = Color3.fromRGB(25, 25, 25) main.Active = true main.Draggable = true Instance.new("UICorner", main).CornerRadius = UDim.new(0, 18) local stroke = Instance.new("UIStroke", main) stroke.Color = Color3.fromRGB(70, 70, 70) local title = Instance.new("TextLabel", main) title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundTransparency = 1 title.Text = "HAXUI (kinda shit)" title.Font = Enum.Font.GothamBold title.TextSize = 18 title.TextColor3 = Color3.fromRGB(230,230,230) local destroyBtn = Instance.new("TextButton", main) destroyBtn.Size = UDim2.fromOffset(30,30) destroyBtn.Position = UDim2.fromOffset(215,5) destroyBtn.Text = "X" destroyBtn.Font = Enum.Font.GothamBold destroyBtn.TextSize = 14 destroyBtn.TextColor3 = Color3.fromRGB(255,120,120) destroyBtn.BackgroundTransparency = 1 -- scrolling list local list = Instance.new("ScrollingFrame", main) list.Position = UDim2.fromOffset(0,45) list.Size = UDim2.new(1,0,1,-45) list.CanvasSize = UDim2.new(0,0,0,0) list.ScrollBarImageTransparency = 0.4 list.BackgroundTransparency = 1 local layout = Instance.new("UIListLayout", list) layout.Padding = UDim.new(0,8) layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() list.CanvasSize = UDim2.fromOffset(0, layout.AbsoluteContentSize.Y + 10) end) local function makeButton(text) local b = Instance.new("TextButton") b.Size = UDim2.new(1,-20,0,34) b.BackgroundColor3 = Color3.fromRGB(38,38,38) b.TextColor3 = Color3.new(1,1,1) b.Font = Enum.Font.Gotham b.TextSize = 14 b.Text = text Instance.new("UICorner", b).CornerRadius = UDim.new(0,10) b.Parent = list return b end -- infinite jump UIS.JumpRequest:Connect(function() if states.infJump then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end) -- fly local bv, bg RunService.RenderStepped:Connect(function() if states.fly then if not bv then bv = Instance.new("BodyVelocity", root) bg = Instance.new("BodyGyro", root) bv.MaxForce = Vector3.new(1e5,1e5,1e5) bg.MaxTorque = Vector3.new(1e5,1e5,1e5) end local move = Vector3.zero local cam = workspace.CurrentCamera if UIS:IsKeyDown(Enum.KeyCode.W) then move += cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then move -= cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then move -= cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then move += cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then move += Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then move -= Vector3.new(0,1,0) end bv.Velocity = move * 60 bg.CFrame = cam.CFrame else if bv then bv:Destroy() bg:Destroy() bv, bg = nil, nil end end end) -- noclip RunService.Stepped:Connect(function() if states.noclip and char then for _,v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end end) -- esp local espCache = {} local function refreshESP() for _,plr in ipairs(Players:GetPlayers()) do if plr ~= player then if states.esp and plr.Character then if not espCache[plr] then local h = Instance.new("Highlight", plr.Character) h.FillColor = Color3.fromRGB(255,80,80) h.OutlineTransparency = 1 espCache[plr] = h end else if espCache[plr] then espCache[plr]:Destroy() espCache[plr] = nil end end end end end Players.PlayerAdded:Connect(refreshESP) Players.PlayerRemoving:Connect(refreshESP) -- click tp mouse.Button1Down:Connect(function() if states.clickTP and mouse.Hit then root.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0,3,0)) end end) -- speed makeButton("SPEED: OFF").MouseButton1Click:Connect(function(btn) states.speed = not states.speed hum.WalkSpeed = states.speed and 32 or 16 btn.Text = "SPEED: "..(states.speed and "ON" or "OFF") end) -- toggles local toggles = { {"INFINITE JUMP", "infJump"}, {"FLY", "fly"}, {"NOCLIP", "noclip"}, {"ESP", "esp"}, {"CLICK TP", "clickTP"}, } for _,t in ipairs(toggles) do local btn = makeButton(t[1]..": OFF") btn.MouseButton1Click:Connect(function() states[t[2]] = not states[t[2]] btn.Text = t[1]..": "..(states[t[2]] and "ON" or "OFF") if t[2] == "esp" then refreshESP() end end) end -- live player list (TP) local playerButtons = {} local function rebuildPlayerList() for _,b in pairs(playerButtons) do b:Destroy() end playerButtons = {} for _,plr in ipairs(Players:GetPlayers()) do if plr ~= player then local b = makeButton("→ "..plr.Name) playerButtons[plr] = b b.MouseButton1Click:Connect(function() if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then root.CFrame = plr.Character.HumanoidRootPart.CFrame * CFrame.new(0,0,-3) end end) end end end Players.PlayerAdded:Connect(rebuildPlayerList) Players.PlayerRemoving:Connect(rebuildPlayerList) makeButton("TP TO PLAYER").MouseButton1Click:Connect(rebuildPlayerList) -- spin makeButton("SPIN: OFF").MouseButton1Click:Connect(function(btn) states.spin = not states.spin btn.Text = "SPIN: "..(states.spin and "ON" or "OFF") end) RunService.RenderStepped:Connect(function(dt) if states.spin then root.CFrame *= CFrame.Angles(0, math.rad(360*dt), 0) end end) destroyBtn.MouseButton1Click:Connect(function() gui:Destroy() end) UIS.InputBegan:Connect(function(i,g) if not g and i.KeyCode == Enum.KeyCode.RightShift then main.Visible = not main.Visible end end) ---------------------------------------------------------------- -- EXTRA TROLL FEATURES + SEARCH BAR (APPEND ONLY) ---------------------------------------------------------------- -- search bar local searchBox = Instance.new("TextBox") searchBox.Size = UDim2.new(1, -20, 0, 32) searchBox.PlaceholderText = "Search feature..." searchBox.Text = "" searchBox.ClearTextOnFocus = false searchBox.Font = Enum.Font.Gotham searchBox.TextSize = 14 searchBox.TextColor3 = Color3.new(1,1,1) searchBox.BackgroundColor3 = Color3.fromRGB(30,30,30) Instance.new("UICorner", searchBox).CornerRadius = UDim.new(0,10) searchBox.Parent = list -- keep track of all buttons for filtering local allButtons = {} -- wrap makeButton to register buttons local oldMakeButton = makeButton function makeButton(text) local b = oldMakeButton(text) allButtons[b] = true return b end -- god this shit code is a mess -- live search filter searchBox:GetPropertyChangedSignal("Text"):Connect(function() local q = searchBox.Text:lower() for b,_ in pairs(allButtons) do b.Visible = (q == "" or b.Text:lower():find(q, 1, true)) end end) ---------------------------------------------------------------- -- TROLL ACTIONS ---------------------------------------------------------------- -- trip yourself makeButton("TRIP YOURSELF").MouseButton1Click:Connect(function() if hum then hum:ChangeState(Enum.HumanoidStateType.FallingDown) end end) -- sit yourself makeButton("SIT YOURSELF").MouseButton1Click:Connect(function() if hum then hum.Sit = true end end) ---------------------------------------------------------------- -- GRAVITY CONTROL ---------------------------------------------------------------- local defaultGravity = workspace.Gravity local gravLabel = makeButton("GRAVITY: "..defaultGravity) gravLabel.Active = false gravLabel.AutoButtonColor = false makeButton("GRAVITY +").MouseButton1Click:Connect(function() workspace.Gravity += 25 gravLabel.Text = "GRAVITY: "..math.floor(workspace.Gravity) end) makeButton("GRAVITY -").MouseButton1Click:Connect(function() workspace.Gravity = math.max(0, workspace.Gravity - 25) gravLabel.Text = "GRAVITY: "..math.floor(workspace.Gravity) end) makeButton("RESET GRAVITY").MouseButton1Click:Connect(function() workspace.Gravity = defaultGravity gravLabel.Text = "GRAVITY: "..defaultGravity end) ---------------------------------------------------------------- -- CLEANUP SAFETY ---------------------------------------------------------------- gui.Destroying:Connect(function() workspace.Gravity = defaultGravity end)