Wallhop GUI by humpdumpcool
Key RequiredUniversal

Wallhop GUI by humpdumpcool

Universal ScriptBublepBublep 2.4K views 511 executesUpdated Feb 2, 2026
Unrated
00
Lua Script•154 lines (4679 chars)
-- AUTO WALLHOP | single LocalScript

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")

local player = Players.LocalPlayer
local cam = workspace.CurrentCamera

local char = player.Character or player.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")

-- ================= SPLASH =================
local splashGui = Instance.new("ScreenGui", player.PlayerGui)
splashGui.IgnoreGuiInset = true
splashGui.ResetOnSpawn = false

local splash = Instance.new("Frame", splashGui)
splash.Size = UDim2.fromOffset(280,180)
splash.AnchorPoint = Vector2.new(0.5,0.5)
splash.Position = UDim2.fromScale(0.5,0.5)
splash.BackgroundColor3 = Color3.fromRGB(25,25,25)
splash.BorderSizePixel = 0
Instance.new("UICorner", splash).CornerRadius = UDim.new(0,22)

local splashText = Instance.new("TextLabel", splash)
splashText.Size = UDim2.new(1,-20,0,50)
splashText.Position = UDim2.fromOffset(10,10)
splashText.BackgroundTransparency = 1
splashText.Text = "Script made by"
splashText.TextColor3 = Color3.new(1,1,1)
splashText.Font = Enum.Font.GothamBold
splashText.TextScaled = true

local splashImg = Instance.new("ImageLabel", splash)
splashImg.Size = UDim2.new(1,-40,1,-80)
splashImg.Position = UDim2.fromOffset(20,60)
splashImg.BackgroundTransparency = 1
splashImg.Image = "rbxassetid://94103216875487"
splashImg.ScaleType = Enum.ScaleType.Fit

task.delay(5,function()
	splashGui:Destroy()
end)

-- ================= GUI =================
local gui = Instance.new("ScreenGui", player.PlayerGui)
gui.ResetOnSpawn = false

local circle = Instance.new("TextButton", gui)
circle.Size = UDim2.fromOffset(60,60)
circle.Position = UDim2.fromScale(0.05,0.5)
circle.Text = "wallhop"
circle.BackgroundColor3 = Color3.fromRGB(20,20,20)
circle.TextColor3 = Color3.new(1,1,1)
circle.BorderSizePixel = 0
Instance.new("UICorner", circle).CornerRadius = UDim.new(1,0)

local panel = Instance.new("Frame", gui)
panel.Size = UDim2.fromOffset(220,140)
panel.Position = UDim2.fromScale(0.75,0.3)
panel.BackgroundColor3 = Color3.fromRGB(30,30,30)
panel.BackgroundTransparency = 0.3
panel.Visible = false
Instance.new("UICorner", panel).CornerRadius = UDim.new(0,12)

local close = Instance.new("TextButton", panel)
close.Size = UDim2.fromOffset(24,24)
close.Position = UDim2.fromOffset(8,8)
close.Text = "X"
close.TextColor3 = Color3.new(1,1,1)
close.BackgroundTransparency = 1

local toggle = Instance.new("TextButton", panel)
toggle.Size = UDim2.fromOffset(120,40)
toggle.Position = UDim2.fromScale(0.5,0.6)
toggle.AnchorPoint = Vector2.new(0.5,0.5)
toggle.Text = "MODE: 0"
toggle.BackgroundColor3 = Color3.fromRGB(60,60,60)
toggle.TextColor3 = Color3.new(1,1,1)
Instance.new("UICorner", toggle).CornerRadius = UDim.new(0,8)

-- drag
local function drag(ui)
	local d,s,p
	ui.InputBegan:Connect(function(i)
		if i.UserInputType==Enum.UserInputType.MouseButton1 then
			d=true s=i.Position p=ui.Position
		end
	end)
	ui.InputEnded:Connect(function(i)
		if i.UserInputType==Enum.UserInputType.MouseButton1 then d=false end
	end)
	UIS.InputChanged:Connect(function(i)
		if d and i.UserInputType==Enum.UserInputType.MouseMovement then
			local delta=i.Position-s
			ui.Position=UDim2.new(p.X.Scale,p.X.Offset+delta.X,p.Y.Scale,p.Y.Offset+delta.Y)
		end
	end)
end

drag(circle)
drag(panel)

circle.MouseButton1Click:Connect(function()
	circle.Visible=false
	panel.Visible=true
end)

close.MouseButton1Click:Connect(function()
	panel.Visible=false
	circle.Visible=true
end)

local mode=0
toggle.MouseButton1Click:Connect(function()
	mode=1-mode
	toggle.Text="MODE: "..mode
end)

-- ================= WALLHOP =================
local params = RaycastParams.new()
params.FilterDescendantsInstances = {char}
params.FilterType = Enum.RaycastFilterType.Blacklist

local cooldown=0

RunService.RenderStepped:Connect(function()
	if mode~=1 then return end
	if hum:GetState()~=Enum.HumanoidStateType.Freefall then return end
	if tick()<cooldown then return end

	local origin = root.Position + Vector3.new(0,-1,0)
	local dir = root.CFrame.LookVector * 2.5
	local hit = workspace:Raycast(origin,dir,params)

	if hit and hit.Instance.CanCollide then
		cooldown = tick()+0.25

		hum:ChangeState(Enum.HumanoidStateType.Jumping)

		-- wallhop turn (-90)
		root.CFrame = root.CFrame * CFrame.Angles(0,math.rad(-90),0)

		-- face camera while falling
		task.delay(0.12,function()
			if hum:GetState()==Enum.HumanoidStateType.Freefall then
				local look=cam.CFrame.LookVector
				root.CFrame=CFrame.new(root.Position,root.Position+Vector3.new(look.X,0,look.Z))
			end
		end)
	end
end)

Features & Information

An script that wallhops for you!. No keys needed.
#Wallhop#Nokey#Free#Universal#No key

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts