Round system failure

my round system has been wonky and i tried to remake it but it still doesnt work correctly. it does not go back to the intermission when timer runs out and does not destroy the map and kill all players when the timer runs out

ServerStorage = game:GetService("ServerStorage")
ReplicatedStorage = game:GetService("ReplicatedStorage")
Players = game:GetService("Players")
teams = game:GetService("Teams")
DataStoreService = game:GetService("DataStoreService")
CashDataStore = DataStoreService:GetDataStore("cashDataStore")

Maps = ServerStorage:WaitForChild('Maps'):GetChildren()
RoundStatus = ReplicatedStorage:WaitForChild('RoundStatus')
GameStatus = ReplicatedStorage:WaitForChild("GameStatus")

local Survivors = {}

while wait() do
	if #game.Players:GetPlayers() > 1 then
		local countdown = 5
		for i = countdown, 0, -1 do
			RoundStatus.Value = "Intermission"
			GameStatus.Value = i
			wait(1)
		end -- for i = countdown, 0, -1 do
		
		ChosenMap = Maps[math.random(1, #Maps)]:Clone()
		Spawns = ChosenMap:FindFirstChild('Spawns'):GetChildren()
		
		countdown = 5
		for i = countdown, 0, -1 do
			RoundStatus.Value = ChosenMap.Name.." has been chosen!"
			GameStatus.Value = i
			wait(1)
		end -- for i = countdown, 0, -1 do
		
		local Players = game.Players:GetPlayers()

		for _, Player in ipairs(game.Players:GetPlayers())do
			if Player.Character and Player.Character:WaitForChild('Humanoid') then
				RandomSpawn = Spawns[math.random(1, #Spawns)]
				Player.Character.HumanoidRootPart.CFrame = RandomSpawn.CFrame
				Player.TeamColor = BrickColor.new("Persimmon")
				Player.Character.Humanoid.MaxHealth = 100
				Player.Character.Humanoid.Health = 100
				Survivors[Player] = true
			end -- if Player.Character and Player.Character:WaitForChild('Humanoid') then
		end -- for _, Player in ipairs(game.Players:GetPlayers())do
		
		countdown = 5
		for i = countdown, 0, -1 do
			ChosenMap.Parent = workspace
			RoundStatus.Value = "Get ready!"
			GameStatus.Value = i
			wait(1)
		end -- for i = countdown, 0, -1 do

		countdown = 15
		for i = countdown, 0, -1 do
			local Survivor = game.Teams.Playing
			RoundStatus.Value = ChosenMap.Name
			GameStatus.Value = i
			wait(1)
				if #Survivor:GetPlayers() == 1 then
					for i,v in pairs(game.Teams["Playing"]:GetPlayers()) do
						v.leaderstats.Cash.Value += 1
						
						for _, Player in pairs(game.Players:GetChildren())do
							if Player.Character and Player.Character:FindFirstChild('Humanoid') then
								Player.Character.Humanoid.Health = 0
							end -- if Player.Character and Player.Character:FindFirstChild('Humanoid') then
						end -- for _, Player in pairs(game.Players:GetChildren())do
						
						countdown = 2
						for i = countdown, 1, -1 do
							ChosenMap:Destroy()
							RoundStatus.Value = "Round over!"
							GameStatus.Value = i + 3
							local winner = game.ReplicatedStorage.Winner
						winner.Value = v.Name
						wait(1)
						end -- for i = countdown, 0, -1 do
						
						countdown = 3
						for i = countdown, 0, -1 do
							ChosenMap:Destroy()
							RoundStatus.Value = v.Name.." has won!"
							GameStatus.Value = i
							local winner = game.ReplicatedStorage.Winner
							winner.Value = v.Name
							wait(1)
						end -- for i = countdown, 0, -1 do
						
					end -- for i,v in pairs(game.Teams["Playing"]:GetPlayers()) do
					break
			end -- if #Survivor:GetPlayers() == 1 then
			
			if #Survivor:GetPlayers() == 0 then
				ChosenMap:Destroy()
				countdown = 2
				for i = countdown, 1, -1 do
					RoundStatus.Value = "Round over!"
					GameStatus.Value = i + 3
					local winner = game.ReplicatedStorage.Winner
					winner.Value = "nobody!"
					wait(1)
				end -- for i = countdown, 0, -1 do

				countdown = 3
				for i = countdown, 0, -1 do
					RoundStatus.Value ="Nobody has won!"
					GameStatus.Value = i
					local winner = game.ReplicatedStorage.Winner
					winner.Value = "nobody!"
					wait(1)
				end -- for i = countdown, 0, -1 do
				break
			end
		end -- for i = countdown, 0, -1 do
		
	end -- if #game.Players:GetPlayers() > 1 then
end -- while wait() do

fixed my issue ill close this now