How would i stop the inertia on character after jumping with high walkspeed

So i want to achieve something like in Speedrun 4 where if u jump it instantly stops ur character from moving forward or in the direction u jumped

https://gyazo.com/f19002a39da9b436748fd4560eb237ea
it looks like this ^^^

and im trying to make it look like this in speedrun instant stop when jumping and not holding W
https://gyazo.com/2a4579cceee207b52cbfcc927d240d49

i havent tried any solutions because i dont know where to start i was thinking something maybe like using bodyforce when humanoidstatetype is jumping or something i dont know i just need someone to explain how this would work because im not too experienced in physics

Im not asking for a complete script just something so i know where to start

1 Like

I would try directly overwriting the HumanoidRootPart’s velocity with a velocity that removes all but the vertical component.

local function getYClampedVector(velocity: Vector3): Vector3
    return Vector3.new(0, velocity.Y, 0)
end

You could poll their control module input vector while they’re jumping

local RunService = game:GetService('RunService')
local Player = game:GetService('Players').LocalPlayer

local controlModule = require(Player.PlayerScripts:WaitForChild('PlayerModule')):GetControls()


-- triggered by the jump
while jumping do
    local moveVec = controlModule:GetMoveVector()

    if moveVec.Magnitude == 0 then
        humanoidRootPart.Velocity = getYClampedVector(humanoidRootPart.Velocity)
    end
end