Cloning accessories and using Humanoid:AddAccessory() not working

Note: Everything in the accessories is Archivable.

I am trying to add accessories to a character model placed in a ViewportFrame.

A connection listens for a descendant being added to the player’s character and then clones the descendant if it’s an accessory and parents it to the model in the viewport (currentClone is the model in the viewport):

descendantAddedConnection = character.DescendantAdded:Connect(function(child)
		if child:IsA("Accessory") then
			local clone = child:Clone()
			currentClone.Humanoid:AddAccessory(clone)
		end
	end)

Without a task.wait() or some sort of yield, the code above creates an empty accessory instance. I’m guessing this is because none of the children loaded (the accessories are being cloned from ServerStorage and parented to the character from the server).
a

Adding a task.wait() before local clone = child:Clone() seems to clone the accessory’s children, but the viewport character does not hold it at all.
image
This is the character in the viewport:
image

Seems to be a bug, seems like most of the solutions available are to just use a weld or to presetup the accessory beforehand:

Maybe you need a WorldModel in the viewport frame?

Well, that’s going to be annoying. Thank you for the help.

The code from the first post you linked worked perfectly. Appreciate it.

I am using a WorldModel in the viewport; all it does correctly is playing animations.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.