Hi, I’m just wondering where to put a wait() or task.wait() unction to pause the timer. I’ve tried putting it in multiple places, but the timer keeps counting. I’ve added a comment on the places I’ve tried to put it.
while true do
--I've tried to add it here
minutesvalue.Value = minutes
secondsvalue.Value = seconds
repeat
--Here.
if secondsvalue.Value <= 0 then
--Here too. Didn't work.
minutesvalue.Value = minutesvalue.Value - 1
secondsvalue.Value = 59
else
secondsvalue.Value = secondsvalue.Value - 1
end
wait(1)
if secondsvalue.Value <= 0 and minutesvalue.Value <= 0 then
game.Workspace.Ref.RefWhistle:Play()
anim:Play()
game.Workspace.Ref.GameOver:Play()
game.Workspace.Gameover:FireAllClients()
local red = game.Workspace.RedPoints
local blue = game.Workspace.BluePoints
local redwin = red.Value > blue.Value
local bluewin = blue.Value > red.Value
local tie = blue.Value == red.Value
if redwin == true then
game.Workspace.RedPoints.Value = 0
game.Workspace.BluePoints.Value = 0
game.Workspace.RedWins:FireAllClients()
for i, v in pairs(game.Teams.Red:GetPlayers()) do
v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value = v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value + 1
end
end
if bluewin == true then
game.Workspace.BlueWins:FireAllClients()
game.Workspace.RedPoints.Value = 0
game.Workspace.BluePoints.Value = 0
for i, v in pairs(game.Teams.Blue:GetPlayers()) do
v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value = v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value + 1
end
end
if tie == true then
game.Workspace.RedPoints.Value = 0
game.Workspace.BluePoints.Value = 0
game.Workspace.TieGame:FireAllClients()
end
for i, v in pairs(game.Players:GetPlayers()) do
v.Character.HumanoidRootPart.CFrame = workspace.LobbyPart.CFrame
end
wait(60)
game.Workspace.Ball.Position = Vector3.new(-2.5, 3.799, -4.5 )
resetRed()
resetBlue()
game.Workspace.Ref.RefWhistle:Play()
end
until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
end
if you want the timer to be paused before each round then putting the wait([number]) at line 2 or 5 should work
im not quite sure what you are trying to do
How about using for loops instead for round timers? I believe that for loops would work better with round timer or time in general. (from my experience)
Here maybe try:
while wait( time ) do ?
Hope this helps you somehow.
VALUE.Changed:Connect(function()
while VALUE == true do
-- your code
end
end)
-- something that changes the VALUE boolean to true or false, it can be a boolean value object too
If that doesn’t work then try to mess with booleans
like
local stoptimer = false
repeat
workspace.BluePoint.OnServerEvent:Connect(function()
stoptimer = true
end)
if stoptimer then
wait(10)
end
stoptimer = false
--Code
until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
while true do
--I've tried to add it here
minutesvalue.Value = minutes
secondsvalue.Value = seconds
repeat
--Here.
if secondsvalue.Value <= 0 then
--Here too. Didn't work.
minutesvalue.Value -= 1
secondsvalue.Value = 59
else
secondsvalue.Value -= 1
end
wait(1)
if secondsvalue.Value <= 0 and minutesvalue.Value <= 0 then
game.Workspace.Ref.RefWhistle:Play()
anim:Play()
game.Workspace.Ref.GameOver:Play()
game.Workspace.Gameover:FireAllClients()
local red = game.Workspace.RedPoints
local blue = game.Workspace.BluePoints
local redwin = red.Value > blue.Value
local bluewin = blue.Value > red.Value
local tie = blue.Value == red.Value
if redwin == true then
game.Workspace.RedPoints.Value = 0
game.Workspace.BluePoints.Value = 0
game.Workspace.RedWins:FireAllClients()
for i, v in pairs(game.Teams.Red:GetPlayers()) do
v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value = v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value + 1
end
end
if bluewin == true then
game.Workspace.BlueWins:FireAllClients()
game.Workspace.RedPoints.Value = 0
game.Workspace.BluePoints.Value = 0
for i, v in pairs(game.Teams.Blue:GetPlayers()) do
v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value = v:FindFirstChild("leaderstats"):FindFirstChild("Wins").Value + 1
end
end
if tie == true then
game.Workspace.RedPoints.Value = 0
game.Workspace.BluePoints.Value = 0
game.Workspace.TieGame:FireAllClients()
end
for i, v in pairs(game.Players:GetPlayers()) do
v.Character.HumanoidRootPart.CFrame = workspace.LobbyPart.CFrame
end
task.wait(60)
game.Workspace.Ball.Position = Vector3.new(-2.5, 3.799, -4.5 )
resetRed()
resetBlue()
game.Workspace.Ref.RefWhistle:Play()
end
until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
task.wait() -- to prevent crashing
end