Humanoid is infinitely spinning and floating by an unknown force after applying mover constraint

In my game, the playing field is always at the same height. For that reason, we have a mechanic for if you manage to fall on top of a prop with increased height, you’ll get pushed off. The push velocity is applied using a linear velocity. This linear velocity is always parented but is only enabled when it has a force with a magnitude greater than 0. However, walking in the opposite direction of the force while it is active causes the humanoid to start floating and spinning even after the force has stopped.


In the video, you’re able to see the force infinitely being applied even when trying to change it. There are no other forces applied using code.
I wasn’t able to reproduce the bug on an empty baseplate. However, this devforum post seems to describe a similar issue.
This user also describes and has a video of the same issue.
Here aswell.

Notes

  • The teleporting in the video is click teleport.
  • The humanoid does fall down when platformstand is enabled.
  • This also happens when manually setting the velocity of the HumanoidRootPart.
  • When launching the humanoid upwards with a Y velocity, it is not able to move in the air and keeps the velocity it had pre-launch.

System information

  • AMD Ryzen 7 5700G with Radeon Graphics
  • 16GB DDR4
  • NVIDIA GeForce RTX 3060 Ti

I figured out the cause and it was the Freefalling humanoid state being disabled. Is this intended behavior? Because it seems inconsistent.

2 Likes