Feature request: A pre-leave confirmation (with a “Resign” button) for active live games — so opponents aren’t left waiting

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 beforeunload confirmation.

    • 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.

3 Likes