Status: needs triage (feature / epic — client + server)
Summary
When matchmaking finds a match, the client auto-joins the lobby immediately (match_found → auto-join in the matchmaking dispatch, BalatroMultiplayerAPI api/matchmaking/dispatch.lua) and drops straight into the ban phase. There is no confirmation step, so a player who queued and walked away is silently committed, and neither player can decline.
Proposal
On match found, present both players an accept prompt with a countdown instead of auto-joining. Both accept → proceed to the ban phase. One declines, or the timer expires → the match is cancelled. Server-authoritative (the server owns matchmaking and would hold the pending-accept state).
Open questions
- Timer length. Baseline ~30s. Idea: scale the accept window with time spent in queue (a 30-minute queue earns a longer window than a 30-second one).
- What happens to the player(s) who accepted when the other declines/times out — auto-requeue (ideally at the front) vs back to menu. Leaning auto-requeue.
- Penalty for declining/timing out — TBD. Accept happens before bans, so no matchup is visible to dodge; the only thing being caught is AFK/timeout. Possibly a light escalating cooldown on repeated timeouts only.
- Either player can also cancel out of this state.
Leaving after accepting is tracked separately: Balatro-Multiplayer/BalatroMultiplayerAPI-Server#38
Status: needs triage (feature / epic — client + server)
Summary
When matchmaking finds a match, the client auto-joins the lobby immediately (
match_found→ auto-join in the matchmaking dispatch, BalatroMultiplayerAPIapi/matchmaking/dispatch.lua) and drops straight into the ban phase. There is no confirmation step, so a player who queued and walked away is silently committed, and neither player can decline.Proposal
On match found, present both players an accept prompt with a countdown instead of auto-joining. Both accept → proceed to the ban phase. One declines, or the timer expires → the match is cancelled. Server-authoritative (the server owns matchmaking and would hold the pending-accept state).
Open questions
Leaving after accepting is tracked separately: Balatro-Multiplayer/BalatroMultiplayerAPI-Server#38