Auto wallhop
Key RequiredUniversal

Auto wallhop

Universal Script2beFairIcantSCRIPT2beFairIcantSCRIPT 91.4K views 1.5K executesUpdated Jul 19, 2025
Unrated
00
Lua Script•88 lines (2403 chars)
-- LocalScript in StarterPlayerScripts

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")

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

local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local hrp = character:WaitForChild("HumanoidRootPart")

-- SETTINGS
local wallCheckDistance = 2
local jumpCooldown = 0.3
local flickAngle = 20 -- degrees left/right
local flickTime = 0.15 -- duration per flick phase

-- STATE
local lastJumpTime = 0
local flicking = false
local autoWallHop = true

-- Raycast config
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Blacklist
rayParams.FilterDescendantsInstances = {character}

-- 🔍 Wall Detection
local function isTouchingWall()
	local origin = hrp.Position
	local directions = {
		hrp.CFrame.LookVector,
		-hrp.CFrame.LookVector,
		hrp.CFrame.RightVector,
		-hrp.CFrame.RightVector
	}
	for _, dir in pairs(directions) do
		local result = Workspace:Raycast(origin, dir * wallCheckDistance, rayParams)
		if result and result.Instance and result.Instance.CanCollide then
			return true
		end
	end
	return false
end

-- 🔄 Character Flick (HRP Rotation)
local function rotateCharacter(offsetYaw)
	local currentPos = hrp.Position
	local currentRot = hrp.Orientation
	local newYaw = currentRot.Y + offsetYaw
	local newCFrame = CFrame.new(currentPos) * CFrame.Angles(0, math.rad(newYaw), 0)

	local tween = TweenService:Create(hrp, TweenInfo.new(flickTime, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
		CFrame = newCFrame
	})
	tween:Play()
	tween.Completed:Wait()
end

-- 🤸 Full Flick Sequence
local function flickCharacter()
	if flicking then return end
	flicking = true

	-- Flick left
	rotateCharacter(-flickAngle)
	-- Flick right
	rotateCharacter(flickAngle * 2)
	-- Return to center
	rotateCharacter(-flickAngle)

	flicking = false
end

-- 🎮 Main Loop
RunService.RenderStepped:Connect(function()
	if not autoWallHop then return end
	if tick() - lastJumpTime < jumpCooldown then return end

	if humanoid:GetState() == Enum.HumanoidStateType.Freefall and isTouchingWall() then
		lastJumpTime = tick()
		flickCharacter()
		humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end)

Features & Information

Jump into a wall and it auto wallhops you (it looks better out of shitft lock) other people can see the flick can also be used to just climb walls

Community Comments (11)

Ts sucks *

pidoras1488pidoras1488Jul 19, 2025

chat gpt

2beFairIcantSCRIPT2beFairIcantSCRIPTJul 19, 2025

I never said this was good

exploitingfemboyexploitingfemboyJul 19, 2025

thanks man, this helped alot for me because im not going to spend an hour on a trick that i probably would never have to do again

2beFairIcantSCRIPT2beFairIcantSCRIPTJul 19, 2025

This is trash so i made a BETTER ONE

hello68shello68sFeb 16, 2026

.

hello68shello68sFeb 16, 2026

play you're one let the man be

heheheh123heheheh123Jul 29, 2026

f

Replying to @heheheh123

@heheheh123 ?

MaksPlaysGamesMaksPlaysGamesSep 28, 2026

its ai

MaksPlaysGamesMaksPlaysGamesSep 28, 2026

like make a normal one

More Scripts for Universal Scripts