Hello, I'm am EXTREMELY new to Lua, so go easy on me please, I'm trying to move the HumanoidRootPart of the players to the spawnpoints that are located on the chosen map, but when starting up a server with the minimum amount of players it displays this error, " 23:15:32.804 - ServerScriptService.MainScript:53: attempt to index local 'SpawnPoints' (a nil value)" I have no idea what this means so I would appreciate any help, I'm trying my best!
-- 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 = 100
-- Game loop
while true do
Status.Value = "Waiting For Players" repeat wait(1) until game.Players.NumPlayers >= 2 Status.Value = "Intermission" wait(10) local plrs = {} for i, players in pairs(game.Players:GetPlayers()) do if player then table.insert(plrs,player) -- Add each player into plrs table 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 the map local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints") if not SpawnPoints then print("SpawnPoints not found!") 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) -- Give them a sword local Sword = ServerStorage.Sword:Clone() Sword.Parent = player.Backpack local GameTag = Instance.new("BoolValue") GameTag.Name = "GameTag" GameTag.Parent = player.Character else --There is no character if not player then table.remove(plrs,i) end end end end Status.Value = "Match Beginning!" 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.BattleCoins.Value = plrs[1].leaderstats.BattleCoins.Value + reward break elseif #plrs == 0 then Status.Value = "Nobody won!" break elseif i == 0 then Status.Value = "Time up!" end wait(1) end print("End of match!") 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 = "Match Complete" wait(2) end end end