Character parts no longer collide with parts created on the client after death

Reproduction Steps

ClientCollisionBugTest.rbxl (41.2 KB)

  1. Using the attached example project, hit Play
  2. Player will be teleported on to a platform created on the client, notice that collision works as expected
  3. A second later the player will be killed, notice that no parts of the character collide with the platform and all fall through. Notice that the player head also falls through the Baseplate platform.
  4. Additionally, if you disable the CreateClientPlatform script, notice that after the player dies collision no longer works as expected on the Baseplate platform and the character’s head falls through it as well.
  5. If you disable the TeleportAndKillPlayerWait and enable TeleportAndKillPlayerInstant, notice that after the player dies, no parts of the character fall through the Baseplate.

Expected Behavior
Character collision should work even after the player dies. The character parts should fall and bounce off of the platform spawned on the client, not fall through it.

Actual Behavior
Character collision no longer works correctly after the player dies. All parts of the character fall through the platform spawned on the client, and the head falls through the Baseplate.

Issue Area: Engine
Issue Type: Physics / collision
Impact: High
Frequency: Consistent

1 Like

We’ve filed a ticket to our internal database, and we’ll follow up when we have an update.

Thanks for the report!

1 Like

This seems to be a new network ownership issue, as we were able to resolve the issue with the following code, which was not necessary before:

local function setAllNetOwnership(character: Model, player: Player)
    for _, part: Instance in character:GetDescendants() do
        if part:IsA("BasePart") then
            part:SetNetworkOwner(player)
        end
    end
end
1 Like

This is is the result of an intentional change. Any separate network ownership units inside of a Humanoid character besides the root part are now auto assigned server ownership by default.

Manual ownership assignment will still override this. The workaround @Superslammin suggested would work.

Note that client ownership has an implicit responsiveness over security tradeoff. Consider just creating the platform on the server.

2 Likes