Child of #483. The biggest workflow hole, found by walking the flow rather than the code.
Pilot::velocidrone_id is what seats a pilot — activate takes account uids — and until now there
was no way to discover one. The game does not show the account ID anywhere on screen, so the field
gating the whole seating path was in practice unfillable. #484 landed a stopgap: the Director prints
the room roster to its log on connect. That is the information at the cost of one line; this is the
real fix.
getpilots → pilotlist is the only frame pairing a player name with a uid, and the
connection already holds it in its readback.
Wanted (Ryan's note, 2026-09-07):
- surface the room roster on the Velocidrone timer;
- import a lobby player as a pilot when their uid is not already assigned to one;
- pick which of the lobby's pilots are racing (this is what the roster already is);
- an option to auto-mark lobby pilots present, with manual add/remove — the RD's own Velocidrone
client sits in the lobby and does not fly, so it must be removable.
Watch out for: getpilots is MULTI_PLAYER_HOST gated and dropped in silence otherwise, so
"no roster" must be reported as "we could not ask" rather than "the room is empty"; and the sim
serves only its newest connection, so an import must not be attempted from a second socket.
Child of #483. The biggest workflow hole, found by walking the flow rather than the code.
Pilot::velocidrone_idis what seats a pilot —activatetakes account uids — and until now therewas no way to discover one. The game does not show the account ID anywhere on screen, so the field
gating the whole seating path was in practice unfillable. #484 landed a stopgap: the Director prints
the room roster to its log on connect. That is the information at the cost of one line; this is the
real fix.
getpilots→pilotlistis the only frame pairing a player name with a uid, and theconnection already holds it in its readback.
Wanted (Ryan's note, 2026-09-07):
client sits in the lobby and does not fly, so it must be removable.
Watch out for:
getpilotsisMULTI_PLAYER_HOSTgated and dropped in silence otherwise, so"no roster" must be reported as "we could not ask" rather than "the room is empty"; and the sim
serves only its newest connection, so an import must not be attempted from a second socket.