Skip to main content

Sharing & Persistence

Fapstats Bingo offers multiple mechanisms to save your settings, resume interrupted games, and share configurations with others.


Configuration Persistence

Your bingo configuration is persisted in two ways simultaneously:

1. Local Storage (Automatic)

All configuration settings are stored in your browser's localStorage using Pinia with the pinia-plugin-persistedstate plugin.

  • When saved: Every time you change any setting on the configuration page, it is instantly saved.
  • When loaded: When you return to the site, your last configuration is automatically restored.
  • How to clear: Use the "Reset to Defaults" button on the configuration page, or clear your browser's localStorage.

2. URL Parameter (Automatic)

Your configuration is also encoded into the URL as a config query parameter.

  • Format: The configuration is serialized to JSON using compact property names, then Base64-encoded.
  • Example URL: https://bingo.fapstats.com/?config=eyJtaW5CIjo1LCJtYXhCIjozMCwiY3MiOjV9
  • When updated: Every time you change any setting, the URL is updated via history.replaceState() (no page navigation occurs).
  • Priority: When both a URL config and a localStorage config exist, the URL config takes priority.

URL Configuration Sharing

The URL-based configuration makes it easy to share your exact settings with someone else.

How to Share

  1. Configure your bingo settings on the configuration page.
  2. Copy the full URL from your browser's address bar.
  3. Send it to anyone via message, email, social media, etc.

How It Works for the Recipient

  1. The recipient clicks the link.
  2. If they haven't verified their age, they are redirected to the age check page — the config parameter is preserved through the redirect.
  3. After age verification, they land on the configuration page with your settings pre-loaded.
  4. They can further adjust settings or start the game immediately.

Compact Encoding

The URL uses compact property names to keep the URL short:

Compact KeyFull PropertyType
minBminBallSlapsnumber
maxBmaxBallSlapsnumber
eEedgesEnabledboolean
minEminEdgesnumber
maxEmaxEdgesnumber
crEcockRingsEnabledboolean
numCnumCockRingsnumber
crBPcockRingBallsPercentnumber
bpEbuttPlugEnabledboolean
bpSbuttPlugSizescomma-separated string
bgEballGagEnabledboolean
ncEnippleClampsEnabledboolean
cscardSizenumber
bgbingoGoalscomma-separated string

The compact JSON is then Base64-encoded for safe URL transport.

tip

If you want to create a "recommended setup" for friends or communities, just configure your preferred settings and share the URL.


Game State Persistence

The entire game state is also persisted in localStorage via Pinia's persistence plugin:

What Is Saved

DataDescription
Board layoutThe complete bingo board with all cell types, values, and positions
Drawn ballsThe list of all balls drawn so far, in order
Marked cellsWhich cells have been marked (drawn + confirmed)
Pending confirmationIf a confirmation is pending, the ball and its details
Game start timeThe timestamp when the game was started
Game end timeThe timestamp when the game ended (if applicable)
Game ended flagWhether the game has ended
Bingo achieved flagWhether bingo was achieved
Achieved goalsWhich specific goals were achieved
Configuration snapshotThe configuration used to start this game

Session Resume

If you accidentally close the browser or refresh the page during a game:

  1. Navigate back to https://bingo.fapstats.com/game.
  2. Your game state is automatically restored — the board, drawn balls, and all progress are intact.
  3. You can continue drawing balls from where you left off.
warning

Starting a new game (clicking "Start Game" on the configuration page) overwrites the persisted game state. There is no "save slot" system — only one game can be in progress at a time.


Data Reset

There are several ways to clear persisted data:

Reset Configuration Only

  • Click "Reset to Defaults" on the configuration page.
  • This resets all settings to factory defaults but does not clear the game state.

Reset Game State

  • Click the Fapstats Bingo logo in the header or footer.
  • This calls gameStore.resetGame() which clears the board, drawn balls, timer, and all game progress.
  • You are navigated back to the configuration page.

Start a New Game

  • On the session statistics page, click "Start New Game".
  • This calls gameStore.$reset() which fully resets the game store to its initial state.
  • You are navigated to the configuration page.

Clear All Data

  • Clear your browser's localStorage for bingo.fapstats.com.
  • This removes all persisted configuration and game state.
  • On next visit, you will start fresh with default settings and the age verification will need to be repeated.

Storage Summary

DataStorage MethodPersistence
Age verificationlocalStorage (age_verified)Until localStorage is cleared
Language preferenceCookie (language)Browser cookie lifetime
Cookie consentCookie (cookie_consent)180 days
Bingo configurationlocalStorage (Pinia persist) + URL config paramUntil reset or localStorage cleared
Game statelocalStorage (Pinia persist)Until new game started or game reset
AuthenticationSupabase session (cookies)Session-based