
Keyless VerifiedUniversal

local player = game.Players.LocalPlayer
local uis = game:GetService("UserInputService")
local camera = workspace.CurrentCamera
local runService = game:GetService("RunService")
-- Wait for character
local function getCharacter()
local char = player.Character or player.CharacterAdded:Wait()
return char, char:WaitForChild("Humanoid"), char:WaitForChild("HumanoidRootPart")
end
-- GUI setup
local gui = Instance.new("ScreenGui", game.CoreGui)
gui.Name = "WallhopGUI"
local label = Instance.new("TextLabel", gui)
label.Size = UDim2.new(0, 200, 0, 40)
label.Position = UDim2.new(0, 20, 0, 100)
label.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
label.TextColor3 = Color3.new(1, 1, 1)
label.TextScaled = true
label.BorderSizePixel = 1
label.Font = Enum.Font.SourceSansBold
label.Text = "Press H to Wallhop"
-- Flicking the camera up then resetting it instantly
local function flickCamera()
local original = camera.CFrame
camera.CFrame = camera.CFrame * CFrame.Angles(math.rad(-30), 0, 0)
task.wait(0.02)
camera.CFrame = original
end
-- Do wallhop
local function doWallhop()
local char, humanoid, hrp = getCharacter()
local state = humanoid:GetState()
-- Only if player is jumping or falling
if state ~= Enum.HumanoidStateType.Jumping and state ~= Enum.HumanoidStateType.Freefall then return end
-- Raycast forward to check for a wall
local params = RaycastParams.new()
params.FilterDescendantsInstances = {char}
params.FilterType = Enum.RaycastFilterType.Blacklist
local wall = workspace:Raycast(hrp.Position, hrp.CFrame.LookVector * 2, params)
if wall then
-- Flick-style velocity
hrp.Velocity = Vector3.new(0, 48, 0) + hrp.CFrame.LookVector * 6
-- Camera flick up/down
flickCamera()
end
end
-- Keybind
uis.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.H then
doWallhop()
end
end)



mid works tho
its okay but i hate it how u have to press "H" to wallhop