According to the Developer Hub, Player:HasAppearanceLoaded() should return true when all of the character’s accessories are loaded in. I tested this on the client and this method returns true even when none of the character’s accessories are loaded in.
The code I used to reproduce this issue (LocalScript in StarterCharacterScripts):
local plr = game.Players.LocalPlayer
local chr = plr.Character or plr.CharacterAdded:Wait()
print(plr:HasAppearanceLoaded())
if plr:HasAppearanceLoaded() == false then
plr.CharacterAppearanceLoaded:Wait()
end
chr.Archivable = true
local chrClone = chr:Clone()
chrClone.Parent = workspace
When I clone the character, none of its accessories are loaded in even though plr:HasAppearanceLoaded() returns true. The method should only return true once all of the character’s accessories are loaded in.
I’ve always had issues with Player.CharacterAppearanceLoaded event never firing on the client (not sure on server), and that as well… they mentioned they would change the ordering of character creation and loading but that was years ago and the most recent answer we have is “It’s still planned”