Humanoid cannot die when the HumanoidRootPart is anchored and BreakJointsOnDeath is false

Reproduction Steps

1. Open an empty baseplate template in Roblox Studio
2. Start Play Solo with character
3. Using explorer, anchor your HumanoidRootPart
4. Using explorer, set Humanoid.BreakJointsOnDeath to false
5. Try and reset your character.

Expected Behavior

I expect the humanoid health to be set to 0, the Died event to fire, and then the player to respawn. None of these things happen, except on the client. For whatever reason the client receives the death event and client health moves to zero, but the server does not.

Actual Behavior

When you reset, the client health moves to zero, all animations stop playing, and the client Died event is fired, but the character never respawns. If you move to server view and select the humanoid, the server health is still at 100. If you manually set the server health to 0, the Died event will still not fire and the humanoid will begin healing from the default health script. If you then un-anchor the HumanoidRootPart, the server will finally ‘catch up’ and the humanoid will die.

Issue Area: Engine
Issue Type: Other
Impact: Moderate
Frequency: Constantly
Date First Experienced: 2022-09-08 00:09:00 (-07:00)

5 Likes

I ran into this a while back. It gets in the way of death animations.

Interestingly, if you weld an unanchored HRP to an anchored part (with the same Humanoid conditions), you can sometimes have a character not die too.

2 Likes

My workaround was anchoring the RootPart on the server when Died fires, instead of on the client. Since the bug is caused by the client anchoring the RootPart before the server receives the death event, waiting until after the event is received to anchor resolves the issue.

3 Likes

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

2 Likes

To add to this, I can replicate this bug in my game by having the player standing inside an object (like a tent) that the object isn’t technically anchored, but if you die in the tent wall, the body becomes stuck in the tent as described here, the die event won’t fire. When I encountered it, chalked it up to engine weirdness, but I can reproduce it. The same setup is, the “BreakJoinsOnDeath” is false on my players (for ragdoll stuff later on in the game) and oddly enough, if you destroy the tent the player got stuck in, the event will then fire properly. Until then, the player is laying on the ground like they died and from another player’s perspective, the player is stuck on the floor, spinning around, lol.

1 Like