--OPEN SOURCE ALL TIME local RunService = game:GetService("RunService") local Players = game:GetService("Players") local player = Players.LocalPlayer local function setup(char) local humanoid = char:WaitForChild("Humanoid") local root = char:WaitForChild("HumanoidRootPart") local dropHeight = 14 local jumpCooldown = 0.000001 local lastJump = 0 local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude RunService.RenderStepped:Connect(function() if humanoid.Parent ~= char then return end if humanoid:GetState() == Enum.HumanoidStateType.Climbing then return end if humanoid.MoveDirection.Magnitude < 0.1 then return end if tick() - lastJump < jumpCooldown then return end params.FilterDescendantsInstances = { char } local footOffset = root.CFrame.RightVector * 1.2 local down = Vector3.new(0, -dropHeight, 0) local base = root.Position - Vector3.new(0, humanoid.HipHeight, 0) local left = workspace:Raycast(base + footOffset, down, params) local right = workspace:Raycast(base - footOffset, down, params) if not left and not right and root.Velocity.Y <= 0 then humanoid.Jump = true lastJump = tick() end end) end player.CharacterAdded:Connect(setup) if player.Character then setup(player.Character) end