while loop is supposed to do a time countdown in the game, and then perform an operation when time has run out (declare one team the winner of the game).
The while loop runs on the condition that as long as a value in the game is
false, it will countdown. It works until the value in the game becomes
true, and then if the value becomes
false again it will not resume the countdown, much less do anything else. Output was of no use or help either.
Here’s the code, could someone help me out?
local length = 300 local notif = game.ReplicatedStorage:WaitForChild("SystemMessage") local Taken = script:WaitForChild("taken") ---other variable declarations that aren't relevant to this section of code here --[[ Functions such as onTouch(), Changed(), etc. here, before the while loop. --]] function RebalanceTeams() ---- balances teams length = 300 end while not Taken.Value do if length > 0 then length = length - 1 for i,v in ipairs(game.Players:GetChildren()) do local seconds = length local minutes = (length - length%60)/60 seconds = seconds - minutes*60 local gui = v.PlayerGui.main.Frame.time gui.Text = minutes..":"..seconds end wait(1) else notif:FireAllClients("[SERVER]: The Police have successfully defended the package!",Color3.new(241,43,53)) notif:FireAllClients("[SERVER]: Game restarting...",Color3.new(241,43,53)) RebalanceTeams() end end