Robust's default is game.auto_pause_empty=true. We never overrode it on the box. When the last player disconnected from an InRound server, BaseServer set IGameTiming.Paused=true, the simulation tick loop skipped, and CurTime stopped.
The shuttle auto-call lives in RoundEndSystem.Update. That update does not run while time is paused. The empty round did not end. The next person to connect walked into whatever had been sitting there, frozen, for as long as the box had been empty.
We hit this as the round-169 stall. It was not a hang. The engine paused an empty server on purpose, and our round-end timer never saw another tick.
What we shipped
The fix is SolreignEmptyRoundAutopauseGuard, a GameShared hook. It runs on FramePreEngine, which still fires when the simulation is paused. Entity-system updates do not; that is why the hook is not an EntitySystem.
It force-unpauses only when all of these are true: the Solreign CVar solreign.empty_round_autopause_guard.enabled is on, the run level is InRound or PostRound, no connected sessions, and timing is already paused. That CVar defaults on. Empty lobby stays paused. Lobby idle is fine.
This is not a new deploy today. It shipped on 2026-08-19 as Solreign_update_20260819-191322Z, commit 5dda7b8217383a5ef3d0604f87f2e316918547ab. That is the build the live box is running. It is one commit ahead of origin/master. Shipping master as it stands would take the guard back out.
What this post is not
Dev blog 9 went out on 2026-08-02, about a noticeboard 31 to 59 tiles from the door on five maps. That board has not moved. This post is the missing note for a change that has been live since 2026-08-19. We did not write it up in August.
We do not have a count of how many empty rounds the guard has unpaused. The box does not log that, so we are not going to guess.
The server is up. If you join an empty station, time on that round is supposed to keep moving now.