✓ Accepted answer
The problem is that 'countPlayers' will always be the same because you're not defining it inside the loop. So if, initially, 'countPlayers' wasn't less than or equal to one then it will never change.
Also, you cannot change a property from a variable directly. If you set a variable to a property, the variable becomes 'read only'. Set 'waitText' to the TextLabel, not the Text property of it.
And I have no idea what you were doing with the GetPlayerFromCharacter method.
local num = 1
waitText = workspace.mainGui.lobbyWait.TextLabel
while wait() do
local countPlayers = game.Players.NumPlayers
if countPlayers <= num then
waitText.Text = "testing, testing, 123"
end
end