ControllerManager ActiveController changed while BaseMoveSpeed is 0 causes player to slide

When setting a ControllerManager’s ActiveController property to a GroundController while its BaseMoveSpeed is set to 0 and move, the player will never decelerate and will keep moving until the ActiveController is changed again, whether or not it’s done on the server or client.

This happens both in Studio and in live games, and a consistent repro was only just found.

Repro file:
slidebugreport.rbxl (61.2 KB)
This place file uses the scripts provided in Releasing Character Physics Controllers with an additional UI to quickly change the BaseMoveSpeed value.
To reproduce, set BaseMoveSpeed to 0, jump, walk and then release all keys.

Demonstration:


(All keys were released about a second after moving when BaseMoveSpeed was changed from 0 to 16)

1 Like

Thanks for the report! We’ll follow up when we have an update for you.

1 Like

This is happening to me too. For me, I have a vault system that sets the walkspeed multiplier to 0 as they are locked into animation - if you input movement just as you land then there is a high chance you will just continue sliding.

Any movement input you make will instantly change direction, but releasing said keys will not make you stop, you’ll keep sliding in that last direction.


(as you can see when I land it reverts to normalcy, as it changes me to aircontroller then back to groundcontroller, resetting the glitch)

  • A temporary workaround is using a small number (e.g. 0.001) instead of flat 0 for movement speed factor.
1 Like