Disabling Default Movement System

Hello All,

I am making a movement system for my fps game, I’ve done some research on movement systems and I gather that the best way would be to scrap the default movement system and make a new one using inputs and lookVectors.

How would I go about disabling the default Roblox movement system?


You just don’t use the default character, or use it and get rid of the Humanoid.

How would changing the default character have anything to do with movement?

Because the default Roblox character uses the default Humanoid and default controls.

If you use a custom character you have to script everything yourself.

Turn off Players.CharacterAutoLoads, then the default character will not load.

Just disbale the movement controller in player scripts.

Mind you can only do this in local scripts

local controller = require(game.Players.LocalPlayer.PlayerScripts):GetController()

-- disable movement


-- enable movement


Or just set WalkSpeed to 0

Wait I read it wrong

Copy the player module and put it in StarterPlayerScripts, so the normal one doesn’t spawn and change the code in the Controller module



Yes better idea, you can keep the character just make custom controller :sweat_smile:

Ahh I see thanks for the help!

Under starter character, find DevComputerMovementMode and set it to scriptable. That disables the default character movement. You can find great articles on accelerated movement or smoothed movement.


I can’t seem to find DevComputerMovementMode? Where is it / how do I find it?


Check for this

Ahh it was an actual property of StarterPlayer, thanks for the help!

Here is how I would do it:

  1. Play the game in studio
  2. Look in StarterPlayerScripts
  3. There’s a ModuleScript called PlayerModule
  4. Copy that script
  5. Stop playing and paste it back in Edit mode
  6. Open the script
  7. There is something like this
local controls = ControlModule.new()
  1. Write this after the code in Step 7:

Hope this works!

Thanks for the help. I’m curious, how would that differ to setting DevComputerMovementMode to scriptable?

I have no idea, lol. I use this method of disabling player movement every time and I don’t know what DevComputerMovementMode can do.

Ohhh I see, you are talking about disabling player input. I meant for making a new movement system, but thanks for help

I have found an even better solution, instead of wasting valuable space in your RAM you should stick by adding BooleanValues inside StarterPlayerScripts and changing the name to fit the script you may wish to remove.
This only works because Roblox does not check for the Class of the instance, only the name of the instance is checked. Keeping these as boolean values lowers the amount of RAM used by a tiny amount and keeps your StarterPlayerScripts area clean from any unused scripts.

Please do not flag my post for necrobumping because this issue hasn’t been fully addressed until years later.

1 Like