In my game I have a character system, and while it works fine the game ALWAYS duplicates characters so there's more than 1 in a round. I don't want this. How can I fix it?
local Chars = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26} for _, player in pairs(_G.playerlist) do if player and player.Character then local Humanoid = player.Character:WaitForChild("Humanoid") if Humanoid and Humanoid.Health > 0 then characterselectednum = math.random(#Chars) characterselected = game.ServerStorage.Characters[characterselectednum] if game.Players:FindFirstChild(player.Name) then table.remove(Chars, characterselectednum) for i,v in ipairs(Chars) do print("Character"..v) end local aye = Instance.new("StringValue") aye.Parent = player aye.Name = "PlayerName" aye.Value = characterselected.CharName.Value local aye2 = Instance.new("StringValue") aye2.Parent = player.Character aye2.Name = "PlayerInfo" aye2.Value = characterselected.CharInfo.Value end if game.Players:FindFirstChild(player.Name) then local shirt = player.Character:FindFirstChild("Shirt") pants = player.Character:FindFirstChild("Pants") if shirt then local charsthirt = characterselected:FindFirstChild("Shirt") if charsthirt then shirt.ShirtTemplate = characterselected.Shirt.ShirtTemplate else shirt.ShirtTemplate = 0 end else local charshirt = characterselected:FindFirstChild("Shirt") if charshirt then local shirt2 = charshirt:Clone() shirt2.Parent = player.Character end end end if game.Players:FindFirstChild(player.Name) then local shirtgraphic = player.Character:FindFirstChild("Shirt Graphic") if shirtgraphic then shirtgraphic:Destroy() end if pants then local charpant = characterselected:FindFirstChild("Pants") pants.PantsTemplate = characterselected.Pants.PantsTemplate else local charpant = characterselected:FindFirstChild("Pants") local pantsy = charpant:Clone() pantsy.Parent = player.Character end end if game.Players:FindFirstChild(player.Name) then for i,v in pairs (player.Character:GetChildren()) do if v:IsA("Accessory") or v:IsA("Hat") then v:Destroy() end end for i,v in pairs (characterselected:GetChildren()) do if v:IsA("Accessory") then local rawr = v.Name if game.Players:FindFirstChild(player.Name) then local hato = player.Character:FindFirstChild(rawr) if not hato then local hat = v:Clone() hat.Parent = player.Character end end end end if game.Players:FindFirstChild(player.Name) then if player.Character.Head:FindFirstChild("Mesh") then player.Character.Head.Mesh:Destroy() local xd = Instance.new("SpecialMesh") xd.MeshId = "" xd.MeshType = "Head" xd.Scale = Vector3.new(1.25, 1.25, 1.25) xd.VertexColor = Vector3.new(1,1,1) xd.TextureId = "" xd.Offset = Vector3.new(0,0,0) xd.Parent = player.Character.Head end end wait(0.01) if game.Players:FindFirstChild(player.Name) then player.Character["Body Colors"]:Destroy() local skin = characterselected["Body Colors"]:Clone() skin.Parent = player.Character end end player.Character.Head.face.Texture = characterselected.Head.face.Texture end wait(0.5) else table.remove(_G.playerlist, player) _G.Players = _G.Players - 1 end end end