Please add a confirmation prompt shown before a player leaves the page of an active live/blitz game (closing/reloading the tab, or navigating away within OGS), offering “Stay”, “Leave anyway”, and “Resign”.
The core problem (from the opponent’s side)
Today, if a player accidentally leaves an in-progress live game, the opponent — who did nothing wrong — is left with a passive, frustrating experience: they can only sit and wait. They wait for the clock, or wait out the anti-escaping timer and then have to manually end the game. The whole burden of resolving an accidental departure falls on the innocent player. That’s a poor UX.
A single confirmation before leaving would prevent most accidental departures, and the “Resign” option ends the game instantly for the cases where the player really does want to go — so the opponent never has to just sit there waiting.
What already exists (and why this is different)
I’m aware OGS already has the non-dismissible “you left a live game” notification and the anti-escaping behavior (opponent can end the game ~30s after someone leaves). But both are reactive — they only kick in after the departure, and still leave the opponent waiting and doing the manual work. This request is the missing preventive piece. A similar idea appeared inside Help with escapers but was never opened as its own request.
Proposed behavior
-
While you are a player in an in-progress live/blitz game:
-
Closing/reloading the tab → standard browser
beforeunloadconfirmation. -
In-app navigation away from the board → a modal, e.g.:
“You have a live game in progress. Leaving may cause you to lose on time — and your opponent will be left waiting.”
[ Stay ] [ Leave anyway ] [ Resign ]
-
-
“Resign” ends the game cleanly and immediately, sparing the opponent the wait.
Scope / edge cases
-
Correspondence games: no prompt — leaving is expected.
-
Only for games where the user is an actual player (not spectating/reviewing).
-
Not shown once the game is finished.
-
Non-naggy: a single, dismissible confirmation (optionally one-time or slightly delayed, per the escapers thread), not a repeated pop-up.
-
Two technical paths: tab-close =
beforeunload; in-app navigation = SPA route guard.
Why it’s worth it
-
Fewer accidental timeout losses.
-
Opponents aren’t left passively waiting on someone who bailed — the resign path resolves it instantly.
-
Complements the existing anti-escaping system rather than replacing it.