Inertia movement system

I want to make a movement system based on other FPS titles like CS:GO or Escape from Tarkov where the player has inertia and won’t instantly stop moving when the key is released.

The issue is just I don’t know how to go at doing this so if anyone has a decent idea or concept on it any help would be appreciated

I’ve looked for posts on here but none of them really seemed to be what I was looking for.

3 Likes

Have you seen this post?

It takes the open-source movement code from Quake and adapted into Roblox.

1 Like

what I like to do is change the default character to a model with a invisible ball and nothing else

then in a localscript i load the character model without a humanoid but a AnimationController and i position the character model to the same position as the invisible ball and if the ball is moving i play the run animation

in a different localscript i control the ball using

local controlModule = require(game.Players.LocalPlayer.PlayerScripts.PlayerModule.ControlModule)

while true do
    local moveVector = controlModule:GetMoveVector()
    print(moveVector)
    task.wait(1)
end

there are many ways you can control the ball depending on how you want the character to feel
but 1 way it to lock the rotation using a AlignOrientation and then adjust the balls friction to adjust how much you want the ball to slide then you can use VectorForce or LinearVelocity

if your using VectorForce you will also want to do drag physics this video here can help teach you how to do drag

2 Likes