In my game, players are randomly falling down and getting stuck, through some debug tools, I have found that is it the Humanoid State of “Falling Down”. This often happens when player is moving at high velocities, such as dashing or getting knocked back. I have went through all my scripts and still unable to find anything that is changing the humanoid state, my guess is that I accidentally triggered an accidental Roblox property. Any help will be appreciated
If a humanoid is struck by a high velocity object or oriented weirdly, it goes into the “falling down” state. Colloquially, this may be called being “tripped”. I believe this is a hard-coded feature of Roblox humanoids, but there may be some potential workarounds for it.
Can we get some code for this? You mentioned “Dashing” and “Getting Knocked Down”, is there any code for that in your game?
This is intended behavior when a character is “rotated” past a certain limit. High velocities can cause this, as you mentioned, but…
Imagine if something started pushing or pulling your legs or your head strongly. You would tip over, and the internal Roblox character handling is similar. If something was pushing or pulling you at your torso area, you might move through space but you’re less likely to tip over, the closer the force gets to the center of your mass.
So, if a force (like a knockback) is being applied anywhere other than at the center of mass of the HumanoidRootPart, falling down may get triggered, or if a character is moving at a high velocity and suddenly it’s legs or head collide with something for example.
The internal code is always trying to keep characters “right way up” but past a certain point it gives in.
Without having to create a custom character controller, the way to work around this (other than avoiding it by handling all applied forces correctly) is to disable the FallingDown state temporarily (or completely of you wish) while a knockback or something similar is happening.
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
happens at random, I experienced it once while walking normally, if there was a certain section of code for this issue it would’ve been fixed already.