Hi guys, I have made the following round script that should start a new round but only goes through once.. I don't know why.Round duration always 5 minutes. Here is a list of things that shouldn't happen (but do):

  • Players spawn outside the lobby . Spawns located in the lobby are set to the "Not Playing" TeamColor and do not change
  • The script stops after one round, even with 5 players staying in the server

Any suggestions?

--[[		NOTE

The following functions are working properly and will not be posted in order to reduce the size of the faulty code: ChooseMap() GetPlayersInTeam(Team) ChooseTeam() CloneKnives(knives,player) ChooseRound()

]]

function Classic()
	classic = true
	workspace.Ingame.Value = true
	Text = "Round Chosen: Classic"
	for i=1,#Text do
		game.Workspace.Lobby.Noti.SurfaceGui.TextLabel.Round.Text = Text:sub(1,i)
		wait(0.1)
	end
	ChooseMap()
	Map = "Map Chosen: "..chosen.Name
	for i=1,#Map do
		game.Workspace.Lobby.Noti.SurfaceGui.TextLabel.Map.Text = Map:sub(1,i)
		wait(0.1)
	end
	chosen.Name = "Map"
	ChooseTeam()
	players = game.Players:GetPlayers()
	for i=1,#players do
		players[i]:LoadCharacter()
		knives = game.Lighting.Knives
		CloneKnives(knives,players[i])
	end
	chosen.During:Play()
	game.Workspace.Time.Value = 5*60
	game.Players.PlayerAdded:connect(function(player)
		if game.Workspace.Time.Value >10 and classic then
		player.TeamColor = game.Teams.Playing.TeamColor
		wait(0.5)
		player:LoadCharacter() end	
		CloneKnives(knives,player)	
	end)
	while wait()  do
		players = game.Players:GetPlayers()
		if game.Workspace.Time.Value == 0 or game.Players.NumPlayers <=4 then
			workspace.Ingame.Value = false
			for i=1,#players do
				if game.Players:FindFirstChild(players[i]) then
				items = players[i].Backpack:GetChildren()
				for b = 1,#items do
					if items[b]:IsA("Tool") then
						items[b]:Destroy()
					end
				end
				tools = players[i].StarterGear:GetChildren()
				for v=1,#tools do
					tools[v]:Destroy()
				end
				players[i].TeamColor = game.Teams["Not Playing"].TeamColor
				wait(0.5)
				players[i]:LoadCharacter() end
			end
			chosen.During:Stop()
			game.Workspace:FindFirstChild("Map"):Destroy()
			break
		end
	end	
	game.Workspace.Time.Value = 0
	players = game.Players:GetPlayers()
	for i = 1,#players do
		if players[i] then
		players[i].TeamColor = game.Teams['Not Playing'].TeamColor
		players[i]:LoadCharacter()end
	end
	workspace.End:Play()
	wait(6)
	while wait() do
		if workspace.End.IsPlaying == false then
			break
		end
	end
	classic = false
end

while true do
	wait(5)
		a = game.Workspace.Time.Tme
		if game.Players.NumPlayers == 3 then
			Text = "Waiting for 1 more player"
			for i=1,#Text do
				a.Value = Text:sub(1,i)
				wait(0.1)
			end
		elseif game.Players.NumPlayers >3 then ChooseRound()
		else 
			Text = "Waiting for "..(4-game.Players.NumPlayers).." More Players"
			for i=1,#Text do
				a.Value = Text:sub(1,i)
				wait(0.1)
			end 
		end
		wait(1.9)
		a.Value = ""
end