Humanoid death does not replicate to server when interacting with a server-owned physics object

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

Reproduction place:
PhysicsDeathBugReport.rbxl (28.8 KB)

Steps:

  1. Interact with the red part by standing on it, touching it, or shoving it
  2. 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)

11 Likes

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.

3 Likes

Thanks for the report and repro! I’m looking into it.

Edit: After some investigation I’ve created a ticket and am directing it to the appropriate team.

6 Likes

This may be connected to my issue, where resetting with BreakJointsOnDeath = false does not replicate to the server.

This doesnt seem like the exact same thing, because in my case the character is not interacting with anything.
Just baseplate, reset, doesnt replicate

Even more strangely, zooming in after resetting seems to make your death replicate to the server

3 Likes

Has this issue been addressed yet? The issue is still a thing and my ragdoll scripts are heavily flawed because of this.

1 Like

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
2 Likes

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.

Issue still exists. Humanoid.Died nor Humanoid.HealthChanged are triggering on the server

Video

1 Like

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.

1 Like

Bump! This is still a big issue :[ resetting your character doesnt replicate to the server

2 Likes

Bump, still experiencing this. I haven’t been able to enable death effects in my game for two years because I don’t have a good fix for this issue.

Bump, still a bug lol, found a couple workarounds but never really got a permanent fix.

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.

4 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.