So this is the script i made to get the gui to appear, start at 30, and count down to 1, though it doesn't work. In the startergui i got a screengui named "Intermission" which inside of it has a text label named "Countdown". Does anyone have any explanation to why it doesn't work?

wait(5)
for i,v in pairs(game.Players:GetPlayers()) do
    v.PlayerGui.Intermission.Countdown.Visible = true
end
for i = 30,1,-1 do
    for i,v in pairs(game.Players:GetPlayers()) do 
        v.PlayerGui.Intermission.Countdown.Text = "Intermission: " ..i
    end
    wait(1)
end
for i,v in pairs(game.Players:GetPlayers()) do  
    v.PlayerGui.Intermission.Countdown.Visible = false
end