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