Custom movement system

How would you go about creating a custom movement system and replacing the default one?


There are lots of ways to create custom movement and it’s often specific on what you want to achieve, or why you’re overriding the movement in the first place.

If you’re just looking for standard movement, you would first want to override the existing movement. A quick and simple way of doing this is by setting the humanoid’s WalkSpeed and JumpPower to zero.

Then, for the movement system, it really depends on what you’re looking for. I would imagine most systems would use an arrangement of BodyMovers such as BodyVelocity and BodyForce, presumably within the HumanoidRootPart. Combined with UserInputService, you can alter the values of these BodyMovers on certain inputs of your choosing.

I know this seems complex, but overriding an entire movement system will be complex regardless of the approach. My apologies if you were hoping for a simpler solution.

1 Like

This + alot of physics formula.

If you wanna implement custom gravity. Physics all the way. Also BodyForce will create a constant acceleration. So if you want a instant acceleration to max speed use bodyvelocity. if you want a bit of both. use body force for a time period then bodyvelocity. Or just bodyvelocity constantly changing by calculating the velocity, using the time since first movement/initial velocity, and acceleration.


1 Like

alright, thank you guys. I was going to most likely use bodyvelocity but I have other bodyvelocities I had in the character, so it wouldnt overwrite by default.