Body part color client-server desync after CharacterAppearanceLoaded when wearing bundle body parts

If you set a body part color immediately after CharacterAppearanceLoaded on the server, it will be overwritten client-side with the avatar’s body part color.

This only happens if the user’s avatar is wearing any bundle on any body part except their head or right arm. There is no effect on the issue if the avatar wears a Head or Right Arm, but wearing a bundle on any other body part will fix the desync problem.

  • No effect on desync with head bundle or no bundle
  • No effect on desync with right arm bundle or no bundle
  • Desync fixed with left arm bundle
  • Desync fixed with torso bundle
  • Desync fixed with right leg bundle
  • Desync fixed with left leg bundle

The correct behavior (sync) only happens when you are wearing a bundle for one or more of:

  • Left arm
  • Torso
  • Right leg
  • Left leg

Loosely put, any avatar without a bundle (AKA default blocky) will experience this issue.


This code within a server script will reproduce the issue reliably for any user (so long as I don’t change the appearance of this alt’s avatar).

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAppearanceId = 356402245
    player.CharacterAppearanceLoaded:Connect(function(character)
    	local head = character:WaitForChild("Head")
    	head.BrickColor = BrickColor.Green()
    end)
end)

You will see the following on the client:

image

But this on the server:


Discovered by @GeorgeBender

2 Likes