local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local settings = { active = false, flickActive = true, angle = 90, interval = 0.25, pushForce = 52, jumpPower = 50 } local lastJump = 0 local screenGui = Instance.new("ScreenGui") screenGui.Name = "GlobalWallhopV8" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 210, 0, 320) mainFrame.Position = UDim2.new(0.05, 0, 0.3, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 12) mainFrame.Visible = true -- Starts VISIBLE mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame) local title = Instance.new("TextLabel", mainFrame) title.Size = UDim2.new(1, 0, 0, 35) title.BackgroundColor3 = Color3.fromRGB(45, 45, 50) title.Text = "YOU VS HOMER WALLHOP" title.TextColor3 = Color3.new(1, 1, 1) title.Font = Enum.Font.GothamBold title.TextSize = 12 Instance.new("UICorner", title) local function toggleMenu() mainFrame.Visible = not mainFrame.Visible end UserInputService.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed then if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) and input.KeyCode == Enum.KeyCode.One then toggleMenu() end end end) player.Chatted:Connect(function(msg) if msg == "/p" then toggleMenu() end end) local function createBtn(text, pos, callback, color) local btn = Instance.new("TextButton", mainFrame) btn.Size = UDim2.new(0.9, 0, 0, 35) btn.Position = pos btn.BackgroundColor3 = color or Color3.fromRGB(30, 30, 30) btn.Text = text btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 Instance.new("UICorner", btn) btn.MouseButton1Click:Connect(function() callback(btn) end) return btn end local jpBox = Instance.new("TextBox", mainFrame) jpBox.Size = UDim2.new(0.9, 0, 0, 30) jpBox.Position = UDim2.new(0.05, 0, 0.15, 0) jpBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) jpBox.Text = "JumpPower: 50" jpBox.TextColor3 = Color3.new(1, 1, 1) jpBox.Font = Enum.Font.GothamBold Instance.new("UICorner", jpBox) jpBox.FocusLost:Connect(function(enter) if enter then local num = tonumber(jpBox.Text:match("%d+")) if num then settings.jumpPower = num jpBox.Text = "JumpPower: " .. num end end end) createBtn("WALLHOP: DISABLED", UDim2.new(0.05, 0, 0.3, 0), function(b) settings.active = not settings.active b.Text = settings.active and "WALLHOP: ENABLED" or "WALLHOP: DISABLED" b.BackgroundColor3 = settings.active and Color3.fromRGB(0, 150, 80) or Color3.fromRGB(150, 30, 30) end) createBtn("FLICK (ROTATION): ON", UDim2.new(0.05, 0, 0.45, 0), function(b) settings.flickActive = not settings.flickActive b.Text = settings.flickActive and "FLICK (ROTATION): ON" or "FLICK (ROTATION): OFF" b.BackgroundColor3 = settings.flickActive and Color3.fromRGB(0, 120, 200) or Color3.fromRGB(60, 60, 60) end) createBtn("ANGLE: 90°", UDim2.new(0.05, 0, 0.6, 0), function(b) settings.angle = (settings.angle == 90) and 45 or 90 b.Text = "ANGLE: " .. settings.angle .. "°" end) createBtn("HIDE (CTRL + 1)", UDim2.new(0.05, 0, 0.8, 0), function() mainFrame.Visible = false end, Color3.fromRGB(100, 20, 20)) local function isTouchingWithLegs(char, root) local overlapParams = OverlapParams.new() local ignore = {char} for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then local n = part.Name:lower() if n:find("head") or n:find("torso") or n:find("arm") or n:find("hand") then table.insert(ignore, part) end end end overlapParams.FilterDescendantsInstances = ignore overlapParams.FilterType = Enum.RaycastFilterType.Exclude local hits = workspace:GetPartBoundsInBox(root.CFrame, Vector3.new(3, 4, 3), overlapParams) local distinct = 0 local checked = {} for _, p in pairs(hits) do if p.CanCollide and not checked[p] then checked[p] = true distinct = distinct + 1 end end return distinct >= 2 end RunService.Heartbeat:Connect(function() local char = player.Character local hum = char and char:FindFirstChildOfClass("Humanoid") local root = char and (char:FindFirstChild("HumanoidRootPart") or char.PrimaryPart) if not root or not hum then return end hum.UseJumpPower = true hum.JumpPower = settings.jumpPower if settings.active and hum.Jump == true and tick() - lastJump >= settings.interval then if isTouchingWithLegs(char, root) then lastJump = tick() root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, settings.pushForce, root.AssemblyLinearVelocity.Z) if settings.flickActive then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(settings.angle), 0) end end end end)