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.
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