Auto Wall Hop
Key RequiredUniversal

Auto Wall Hop

Universal Scriptburgerwithcheeseburgerwithcheese 5.2K views 18K executesUpdated Jan 26, 2026
5.0/ 5(4 votes)
40100% Positive
Lua Script•216 lines (7207 chars)
-- free source idrc edit as much as you want!

local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local selectedColor = nil
local isSelecting = false
local isActive = true
local jumpingEnabled = false
local lastJumpTime = 0 
local JUMP_COOLDOWN = 0.5 
local BASE_JUMP_VELOCITY = 28
local TOP_BOOST_MULTIPLIER = 2

local PlayerGui = Player:WaitForChild("PlayerGui")
local StarterGui = game:WaitForChild("StarterGui")

StarterGui:SetCore("SendNotification", {
    Title = "Notification",
    Text = "Press Q to enable/disable jump.",
    Duration = 5
})

StarterGui:SetCore("SendNotification", {
    Title = "Notification",
    Text = "Press E to enable/disable select part.",
    Duration = 5
})

local ACtable = {
	game:GetService("Players").LocalPlayer.PlayerScripts:FindFirstChild("QuitsAntiCheatChecker"),
	game:GetService("Players").LocalPlayer.PlayerScripts:FindFirstChild("QuitsAntiCheatLocal"),
	game:GetService("StarterPlayer").StarterPlayerScripts:FindFirstChild("QuitsAntiCheatChecker"),
	game:GetService("StarterPlayer").StarterPlayerScripts:FindFirstChild("QuitsAntiCheatLocal"),
}

for _, v in ACtable do
    v:Destroy()
end

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AUTOWALLHOPGUI"
screenGui.ResetOnSpawn = false 
screenGui.Parent = PlayerGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 300, 0, 210)
mainFrame.Position = UDim2.new(0.5, -150, 0.8, -210)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 2
mainFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
mainFrame.Parent = screenGui

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -40, 0, 30)
titleLabel.Position = UDim2.new(0, 10, 0, 5)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "AUTO WALL HOP"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 16
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = mainFrame

local exitButton = Instance.new("TextButton")
exitButton.Size = UDim2.new(0, 25, 0, 25)
exitButton.Position = UDim2.new(1, -30, 0, 5)
exitButton.Text = "X"
exitButton.TextColor3 = Color3.new(1, 1, 1)
exitButton.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
exitButton.Font = Enum.Font.GothamBold
exitButton.TextSize = 14
exitButton.BorderSizePixel = 0
exitButton.Parent = mainFrame

local selectButton = Instance.new("TextButton")
selectButton.Size = UDim2.new(0, 280, 0, 50)
selectButton.Position = UDim2.new(0.5, -140, 0, 55)
selectButton.Text = "Select a Part"
selectButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
selectButton.TextColor3 = Color3.fromRGB(255, 255, 255)
selectButton.Font = Enum.Font.GothamBold
selectButton.TextSize = 18
selectButton.BorderSizePixel = 1
selectButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
selectButton.Parent = mainFrame

local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0, 280, 0, 50)
toggleButton.Position = UDim2.new(0.5, -140, 0, 125)
toggleButton.Text = "Jumping: OFF"
toggleButton.BackgroundColor3 = Color3.fromRGB(80, 40, 40)
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.Font = Enum.Font.GothamBold
toggleButton.TextSize = 18
toggleButton.BorderSizePixel = 1
toggleButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
toggleButton.Parent = mainFrame

local dragging, dragInput, dragStart, startPos
local function update(input)
	local delta = input.Position - dragStart
	mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

mainFrame.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		dragStart = input.Position
		startPos = mainFrame.Position
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then dragging = false end
		end)
	end
end)
mainFrame.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 update(input) end
end)

local function startSelecting()
	if not isActive then return end
	isSelecting = true
	selectButton.Text = "Click a part..."
end

local function toggleJumping()
	jumpingEnabled = not jumpingEnabled
	toggleButton.Text = jumpingEnabled and "Jumping: ON" or "Jumping: OFF"
	toggleButton.BackgroundColor3 = jumpingEnabled and Color3.fromRGB(40, 80, 40) or Color3.fromRGB(80, 40, 40)
end

selectButton.MouseButton1Click:Connect(function()
	startSelecting()
end)

toggleButton.MouseButton1Click:Connect(function()
	toggleJumping()
end)

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	if input.KeyCode == Enum.KeyCode.Q then
		toggleJumping()
	elseif input.KeyCode == Enum.KeyCode.E then
		startSelecting()
	end
end)

Mouse.Button1Down:Connect(function()
	if isSelecting and isActive then
		local target = Mouse.Target
		if target and target:IsA("BasePart") then
			selectedColor = target.Color
			isSelecting = false
			selectButton.Text = "Part's name: " .. target.Name
			selectButton.BackgroundColor3 = selectedColor
			local luminance = (selectedColor.R * 0.299) + (selectedColor.G * 0.587) + (selectedColor.B * 0.114)
			selectButton.TextColor3 = luminance > 0.5 and Color3.new(0,0,0) or Color3.new(1,1,1)
		end
	end
end)

exitButton.MouseButton1Click:Connect(function()
	isActive = false
	screenGui:Destroy()
	script:Destroy()
end)

RunService.Heartbeat:Connect(function()
	if not isActive or not selectedColor or not jumpingEnabled then return end
	
	local character = Player.Character
	if not character then return end
	
	local humanoid = character:FindFirstChildOfClass("Humanoid")
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	
	if humanoid and rootPart and (tick() - lastJumpTime >= JUMP_COOLDOWN) then
		local params = OverlapParams.new()
		params.FilterType = Enum.RaycastFilterType.Exclude
		params.FilterDescendantsInstances = {character}
		
		local bounds = Vector3.new(3, 5, 3) 
		local parts = workspace:GetPartBoundsInBox(rootPart.CFrame, bounds, params)
		
		local targetPart = nil
		for _, part in pairs(parts) do
			if part:IsA("BasePart") and part.Color == selectedColor then
				targetPart = part
				break
			end
		end
		
		if targetPart then
			lastJumpTime = tick()
			
			local jumpVelocity = BASE_JUMP_VELOCITY
			
			local partTopY = targetPart.Position.Y + (targetPart.Size.Y / 2)
			local playerBottomY = rootPart.Position.Y - (rootPart.Size.Y / 2)
			
			if math.abs(playerBottomY - partTopY) < 1.5 or playerBottomY > partTopY then
				jumpVelocity = BASE_JUMP_VELOCITY * TOP_BOOST_MULTIPLIER
			end
			
			rootPart.AssemblyLinearVelocity = Vector3.new(rootPart.AssemblyLinearVelocity.X, jumpVelocity, rootPart.AssemblyLinearVelocity.Z)
			
			humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
		end
	end
end)

Features & Information

Select a Part then auto jump on that part. (INSPIRED: https://scriptblox.com/script/Universal-Script-Wallhop-V4-newupdate-39832)
#ez#hacking#hackers#hacker#gui

Community Comments (2)

SarvarSarvarJan 27, 2026

working! thank you like👍

JaCarter123JaCarter123Jul 16, 2026

Need the key for it

More Scripts for Universal Scripts