For some reason it seems to have to be doing something with this section of the code when you first spawn into the round:
for i, v in pairs(game.Players:GetChildren()) do
if v:FindFirstChild("TempStats") and v.TempStats.Ready.Value == true and v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health > 0 then
v.TempStats.Spawned.Value = true
local RandomSpawn = Random.new():NextInteger(1,#Spawns)
v.Character.HumanoidRootPart.CFrame = workspace.Ignore.Spawns.Player[Spawns[RandomSpawn]].CFrame*CFrame.new(0,3,0)
table.remove(Spawns,RandomSpawn)
table.insert(Spawned,{Player=v,SpawnedBack=false})
SupposeToSpawn = SupposeToSpawn+1
RE:FireClient(v,"Spawn",{
RoundStart=true,
StartTime=MasterClock:GetTime()
})
end
end
What relies on that .Spawned.Value? Is it possible that something relying on that value, and sees a change, causes it to run extra steps outside this script?
If you fixed it, please put the code you used or solution here! It allows people with similar issues to look back at this thread and solve it like you have