Need some help with team accessories!

Im writting my own post for this one, since the problem I’m having is real specific…

I want the player to have team accessories, simple enough. For now Im keeping it basic, the accessories/clothing only changes after the player respawns. There are several issues, and being a novice script I really don’t know how its happening. The server script for handling team accessories is here:

local players = game:GetService(“Players”)
local storage = game:GetService(“ReplicatedStorage”)
local teamClothes = storage:WaitForChild(“TeamClothes”)

local blueStorage = teamClothes:WaitForChild(“Peacekeepers”)
local blueHelmet = blueStorage:WaitForChild(“PeacekeeperHelmet”)
local blueVest = blueStorage:WaitForChild(“PeacekeeperVest”)
local blueShirt = blueStorage:WaitForChild(“PeacekeeperShirt”)
local bluePants = blueStorage:WaitForChild(“PeacekeeperPants”)

local greenStorage = teamClothes:WaitForChild(“Military”)
local greenHelmet = greenStorage:WaitForChild(“MilitaryHelmet”)
local greenVest = greenStorage:WaitForChild(“MilitaryVest”)
local greenShirt = greenStorage:WaitForChild(“SoldierShirt”)
local greenPants = greenStorage:WaitForChild(“SoldierPants”)

local whiteStorage = teamClothes:WaitForChild(“Survivors”)
local whiteHair = whiteStorage:WaitForChild(“BrownCharmerHair”)
local whiteShirt = whiteStorage:WaitForChild(“SurvivorShirt”)
local whitePants = whiteStorage:WaitForChild(“SurvivorPants”)

players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
player.CharacterAppearanceLoaded:Connect(function(character)
if character:FindFirstChild(“Shirt”) then
character:FindFirstChild(“Shirt”):Destroy()
if player.Team == game.Teams[“Survivors”] then
local whiteShirtClone = whiteShirt:Clone()
whiteShirtClone.Parent = character
elseif player.Team == game.Teams[“Military”] then
local greenShirtClone = greenShirt:Clone()
greenShirtClone.Parent = character
elseif player.Team == game.Teams[“Peacekeepers”] then
local blueShirtClone = blueShirt:Clone()
blueShirtClone.Parent = character
end
else
if player.Team == game.Teams[“Survivors”] then
local whiteShirtClone = whiteShirt:Clone()
whiteShirtClone.Parent = character
elseif player.Team == game.Teams[“Military”] then
local greenShirtClone = greenShirt:Clone()
greenShirtClone.Parent = character
elseif player.Team == game.Teams[“Peacekeepers”] then
local blueShirtClone = blueShirt:Clone()
blueShirtClone.Parent = character
end
end
if character:FindFirstChild(“Pants”) then
character:FindFirstChild(“Pants”):Destroy()
if player.Team == game.Teams[“Survivors”] then
local whitePantsClone = whitePants:Clone()
whitePantsClone.Parent = character
elseif player.Team == game.Teams[“Military”] then
local greenPantsClone = greenPants:Clone()
greenPantsClone.Parent = character
elseif player.Team == game.Teams[“Peacekeepers”] then
local bluePantsClone = bluePants:Clone()
bluePantsClone.Parent = character
end
else
if player.Team == game.Teams[“Survivors”] then
local whitePantsClone = whitePants:Clone()
whitePantsClone.Parent = character
elseif player.Team == game.Teams[“Military”] then
local greenPantsClone = greenPants:Clone()
greenPantsClone.Parent = character
elseif player.Team == game.Teams[“Peacekeepers”] then
local bluePantsClone = bluePants:Clone()
bluePantsClone.Parent = character
end
end
if player.Team == game.Teams[“Survivors”] then
local whiteHairClone = whiteHair:Clone()
whiteHairClone.Parent = character
elseif player.Team == game.Teams[“Military”] then
local greenHelmetClone = greenHelmet:Clone()
greenHelmetClone.Parent = character
local greenVestClone = greenVest:Clone()
greenVestClone.Parent = character
elseif player.Team == game.Teams[“Peacekeepers”] then
local blueHelmetClone = blueHelmet:Clone()
blueHelmetClone.Parent = character
local blueVestClone = blueVest:Clone()
blueVestClone.Parent = character
end
if character:FindFirstChild(“Shirt Graphic”) then
character:FindFirstChild(“Shirt Graphic”):Destroy()
end
end)
end)
end)

and the script for removing player accessories when they join is here:

local Players = game:GetService(“Players”)
local RunService = game:GetService(“RunService”)

local function destroyAccessory(object)
if object:IsA(“Hat”) or object:IsA(“Accessory”) then
object:Destroy()
end
end

local function onCharacterAdded(character)
RunService.Stepped:Wait()
for _, child in pairs(character:GetChildren()) do
destroyAccessory(child)
end
character.ChildAdded:Connect(destroyAccessory)
end

local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end

Players.PlayerAdded:Connect(onPlayerAdded)

So when testing I could see in the workspace that the player accessories they have for their avatar still exist, yet they arent visible… and the accessories & shirts I’m trying to give them based on their team are given multiple times, as far as I could tell they get cloned every time the player resets and the older ones stay as children of the player. The accessories arent visible at all, but the clothing is. Any help would be appreciated!