Changing ControllerManager.BaseMoveSpeed during controller transitions causes characters to become slippery

When you execute the following property changes in sequence, a ControllerManager will start to act very slippery:

  1. Transition the ControllerManager’s ActiveController from a GroundController to AirController.
  2. While the AirController is active, reduce the BaseMoveSpeed property, for example from 18 to 12.
  3. Change the ActiveController back to the GroundController.
  4. Increase the BaseMoveSpeed back to its original value, for example from 12 back to 18.

In the video below I execute these steps when I make my character jump. The AirController becomes active when I jump, then the BaseMoveSpeed changes mid-air. Upon landing the GroundController becomes active, then shortly after I reset the BaseMoveSpeed back to the previous value.

After the first jump you can see the character sliding way more than usual. During the second jump I execute the same steps, except that time I do not touch the BaseMoveSpeed property. After landing, the character works like normal, indicating the problem is the BaseMoveSpeed property.

Here’s an image of the code used in the video to make the character jump. The only difference between the two functions are the input key and the bottom function does not change the BaseMoveSpeed, showing that the problem lies in that property.

This issue might be related to this other bug, however that other bug report mentions specifically a BaseMoveSpeed of 0, which is not the case in this bug report.

I have attached a repro file with instructions in private.

A private message is associated with this bug report

3 Likes

This is just an acknowledgment announcement!

We’ve filed a ticket to our internal database, and we’ll follow up when we have an update!

Thanks for the report!

1 Like