In roblox studio it works all the way down to 0 but when I test it on a regular game it goes down a couple of seconds then it stops. Here's the code.
while wait(3) do
for i=300, 0, -1 do
game.StarterGui.SFTimer.TextLabel.Text = ("Time left: "..i)
wait(1)
end
end

5 comments
Another solution would be to control a single IntValue with a server Script then use a LocalScript in the guis to change their text.
The script works but it waits 3 seconds then it goes down
Because you have the while wait(3) do
I changed it to while wait(1) do
Thanks for the help i appreciate it