Player.CharacterAppearanceLoaded Event Should Fire on the Client

This bug report was classified as intended behavior, so…


Currently, the Player.CharacterAppearanceLoaded event only fires on the server, making it challenging for developers to determine when a player’s character model has finished loading on the client. This limitation hinders the ability to perform certain actions that rely on the character’s descendants being fully loaded and available.

Use Cases:

  1. Collision Grouping: Developers often need to add specific character parts to various collision groups or raycasting lists. Without knowing when the character has finished loading on the client, it becomes difficult to ensure that these operations are performed at the appropriate time.

  2. Avatar Editors and Custom Characters: When building avatar editors or implementing custom character systems, developers require a reliable way to determine when it is safe to modify the character’s appearance or structure. The absence of a client-side event for character loading can lead to unexpected behavior or visual glitches.

  3. Initialization of Character-Dependent Scripts: Certain gameplay or control scripts may depend on the character being fully loaded before they can execute properly. The lack of a client-side event forces developers to use workarounds or delayed execution, which can introduce complexity and potential issues.

Implementing the Player.CharacterAppearanceLoaded event to fire on the client would provide developers with a clear and reliable way to determine when a player’s character has finished loading. This would offer several benefits:

  1. Improved Development Experience: Developers would have a straightforward method to wait for the character to load before attempting to access or modify its descendants. This would streamline the development process and reduce the need for guesswork or workarounds.

  2. Enhanced Reliability: By ensuring that character-related operations are performed only after the character has fully loaded on the client, developers can minimize the risk of errors, visual glitches, or unexpected behavior. This would lead to a more stable and consistent user experience.

  3. Simplified Code Structure: With a client-side event for character loading, developers can write cleaner and more organized code. They can avoid scattered delays or conditional checks and instead rely on a single event to trigger the necessary actions.

  4. Consistency with Server-Side Functionality: Since the Player.CharacterAppearanceLoaded event already exists on the server, extending its functionality to the client would promote consistency and make it easier for developers to reason about their code across both environments.

As you can see from the bug report on this subject being bumped every few months for the past half decade, this is a serious issue that impacts many developers.

20 Likes

I agree, I don’t understand why it loads on the server since the client manages the client, which has the character. Confusing.

2 Likes