Player:HasAppearanceLoaded() returns true even when the character isn't fully loaded on client

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.

GIF of the issue: https://gyazo.com/d535bbf09d57e2d2cf273fe5437f0710

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

Place file:
HasAppearanceLoaded() issue.rbxl (18.1 KB)

4 Likes

Isn’t that what you want it to do, make a clone?

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”

Do on the server side instead of a LocalScript.