Hi I got this code from Alvin Blox's sword fight game tutorial but I have greatly modified it. My problem is that the main while loop is not repeating to go onto the next game. Its working once but after that its not re-running. Below I have my code. Please help me out it will mean a lot to me.
-- Define variables
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local MapsFolder = ServerStorage:WaitForChild("Maps")
local Status = ReplicatedStorage:WaitForChild("Status")
local GameLength = 20
local reward = 15
--Game Loop
while true do
Status.Value = "Waiting for enough players"
repeat wait(1) until game.Players.NumPlayers >= 2
Status.Value = "Intermission"
wait(10)
local plrs = {}
for i, player in pairs(game.Players:GetPlayers()) do
if player then
table.insert(plrs,player) --Add each player into plrs table
end
end
wait(2)
local AvailableMaps = MapsFolder:GetChildren()
local ChosenMap = AvailableMaps[math.random(1,#AvailableMaps)]
Status.Value = ChosenMap.Name.." Chosen"
local ClonedMap = ChosenMap:Clone()
ClonedMap.Parent = workspace
--Teleport players to map
local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")
if not SpawnPoints then
print("SpawnPoints not found!")
end
local AvailableSpawnPoints = SpawnPoints:GetChildren()
for i, player in pairs(plrs) do
if player then
character = player.Character
if character then
-- Teleport them
character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
table.remove(AvailableSpawnPoints,1)
else
-- There is no character
if not player then
table.remove(plrs,i)
end
end
end
end
Status.Value = "Get Ready to play!"
wait(2)
for i = GameLength,0,-1 do
for x, player in pairs(plrs) do
if player then
character = player.Character
if not character then
--Left the game
else
if character:FindFirstChild("GameTag") then
print(player.Name.." is still in the game!")
else
--They are dead
table.remove(plrs,x)
print(player.Name.." has been removed")
end
end
else
table.remove(plrs,x)
print(player.Name.." has been removed!")
end
end
Status.Value = "There are "..i.."seconds remaining, and "..#plrs.." players left"
wait(1)
end
print("End of game")
ClonedMap:Destroy()
game.Players:Destroy()
end

3 comments
while true do
Are you checking the output for any errors? Errors stop the rest of the code from running.
Yeah... It's the fact that you just attempted to destroy a Service lmao... Get rid of line 115.