CharacterAppearanceLoaded not Waiting for the Player Model to Render

As per the documentation that event/signal fires whenever all of a character’s ‘appearance’ instances have been inserted into that character’s model. Rendering is handled by the engine and a ‘Rendered’ event has yet to be added.

You may be able to use the ‘ContentProvider’ service.

local Game = game
local Players = Game:GetService("Players")
local ContentProvider = Game:GetService("ContentProvider")

local function OnPlayerAdded(Player)
	local function OnCharacterAdded(Character)
		if not Player:HasAppearanceLoaded() then Player.CharacterAppearanceLoaded:Wait() end
		ContentProvider:PreloadAsync({Character})
		print("Character's appearance has rendered.")
	end

	Player.CharacterAdded:Connect(OnCharacterAdded)
end

Players.PlayerAdded:Connect(OnPlayerAdded)