So this is a rather large game script that is supposed to manage the game. It doesn't work, and output isn't giving me anything. Can someone please help me?
Here's the script (Yes, everything in the script is defined):
local Maps = game.ServerStorage.Maps local Mode = script.Mode local MV = script.Map local TDM = script.TeamDeathMatchScript local TS = script.Time.Countdown local SL = script.ScoreLimit local msg = Instance.new("Message") local USMC = game.Workspace.USMCV local PLA = game.Workspace.PLAV local Up = script.Time.TimesUp local Play = script.Playing while true do if USMC.Value == SL.Value or PLA.Value == SL.Value or Up.Value == true then script.Time.Hi.Disabled = true Play.Value = false MV.Value = "None" Mode.Value = "None" if Mode.Value == "TDM" then msg.Parent = game.Workspace if USMC.Value > PLA.Value then msg.Text = "USMC won!" elseif PLA.Value > USMC.Value then msg.Text = "PLA won!" elseif PLA.Value == USMC.Value then msg.Text = "Tie!" end if Mode.Value == "Domination" then msg.Parent = game.Workspace if USMC.Value > PLA.Value then msg.Text = "USMC won!" elseif PLA.Value > USMC.Value then msg.Text = "PLA won!" elseif PLA.Value == USMC.Value then msg.Text = "Tie!" end end if game.Workspace.Map ~= nil then game.Workspace.Map:remove() end msg.Text = "A new battle is beginning!" wait(1.5) NewMode() wait(2) NewMap() wait(2) Play.Value = true script.Time.Left.Value = 45 script.Time.Hi.Disabled = false end end end function NewMode() local y = math.random(1,2) if y == 1 then msg.Text = "Map Chosen: Team Death Match!" Mode.Value = "TDM" elseif y == 2 then msg.Text = "Mode Chosen: Domination!" Mode.Value = "Domination" end end function NewMap() local x = math.random(1,2) if x == 1 then local Building = Maps.Building:clone() Building.Parent = game.Workspace Building.Name = "Map" msg.Text = "Map Chosen: Building!" MV.Value = "Building" if Mode.Value == "Domination" then Building.Flags:remove() end elseif x == 2 then local House = Maps.House:clone() House.Parent = game.Workspace House.Name = "Map" msg.Text = "Map Chosen: House!" MV.Value = "House" if Mode.Value == "Domination" then House.Flags:remove() end end end
I'm surprised this isn't giving you an error, but NewMap
and NewMode
never get defined because of the infinite loop above them. Also, it looks like you have an extra end
on line 51.
Looking at the loop itself a little closely, if that first conditional isn't met, the loop never wait
s, meaning you'll crash the moment the conditional is false. Change while true do
to while wait() do
to fix that.
I heavily suggest using Destroy
instead of remove
. Remove is deprecated.