Avatar spawning issues with AvatarJointUpgrade enabled

Multiple experiences within our studio currently are encountering issues pertaining to avatar spawning when trying to set AvatarJointUpgrade to Enabled.

In Dungeon Heroes and Swordburst 3, we have a custom StarterCharacter model that is effectively a standard R15 rig, but contains additional parts within it called LeftHandle and RightHandle. These parts are connected to the rig’s Right/LeftHand parts via Motor6Ds. We weld the character’s weapons to these parts to allow them to be animated independently of the hands, allowing for higher fidelity attack animations. These joints are already rigged on the StarterCharacter, we do not create them programmatically at runtime.

When a player’s character spawns with AvatarJointUpgrade enabled, the engine replaces all of the Motor6Ds that exist within the StarterCharacter model with new AnimationConstraint instances, but only for the joints that would be typically found on a normal R15 rig.

No AnimationConstraints are created for the custom LeftHandle and RightHandle joints, but the Motor6Ds are still destroyed. This results in the handle parts never getting attached to the character, thus causing the character to never have any weapons equipped.

A manual fix was implemented for Dungeon Heroes, but this issue still remains in Swordburst 3 if AvatarJointUpgrade is enabled.

A different issue appears in Robloxian High School. RHS allows users to rescale each of their character’s limbs individually, so we have a function to rebuild the character’s joints that runs even when the character spawns.

The code finds the appropriate Motor6Ds within each part by searching for an attachment instance with “RigAttachment” within the name, then isolates the remainder of the string (ex: “RootRigAttachment”) to get the name of the Motor6D. If no motor exists, one is created, and it then proceeds to update the Part0, Part1, C0 and C1 properties on the Motor6D.

This causes an error with AvatarJointUpgrade enabled, as the motors are replaced with AnimationConstraints. AnimationConstraints appear to have the aforementioned properties hidden and read-only, with the intended properties for use being Attachment0 and Attachment1. This causes a “property is read-only” error when trying to set the properties of the joints, and breaks character spawning entirely in the game.

While we can take the time to implement a manual fix for RHS, any other games that might have programmed logic of this sort will also carry the risk of running into these issues when enabling AvatarJointUpgrade.

A private message is associated with this bug report

1 Like