I have an error that said "'<eof>' expected near end" and I don't know what it means.
-- Define Variables local ReplicatedStorage = game:GetService("ReplicatedStorage") local ServerStorage = game:GetService("ServerStorage") local MapsFolder = ServerStorage:WaitForChild("Maps") local Status = ReplicatedStorage:WaitForChild("Status") local GameLength = 50 local reward = 5 -- Game Loop while true do Status.Value = "Waiting for enough players" repeat wait() until game.Players.NumPlayers >= 2 Status.Value = "Intermisson" 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 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) local Sword = ServerStorage.Sword:Clone() Sword.Parent = player.Backpack 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 --They are still alive print(player.Name.." is still in the game!") else --They are dead table.remove(plrs,x) 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" if #plrs == 1 then -- Last person standing Status.Value = "The winner is "..plrs[1].Name plrs[1].leaderstats.Robux.Value = plrs[1].leaderstats.Robux.Value + reward break elseif #plrs == 0 then Status.Value = "Nobody won!" break elseif i == 0 then Status.Value = "Time up!" break end wait(1) end print("End of game") for i, player in pairs(game.Players:GetPlayers()) do character = player.Character if not character then -- Ignore them else if character:FindFirstChild("GameTag") then character.GameTag:Destroy() end if player.Backpack:FindFirstChild("Sword") then player.Backpack.Sword:Destroy() end if character:FindFirstChild("Sword") then character.Sword:Destroy() end end player:LoadCharacter() end ClonedMap:Destroy() Status.Value = "Game ended" wait(2) end
You have extra ends here and there and also never really actually ended your while
loop as well.
For future reference, to fix these sort of problems, begin by pasting it in a new file and start indenting on every new scope you have. You just need to be patience of this kinds of things.
Here is your fixed code. Of course since you know the script better than anybody else, you might have to change here and there. I indented it and fixed it through my general understanding of your code.
But do please double check.
while true do Status.Value = "Waiting for enough players" repeat wait() until game.Players.NumPlayers >= 2 Status.Value = "Intermisson" 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 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 character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame table.remove(AvailableSpawnPoints,1) local Sword = ServerStorage.Sword:Clone() Sword.Parent = player.Backpack else 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 --They are still alive print(player.Name.." is still in the game!") else --They are dead table.remove(plrs,x) 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" if #plrs == 1 then -- Last person standing Status.Value = "The winner is "..plrs[1].Name plrs[1].leaderstats.Robux.Value = plrs[1].leaderstats.Robux.Value + reward break elseif #plrs == 0 then Status.Value = "Nobody won!" break elseif i == 0 then Status.Value = "Time up!" break end end print("End of game") for i, player in pairs(game.Players:GetPlayers()) do character = player.Character if not character then -- Ignore them else if character:FindFirstChild("GameTag") then character.GameTag:Destroy() end if player.Backpack:FindFirstChild("Sword") then player.Backpack.Sword:Destroy() end if character:FindFirstChild("Sword") then character.Sword:Destroy() end end player:LoadCharacter() end ClonedMap:Destroy() Status.Value = "Game ended" wait(2) end