SORTIEDOCUMENTATION
CONTENTSPvP

PvP

Matchmaking

A single global queue object, polled over HTTP rather than held open on a socket. Polling survives a tab switch, and a queue is not a place you should have to stare at.

The waiter takes seat 0 and moves first. Tickets are one-shot and expire after 120 seconds; a waiter who stops polling is swept after 45.

The queue is credential-gated. Knowing another player's id is not enough to queue or leave under it: the queue forwards your key to your player object and asks whether you are you.

When nobody comes

If no human pairs within 30 seconds, you are dropped into a fight against the Nemesis, the hardest bot in the game: a clean AF-05 with no dilution at all.

It is dressed as an ordinary pairing on purpose. The match gets a queue-shaped id, no telltale parameters, and the header shows the same thing it would for a real pairing. The instruction rides in session storage keyed by that match id, so the address bar gives nothing away.

Expect to lose. Measured win rates against it are roughly 16 per cent for a starting pilot and 65 for a fully kitted flagship.

Going dark

A versus seat that disconnects and does not come back within 30 seconds forfeits. The close is recorded, a rejoin clears it, and an alarm awards the match to whoever stayed.

Solo matches are exempt. The house never disconnects.

The lobby offers a way back into a match still in progress, so a refresh or a closed tab is recoverable rather than a loss.

Playing with someone you know

The match code flow still exists, but the code is issued rather than invented. Create asks the server for one, you share it, the other player pastes it in.

A code nobody was given carries no signature and simply will not open. Match ids are HMAC-signed, and the match server rejects an unsigned id on the first line of its request handler, so a hand-typed ?id= cannot even be used to probe whether a match exists.