I have a script for a progress bar. The script is supposed to add 0.1 to the seconds total every 0.1 seconds up until 30 seconds. The seconds value is used to change the size of a progress bar on screen. The first time it is activated, this works perfectly. The progress bar goes up until it fills. Activating it again is supposed to reset it to zero seconds and fill up again. It does this, but it goes twice as fast as before. This makes it take 15 seconds to fill up instead of 30. Activating a third time makes it go even faster and so on. Here is the code I used.
local gui = script.Parent
local event = game.ReplicatedStorage.WallTime -- event that activates script
local frame = gui.Frame
local frame2 = frame.Frame
local seconds = 0
local ready = game.ReplicatedStorage.Ready -- event that is activated after progress bar fills
event.Event:Connect(function()
seconds = 0
repeat
wait(0.1)
seconds = (seconds + 0.1)
until
seconds == 30
end)
event.Event:Connect(function()
frame2.Size = UDim2.new(0, 0, 1, 0)
repeat
frame2.Size = UDim2.new(seconds/30, 0, 1, 0)
wait()
until
frame2.Size == UDim2.new(1, 0, 1, 0)
ready:Fire()
end)
