Give accessory locally breaking?

So im trying to make an accessory giver but locally, and its not working, its going perfectly fine, but its not putting the hair on right. any reason why?

function hair(player)
	wait()
for _,v in pairs(game.ReplicatedStorage:WaitForChild("Hairs"):GetChildren()) do
		if player:WaitForChild("stats"):WaitForChild("Hair").Value == v.Name then
			wait()
			local cc = game.ReplicatedStorage:WaitForChild("Hairs"):WaitForChild(player:WaitForChild("stats"):WaitForChild("Hair").Value):Clone()
			wait()
			npc.Humanoid:RemoveAccessories()
			wait()
			cc.Parent = npc
			print("added intro hair")
		end
		end
		end

If there was no attachment on the hair, it’s probably not welding correctly. For some reason, it seems that the welding doesn’t work on client at all, it works on the server though.

make it server as anything workspace cannot be changed by a local script i highly reccomend firing a remote event via local script