while true do wait() local player = game.Players.LocalPlayer local plr = game.Players.LocalPlayer.Character if player then if plr then if player.HatEquiped.Value ~= "Empty" then for i,v in pairs(plr:GetChildren()) do if v.ClassName == "Hat" then local verification = v:FindFirstChild("HatVerifier") if verification then local hatwearing = v.Name if player.HatEquiped.Value ~= hatwearing then v:Destroy() local hatnowwearing = game.ReplicatedStorage:FindFirstChild(""..player.HatEquiped.Value..""):Clone() if hatnowwearing then hatnowwearing.Parent = plr end end elseif verification == nil then local hatnowwearing = game.ReplicatedStorage:FindFirstChild(player.HatEquiped.Value) if hatnowwearing then local hatputtingon = game.ReplicatedStorage:FindFirstChild(""..player.HatEquiped.Value..""):Clone() hatputtingon.Parent = plr end elseif v.ClassName ~= "Hat" then local hatnowwearing = game.ReplicatedStorage:FindFirstChild(player.HatEquiped.Value) if hatnowwearing then local hatputtingon = game.ReplicatedStorage:FindFirstChild(""..player.HatEquiped.Value..""):Clone() hatputtingon.Parent = plr end end end end end end end end
This script is supposed to have the player wear that hat that their HatEquiped value is set to. I'm going to try to sum it up.
This is for a character customization script. Each hat in my game in Replicated Storage has a value in it (the value's value makes no change) to show the script that it's the game's hat, and not ROBLOX's hat. If there is a hat in the player that is the game's hat, it's supposed to get rid of it when HatEquiped changes. If there is no hat that the player is wearing, then it gives the hat to the player if the player's HatEquiped value is the name of a hat in Replicated Storage, then it clones it over to the player. The problem is that it doesn't work, and I don't know why. There is no error in the output, and no error that I can find. Please help?