My main script in a game I made is pretty much garbage. The main focus is that I need to fix the error, but i do not know how, and the output does not say anything. Here is the script.
local ReplicatedStorage = game:GetService("ReplicatedStorage") local players = game:GetChildren("Players") local AllPlayers = game.Players:GetChildren() local Maps = ReplicatedStorage:WaitForChild("Maps") local AllMaps = Maps:GetChildren() local MapSelected = workspace:WaitForChild("MapSelected") local PCount = workspace:WaitForChild("Players") local Message = workspace:WaitForChild("Message") local Time = workspace:WaitForChild("Time") local Lobby = workspace:WaitForChild("Lobby") local LobbySpawns = Lobby.Spawns:GetChildren() local CurrentMap = workspace:WaitForChild("CurrentMap") local Picked = math.random(1,#AllMaps) local PlayersNeeded = 2 local winners = {} local choices = {} function checkPlayer() if PCount.Value >= PlayersNeeded then return true else return false end end function Intermission() for i = 5,1,-1 do wait(1) Message.Value = "Intermission: "..i.."second(s)" end end function SelectMap() for i = 1,#AllMaps do if AllMaps[i]:isA("Model") then table.insert(choices,AllMaps[i]) end end MapSelected.Value = choices[Picked].Name Message.Value = "Minigame Selected: "..MapSelected.Value.."!" end function CloneMap() local clone = Maps:FindFirstChild(MapSelected.Value):Clone() clone.Parent = CurrentMap end function ClearMap() CurrentMap:ClearAllChildren() end function TeleportPlayerToMap() for i = 1,#AllPlayers do if AllPlayers[i]:WaitForChild("Settings").AFK.Value ~= true then if AllPlayers[i].Character ~= nil then if AllPlayers[i].Character:FindFirstChild("Humanoid").Health ~= 0 then local spawns = CurrentMap:FindFirstChild(MapSelected.Value):FindFirstChild("Spawns"):GetChildren() if spawns ~= nil then local ransp = spawns[math.random(1,#spawns)].CFrame + Vector3.new(0,3,0) AllPlayers[i].Character.HumanoidRootPart.CFrame = ransp wait() if AllPlayers[i] ~= nil then if AllPlayers[i].Character ~= nil then AllPlayers[i].Character.HumanoidRootPart.CFrame = ransp end end wait() if AllPlayers[i] ~= nil then if AllPlayers[i].Character ~= nil then AllPlayers[i].Character.HumanoidRootPart.CFrame = ransp end end end end end end end end function KillAllPlayer() for i = 1,#AllPlayers do AllPlayers[i]:LoadCharacter() end end function WillingPlayers() local n = 0 for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Setings.AFK.Value ~= true then if AllPlayers[i].Character ~= nil then n = n + 1 end end end end return n end function AnnounceWinners() --b --b --b --b --a --a if MapSelected.Value == "TwistedTemple" then for i = 1,#AllPlayers do if AllPlayers[i]:WaitForChild("Settings"):WaitForChild("Playing").Value == true then table.insert(winners,AllPlayers[i]) if #winners == 1 then --Needs at least 1 winner. if there is only 1, put the name on it lol. Message.Value = AllPlayers[i].Name.."Won the minigame!" wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 200 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 10 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE elseif #winners >= 2 then Message.Value = "Multiple People Have Won..." wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 200 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RVictories").Value + 10 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE end else Message.Value = "GAME OVER, NOBODY HAS WON." wait(2) end end --now for OPT 2 elseif MapSelected.Value == "LavaJumps" or MapSelected.Value == "SquareParty" then for i = 1,#AllPlayers do if AllPlayers[i]:WaitForChild("Settings"):WaitForChild("Winner").Value == true then table.insert(winners,AllPlayers[i]) if #winners == 1 then Message.Value = AllPlayers[i].Name.."Has Won The Minigame!" wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 500 --Reward cuz the game won't be fun. of there isn't AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RVictories").Value + 10 elseif #winners >= 2 then Message.Value = "Multiple People Have Won..." wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 200 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RVictories").Value + 10 end else Message.Value = "No one won. Sad times buddies." -- so basically we can only used "Winner" end end end end function StartGame() ClearMap() Intermission() wait(2) Message.Value = "Choosing The Minigame, Prepare yourself!" wait(2) SelectMap() wait(3) Message.Value = "The Map Is Loading!" CloneMap() wait(4) Message.Value = "LET'S GO!" wait(1) TeleportPlayerToMap() wait(3) for i = 3,1,-1 do wait(1) Message.Value = "The Minigame will start in "..i.."second(s)!" end wait() if MapSelected.Value == "SquareParty" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value == true then AllPlayers[i].Settings.Playing.Value = true AllPlayers[i].Settings.Victorious.Value = true --if only they died, it's false. lol Time.Value = 73 --THE TIME OF THE MINIGAME. Mine's 1 minute CurrentMap:FindFirstChild(MapSelected.Value).MainScript.Disabled = false Time.Script.Disabled = false end end end elseif MapSelected.Value == "LavaJumps" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value == true then AllPlayers[i].Settings.Playing.Value = true Time.Value = 40 --THE TIME OF THE MINIGAME. Mine's 1 minute CurrentMap:FindFirstChild(MapSelected.Value).MainScript.Disabled = false Time.Script.Disabled = false end end end elseif MapSelected.Value == "Twisted Temple" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value == true then AllPlayers[i].Settings.Playing.Value = true Time.Value = 20 --THE TIME OF THE MINIGAME. Mine's 1 minute CurrentMap:FindFirstChild(MapSelected.Value).MainScript.Disabled = false Time.Script.Disabled = false end end end end while Time.Value ~= 0 do wait() if MapSelected.Value == "SquareParty" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value ~= true then if AllPlayers[i].Settings.Playing.Value == false then if AllPlayers[i].Settings.Winner.Value == false then Time.Value = 0 Time.Script.Disabled = true Message.Value = "TIME'S UP!" wait(2) end end end end end --option 2 elseif MapSelected.Value == "LavaJumps" or MapSelected.Value == "TwistedTemple" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value ~= true then if AllPlayers[i].Settings.Playing.Value == false and AllPlayers[i].Settings.Winner.Value == false then Time.Value = 0 Time.Script.Disabled = true Message.Value = "TIME'S UP!" wait(2) end end end end end end table.remove(choices,Picked) table.remove(winners) end while true do wait(3) if checkPlayer()then if WillingPlayers() >= PlayersNeeded then StartGame() elseif WillingPlayers() <= PlayersNeeded then Message.Value = PlayersNeeded.." or more players needed." end elseif not checkPlayer()then Message.Value = PlayersNeeded.." or more players needed." end end
Any help?
I apologize for the wrongly formatted code. that was a mistake i forgot to preview. Here you go.
However, my thinking makes me think that there is one problem that is spread through code, for example, the same mistake made on different lines.
local ReplicatedStorage = game:GetService("ReplicatedStorage") local players = game:GetChildren("Players") local AllPlayers = game.Players:GetChildren() local Maps = ReplicatedStorage:WaitForChild("Maps") local AllMaps = Maps:GetChildren() local MapSelected = workspace:WaitForChild("MapSelected") local PCount = workspace:WaitForChild("Players") local Message = workspace:WaitForChild("Message") local Time = workspace:WaitForChild("Time") local Lobby = workspace:WaitForChild("Lobby") local LobbySpawns = Lobby.Spawns:GetChildren() local CurrentMap = workspace:WaitForChild("CurrentMap") local Picked = math.random(1,#AllMaps) local PlayersNeeded = 2 local winners = {} local choices = {} function checkPlayer() if PCount.Value >= PlayersNeeded then return true else return false end end function Intermission() for i = 5,1,-1 do wait(1) Message.Value = "Intermission: "..i.."second(s)" end end function SelectMap() for i = 1,#AllMaps do if AllMaps[i]:isA("Model") then table.insert(choices,AllMaps[i]) end end MapSelected.Value = choices[Picked].Name Message.Value = "Minigame Selected: "..MapSelected.Value.."!" end function CloneMap() local clone = Maps:FindFirstChild(MapSelected.Value):Clone() clone.Parent = CurrentMap end function ClearMap() CurrentMap:ClearAllChildren() end function TeleportPlayerToMap() for i = 1,#AllPlayers do if AllPlayers[i]:WaitForChild("Settings").AFK.Value ~= true then if AllPlayers[i].Character ~= nil then if AllPlayers[i].Character:FindFirstChild("Humanoid").Health ~= 0 then local spawns = CurrentMap:FindFirstChild(MapSelected.Value):FindFirstChild("Spawns"):GetChildren() if spawns ~= nil then local ransp = spawns[math.random(1,#spawns)].CFrame + Vector3.new(0,3,0) AllPlayers[i].Character.HumanoidRootPart.CFrame = ransp wait() if AllPlayers[i] ~= nil then if AllPlayers[i].Character ~= nil then AllPlayers[i].Character.HumanoidRootPart.CFrame = ransp end end wait() if AllPlayers[i] ~= nil then if AllPlayers[i].Character ~= nil then AllPlayers[i].Character.HumanoidRootPart.CFrame = ransp end end end end end end end end function KillAllPlayer() for i = 1,#AllPlayers do AllPlayers[i]:LoadCharacter() end end function WillingPlayers() local n = 0 for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Setings.AFK.Value ~= true then if AllPlayers[i].Character ~= nil then n = n + 1 end end end end return n end function AnnounceWinners() --b --b --b --b --a --a if MapSelected.Value == "TwistedTemple" then for i = 1,#AllPlayers do if AllPlayers[i]:WaitForChild("Settings"):WaitForChild("Playing").Value == true then table.insert(winners,AllPlayers[i]) if #winners == 1 then --Needs at least 1 winner. if there is only 1, put the name on it lol. Message.Value = AllPlayers[i].Name.."Won the minigame!" wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 200 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 10 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE elseif #winners >= 2 then Message.Value = "Multiple People Have Won..." wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 200 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RVictories").Value + 10 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE end else Message.Value = "GAME OVER, NOBODY HAS WON." wait(2) end end --now for OPT 2 elseif MapSelected.Value == "LavaJumps" or MapSelected.Value == "SquareParty" then for i = 1,#AllPlayers do if AllPlayers[i]:WaitForChild("Settings"):WaitForChild("Winner").Value == true then table.insert(winners,AllPlayers[i]) if #winners == 1 then Message.Value = AllPlayers[i].Name.."Has Won The Minigame!" wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 500 --Reward cuz the game won't be fun. of there isn't AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RVictories").Value + 10 elseif #winners >= 2 then Message.Value = "Multiple People Have Won..." wait(2) AllPlayers[i]:WaitForChild("RCreds").Value = AllPlayers[i]:WaitForChild("RCreds").Value + 200 --Reward cuz it wont be fun if there isnt. please anticheat. PLEASE AllPlayers[i]:WaitForChild("RVictories").Value = AllPlayers[i]:WaitForChild("RVictories").Value + 10 end else Message.Value = "No one won. Sad times buddies." -- so basically we can only used "Winner" end end end end function StartGame() ClearMap() Intermission() wait(2) Message.Value = "Choosing The Minigame, Prepare yourself!" wait(2) SelectMap() wait(3) Message.Value = "The Map Is Loading!" CloneMap() wait(4) Message.Value = "LET'S GO!" wait(1) TeleportPlayerToMap() wait(3) for i = 3,1,-1 do wait(1) Message.Value = "The Minigame will start in "..i.."second(s)!" end wait() if MapSelected.Value == "SquareParty" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value == true then AllPlayers[i].Settings.Playing.Value = true AllPlayers[i].Settings.Victorious.Value = true --if only they died, it's false. lol Time.Value = 73 --THE TIME OF THE MINIGAME. Mine's 1 minute CurrentMap:FindFirstChild(MapSelected.Value).MainScript.Disabled = false Time.Script.Disabled = false end end end elseif MapSelected.Value == "LavaJumps" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value == true then AllPlayers[i].Settings.Playing.Value = true Time.Value = 40 --THE TIME OF THE MINIGAME. Mine's 1 minute CurrentMap:FindFirstChild(MapSelected.Value).MainScript.Disabled = false Time.Script.Disabled = false end end end elseif MapSelected.Value == "Twisted Temple" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value == true then AllPlayers[i].Settings.Playing.Value = true Time.Value = 20 --THE TIME OF THE MINIGAME. Mine's 1 minute CurrentMap:FindFirstChild(MapSelected.Value).MainScript.Disabled = false Time.Script.Disabled = false end end end end while Time.Value ~= 0 do wait() if MapSelected.Value == "SquareParty" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value ~= true then if AllPlayers[i].Settings.Playing.Value == false then if AllPlayers[i].Settings.Winner.Value == false then Time.Value = 0 Time.Script.Disabled = true Message.Value = "TIME'S UP!" wait(2) end end end end end --option 2 elseif MapSelected.Value == "LavaJumps" or MapSelected.Value == "TwistedTemple" then for i = 1,#AllPlayers do if AllPlayers[i] ~= nil then if AllPlayers[i].Settings.AFK.Value ~= true then if AllPlayers[i].Settings.Playing.Value == false and AllPlayers[i].Settings.Winner.Value == false then Time.Value = 0 Time.Script.Disabled = true Message.Value = "TIME'S UP!" wait(2) end end end end end end table.remove(choices,Picked) table.remove(winners) end while true do wait(3) if checkPlayer()then if WillingPlayers() >= PlayersNeeded then StartGame() elseif WillingPlayers() <= PlayersNeeded then Message.Value = PlayersNeeded.." or more players needed." end elseif not checkPlayer()then Message.Value = PlayersNeeded.." or more players needed." end end