I have noticed that most ragdoll scripts mess with the respawning of characters. Is there any ragdolling involved in your game? Also, this might be a stupid question, but is this a server-script and not a localscript?
I’ve encountered this problem before. It is likely related to the way you are damaging the player. With that being said, if you are damaging the player on a server script, why use the dead state? Roblox has built in functions with humanoid.Died and char added that are designed to work. If none of this helps, submit a bug report detailing the issue including that your script is server and not local.
Ofc it’s server sided, the dead state is there just for making sure the character knows it’s dead, even tho after setting it to dead it still says that it’s running or jumping for some reason
Whole humanoid is held by legacy code, which is really buggy and prone to break. And as far as I know, roblox will not fix it as they are moving the character system to a brand new one made from scratch. What I personally suggest you do is not touch the states at all, as they are really buggy. Let the humanoid set it’s state by itself by setting Health to 0.
It’s just that they don’t want to override original character system because of the compatibility issues. They did provide a script that converts humanoid physics to a new system so you might use it to fix states and generally have better controls over humanoid movement
EDIT: Technically, it’s not a new character system. What it does is disable replication, states and physics. It does not have a new health system or player modules.