Character models fail to be removed after falling below the FallenPartsDestroyHeight in places with a custom StarterCharacter

Reproduction Steps

1. Create a Model and put a Humanoid and a BasePart in the model. Name the BasePart “HumanoidRootPart” and make the PrimaryPart of the model the HumanoidRootPart.

  1. Parent this model to StarterPlayer and name the model “StarterCharacter”

  2. Playtest the game and jump off of the map and fall below the FallenPartsDestroyHeight

Reproduction File:
StarterCharacterBug.rbxl (34.7 KB)

Expected Behavior

I expect the model and its descendants to be removed and the player’s character to respawn.

Actual Behavior

Only the model’s BaseParts are removed, but not other instances that are parented to the model.

Workaround

I have created a script in my game that detects if a player falls below Y -500 and sets their Health to 0 to reset them.

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

1 Like

After more testing, any model that has a Humanoid parented to it will not be removed when falling below the FallenPartsDestroyHeight, even if its not being controlled by a player. Models without a Humanoid will be removed as intended.

1 Like

From what I understand, part of this is expected behavior from changes that look to date back to February…

Although in my tests I am noticing that this is not correctly setting the HumanoidState to Dead for characters (my tests have started with NPCs), and instead leaves it at Freefalling State. Additionally, the Humanoid.Died events are not firing even though my models have Humanoid set to require neck joint and break joints on death which were destroyed.

The joints are gone and parts destroyed, yet no events related to character death fire. One post suggests checking for Ancestry changes, which should suffice as a work-around. I believe DescendentRemoving should work as well (I’ll be testing this today).

What I’ve done in these cases is set the Health to zero which forces Humanoid Death and the behavior returns to back how it use to be when models fell below the FallenPartsDestroyHeight.

1 Like

Hello and thank you for reaching out. this is currently working as intended. The way humanoid death is determined is either when health reach 0 or when the neck Motor6D is gone (i.e. when Torso or Head are removed). When a model with humanoid passes below the FallenPartsDestroyHeight, the Head and Torso will get destroyed, causing the Neck motor to be gone, and causing death.

In the test case uploaded, since those parts are not there, death is not detected. One way to handle it is to have Head and UpperTorso part, attached with Motor6D,

I am attaching a working sample file
StarterCharacterWorking.rbxl (35.4 KB)

Thanks again for reaching out, please let us know if we can provide additional help

2 Likes

This topic was automatically closed after 5 days. New replies are no longer allowed.