Method to determine if a HumanoidDescription has finished applying from the client

As a Roblox developer, it is currently too hard to know when a HumanoidDescription has been fully applied from the client.

Previously, a solid solution was to put a RemoteEvent somewhere inside the character and have the server fire it every time it finishes applying a description. By the time the client receives the event, the description would have already been applied locally.
However, with the upcoming changes to part streaming behavior, this will no longer be the case, as with the new behavior:

  • A character model is changed on the server and an event is sent to a client. Just because the client receives the event isn’t a guarantee that all the changes to the model have been streamed to the client.

Being aware of description changes is useful to be because, in my current project, I’ve configured it so all local character scripts are automatically reloaded when a new HumanoidDescription is applied. This way, none of my character scripts need to know that any limb could be suddenly replaced at any time, making them much cleaner and faster to write.

8 Likes

Here’s an implementation of the previously-working method:
Repro.rbxl (33.4 KB)

With StreamingEnabled disabled, the description applied line always prints last.

With StreamingEnabled enabled, it’ll be somewhere in the middle, meaning it printed before the description finished applying.

1 Like

Boosting this because I find it to be a pretty serious overlook for HumanoidDescription usage. My use case is as follows:

I have a Character Creation system in my game that makes use of HumanoidDescriptions to apply saved appearances to the player character. In this same game, I have a system that creates a series of Ragdoll joints and constraints on players when their character is added. When a HumanoidDescription is applied, these joints and constraints disappear. Without making these systems communicate which I don’t find to be good practice, I have no way of knowing to rebuild these joints and constraints when a HumanoidDescription is applied.

I find it very important for there to be any way that scripts can be notified when a HumanoidDescription is applied to a character. Thank you.

1 Like