Reproduction Steps
When a character interacts with a physics object owned by the server, and the BreakJointsOnDeath property of the character’s humanoid is set to false, resetting the character will fail to replicate to the server.
Basically, if you stand, push, or touch a server-owned part, then set the Humanoid’s health to zero on the client (most commonly by resetting), the humanoid’s death will only appear on your side, not the server.
Conditions to reproduce the bug:
BreakJointsOnDeath property of character’s Humanoid must be set to false from server
SetNetworkOwner(nil) must be called on the unanchored physics object that will be interacted with
Interact with the red part by standing on it, touching it, or shoving it
Reset the character or set the character’s health to 0 from the client
Expected Behavior
It is expected that the client will die on both the client and server, and that the character will respawn.
Actual Behavior
The client’s death fails to replicate to the server, resulting in a desync where the player’s character is stuck and cannot do anything, and will not respawn.
Issue Area: Engine Impact: Moderate Frequency: Often Date First Experienced: 2021-08-01 00:08:00 (-07:00)
Additionally, there is other weird behavior that occurs when a player dies while being welded to a server-owned object, which results in any player being welded to that object dying as well. However, that is harder to reproduce and thus, is not demonstrated in this bug report. However, I do feel that it a related issue which may help in investigating this. Here are some links to other people that appear to be experiencing this.
Bump, this bug is still present, what happened? To me it happens when I dash and quick reset, meaning it happens to me when there’s a body velocity inside the HRP, but sometimes it just happens compeltely randomly when I reset, not even healthchanged <0 check passes let alone died. Address this please.
To anyone needing a temporary workaround you can use this, did the trick for me, still please address this problem I do not want this in my code.
–Inside of a Died event on the client
if character and character.Parent then
if character:FindFirstChild"Head" then
character.Head.Neck.Enabled = false
character.LowerTorso.Root.Enabled = false
runService.Heartbeat:Wait()
character.Head.Neck.Enabled = true
character.LowerTorso.Root.Enabled = true
end
end
I’m still having this issue I appreciate this response was looking everywhere for a solution. This is kinda game breaking as in some rare cases the character can actually get stuck forever. Weirdly enough moving around in shiftlock (with autorotate) sometimes gets ur character to finally update on the server but other times (rarely) it wont do anything.
if humanoidrootpart is anchored and i think any basepart in the character is anchored and breakpartsondeath is false and using reset button makes health 0 on client and health 100 on server, prob need a custom reset button to solve all these issues
To resolve this issue, create a custom bindable event and a remote event. Then, assign your custom bindable event to the “ResetButtonCallback”, thus setting the reset button’s function to your own. From within the bindable event function, trigger the remote event to the server. Finally, on the server side, have the remote event function set the humanoid’s health to 0.
For anyone else experiencing similar issues, it is probably best to create a new bug report with a new reproduction case instead of bumping this thread.