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
- Configure your bingo settings on the configuration page.
- Copy the full URL from your browser's address bar.
- Send it to anyone via message, email, social media, etc.
How It Works for the Recipient
- The recipient clicks the link.
- If they haven't verified their age, they are redirected to the age check page — the
configparameter is preserved through the redirect. - After age verification, they land on the configuration page with your settings pre-loaded.
- They can further adjust settings or start the game immediately.
Compact Encoding
The URL uses compact property names to keep the URL short:
| Compact Key | Full Property | Type |
|---|---|---|
minB | minBallSlaps | number |
maxB | maxBallSlaps | number |
eE | edgesEnabled | boolean |
minE | minEdges | number |
maxE | maxEdges | number |
crE | cockRingsEnabled | boolean |
numC | numCockRings | number |
crBP | cockRingBallsPercent | number |
bpE | buttPlugEnabled | boolean |
bpS | buttPlugSizes | comma-separated string |
bgE | ballGagEnabled | boolean |
ncE | nippleClampsEnabled | boolean |
cs | cardSize | number |
bg | bingoGoals | comma-separated string |
The compact JSON is then Base64-encoded for safe URL transport.
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
| Data | Description |
|---|---|
| Board layout | The complete bingo board with all cell types, values, and positions |
| Drawn balls | The list of all balls drawn so far, in order |
| Marked cells | Which cells have been marked (drawn + confirmed) |
| Pending confirmation | If a confirmation is pending, the ball and its details |
| Game start time | The timestamp when the game was started |
| Game end time | The timestamp when the game ended (if applicable) |
| Game ended flag | Whether the game has ended |
| Bingo achieved flag | Whether bingo was achieved |
| Achieved goals | Which specific goals were achieved |
| Configuration snapshot | The configuration used to start this game |
Session Resume
If you accidentally close the browser or refresh the page during a game:
- Navigate back to
https://bingo.fapstats.com/game. - Your game state is automatically restored — the board, drawn balls, and all progress are intact.
- You can continue drawing balls from where you left off.
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
localStorageforbingo.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
| Data | Storage Method | Persistence |
|---|---|---|
| Age verification | localStorage (age_verified) | Until localStorage is cleared |
| Language preference | Cookie (language) | Browser cookie lifetime |
| Cookie consent | Cookie (cookie_consent) | 180 days |
| Bingo configuration | localStorage (Pinia persist) + URL config param | Until reset or localStorage cleared |
| Game state | localStorage (Pinia persist) | Until new game started or game reset |
| Authentication | Supabase session (cookies) | Session-based |