function Start() for i = 10, 0, -1 do game.StarterGui.Intermission.TextLabel.Text = "Game beginning in "..i wait(1) end end while true do if game.Players.NumPlayers >= 3 then wait(1) Start() end wait() end
If you're testing it as a player, that's because what is in the StarterGui does not automatically update with every player. The StarterGui is what's replicated into a player's PlayerGui when they spawn. Here is an edited version of your script:
function Start() for i = 10, 0, -1 do for i, player in pairs(game.Players:GetPlayers()) do if player:FindFirstChild("PlayerGui") and player.PlayerGui:FindFirstChild("Intermission") then player.PlayerGui.Intermission.TextLabel.Text = "Game beginning in "..i end end wait(1) end end while true do if game.Players.NumPlayers >= 3 then wait(1) Start() end wait() end
StarterGui is just a container for GUIs. Whenever a player spawns, the ROBLOX engine automatically makes a copy of everything in StarterGui and pastes it into the Player's PlayerGui object. That's why you don't see any affect when you change the properties of an object in StarterGui.