Could do something like this.
mgr_game := class(creative_device):
@editable MinimumActivePlayers : int = 4
RoundEndedEvent : event() = event(){}
OnBegin<override>()<suspends>:void=
GameLoop()
GameLoop()<suspends>:void=
loop:
AwaitMinimumPlayerCount()
StartRound()
RoundEndedEvent.Await()
StartRound():void=
block{}
AwaitMinimumPlayerCount()<suspends>:void=
loop:
Sleep(1.0)
ActivePlayers :=
for:
Player:GetPlayspace().GetPlayers()
Player.IsActive[]
Player.GetFortCharacter[].IsActive[]
do:
Player
if(ActivePlayers.Length >= MinimumActivePlayers):
break