Trivia Fun

Your bar trivia, hosted.
Join a Game โ†’
Scan the QR on the TV, or type triviafun.live on your phone.
or
No account yet? Create one โ†’
or
No account yet?

Trivia Fun Host Dashboard

Host Dashboard
Your bar. Your questions. Your game.
Room Code โ€”
Quick Start
One tap โ†’ instant lobby. Random category, 10 questions, sensible defaults. Best when you don't want to configure anything.
Game Night
Host a structured trivia event with multiple rounds, leaderboards, and breaks. Best for scheduled events with a live host.
Open Play
Self-serve trivia that runs on autopilot. Players join anytime and answer at their own pace โ€” no host required.
Emcee Night
Host-driven trivia with your own questions. Read aloud, judge answers manually, build your own format. Premium.
Practice
Test a round with bot players โ€” preview questions, timing, and flow before going live.
Question Bank
Browse, add, and generate trivia questions
All-Time Leaders
See top players across all games
๐Ÿ’ฌ Community
Lobby Open
Room Code
----
Category โ€”
Questions โ€”
Timer โ€”
Waiting for players to scan the QR codeโ€ฆ
Q 1 / 10
15
General
Answered: 0 / 0
Loadingโ€ฆ
P pause S skip E extend Space next
Emcee Round
๐Ÿ‘ฅ 0
Judging
โ†‘/โ†“ navigate ยท Space toggle ยท Enter confirm
Judging Batch
Round Complete!
Break Time
Next round starting soonโ€ฆ
10:00
SCAN TO JOIN ยท
Game Night Over!
Leaderboards
Reset leaderboard
Question Bank
Open Play Active
Room Code
----
Mode Open Play
Active Players 0
Timer 15s
Difficulty All
Round Structure Continuous
Reset leaderboard
Venue
โ€”
Room code: โ€”
Starter
Account Email
โ€”
Used to reset your password and send important account notices.
How this works

This is where password resets and important account notices get sent. Verify by clicking the link in the verification email โ€” unverified addresses still log you in, but won't receive notifications.

Change this here if you switch from a personal inbox to a shared venue address. The new address has to be re-verified before anything starts arriving.

Additional Notification Emails
โ€”
Add co-owners or managers. All verified addresses (primary + these) receive the same daily score emails and post-night recaps. Each address has to confirm via a verify link before notifications start.
How this works

Each address gets its own verify link, separate from your primary. Once verified, the address receives the same daily emails and post-night recaps as the primary โ€” no extra setup.

Useful for handing off operations to a manager or co-owner without sharing your login. Remove an address any time; recipients stop getting emails immediately.

Daily Score Emails
โ€”
Get yesterday's scores delivered each morning (~3 AM ET). Two toggles so you can pick which modes you want. Sent only on days with activity. Requires a verified Account Email (above) โ€” the toggles save either way but nothing sends until verified.
How this works

One email per morning per mode you opted into. Sends to every verified address (primary + additional). Skips days with no activity entirely โ€” no empty "0 players" emails.

Open Play covers continuous OP scoring; Game Night covers final standings from completed nights. You can turn on either or both. Defaults off so a new venue isn't surprised by an inbox of emails.

Pre-Night Smoke Test
Run before opening doors
Verifies the things that actually break a game night โ€” DB, content bank, plan quota, email, URLs.
How this works

Run this 5-10 minutes before doors open. It probes the things that actually break a live night: database health, your bank quota, email deliverability, the join URL responding correctly.

Each check returns โœ“ or โœ—. Any โœ— shows what failed and how to fix it โ€” investigate before opening. No fail = you're cleared to go.

Open Play Sync Mode
โ€”
When ON, all Open Play players see the same question at the same time, with a shared countdown. The current question shows on your /tv-op.html screen. Default OFF = each patron answers at their own pace.
How this works

Off (async, default): each patron has their own question and timer. Good for crowds that drift in and out โ€” patrons can join any time and start their own cycle.

On (sync): the whole room sees one shared question with one shared countdown, like a slow-paced trivia table game. The question + timer also render on your TV-OP screen so the room can play along together.

Takes effect on the next OP open. If OP is already running, the in-progress room converts automatically โ€” no need to close and reopen.

TV Display Orientation
โ€”
Controls how /tv-op.html renders. Use Landscape for a normal horizontal TV; switch to Portrait if you mounted the TV vertically.
How this works

Match this to how your physical TV is mounted. Landscape (default) is a normal horizontal TV; Portrait reflows the QR code, leaderboard, and ads into stacked rows instead of side-by-side for a vertical mount.

Only affects /tv-op.html (the Open Play TV). The regular game-night TV at /tv.html is always landscape.

TV Idle Display
โ€”
What /tv.html shows between game nights. The QR code is always visible.
How this works

Controls what fills the TV between game nights (when no night is running). The join QR code is always visible regardless of this setting.

This month's leaderboard keeps the screen useful between events โ€” patrons see who's leading the running tally. Last night's final standings runs an after-action victory lap the morning after a night. QR only minimizes distraction in venues that don't want a leaderboard visible.

Open Play Schedule
โ€”
Set weekly windows when Open Play should auto-start. The scheduler auto-stops when the window closes, so close your laptop and walk away.
How this works

Add one or more weekly windows (e.g., Mon-Thu 4pm-10pm). At each window's start the server opens OP automatically โ€” no host login required. When the window closes, OP stops the same way.

Set your timezone first so the windows fire at the right local time. You can still start OP manually outside scheduled hours; the schedule only controls automatic open/close.

Open Play Geofence
Off
Optional. When on, Open Play joins from outside the radius are blocked. Tap "Use my current location" while you're inside the bar.
How this works

When on, patrons must be physically near the bar to join Open Play โ€” their phone sends GPS coordinates on join, and the server rejects anyone outside the radius you set. Stops random internet players from scoring on your leaderboard.

Important: capture the center coordinate while you're physically inside the bar. Phone GPS indoors is imprecise (~100m on iOS), so seeding from home will mis-locate the fence by hundreds of meters. Doesn't affect Game Night joins โ€” only OP.

GPS accuracy on a phone is typically ยฑ20โ€“50m. Pick the radius that covers everywhere you want patrons to play from, with a buffer. Patrons outside the radius see "Not on premises" and can't join Open Play.
Can't be at the bar? Look up by address
Powered by OpenStreetMap (Nominatim). GPS capture is more accurate when available โ€” use the address path only when you can't be on-site.
Print-Ready QR Codes
Same code your TV shows during a game
Save and print for your bar. Room codes never change โ€” you only have to print these once. Print both if you ever run Open Play between game nights.
How this works

Two QR codes โ€” one for Game Night joins, one for Open Play (with the OP flag baked in). Download the PNG and use it for table tents, A-frames, or posters at the bar.

Your room code is permanent, so these QRs stay valid forever unless an admin renames the room. If that happens you'll see a yellow "QR refresh needed" banner above โ€” reprint when that appears.

๐ŸŽฎ Game Night
Patrons join the structured trivia event
URL:
๐ŸŽฒ Open Play
Self-serve trivia for walk-in patrons
URL:
Custom Logo
Pro plan
Your logo replaces "Trivia Fun" on TV & player screens.
How this works

Pro plan only. Upload your bar's logo (PNG, JPG, or WebP โ€” transparent backgrounds work best). It replaces the "Trivia Fun" wordmark in the corner of the TV display and on the player join screen, so the night feels branded for your venue.

Roughly square images (around 512ร—512) crop the cleanest; very wide or tall logos get letterboxed. Replace any time โ€” the new logo takes effect on the next page load.

No logo
Gameplay Settings
Policies that apply to every game night at this venue.
How this works

Defaults that apply to every new Game Night you open. Each setting can still be overridden inside the night-setup wizard for a one-off variation; what's here is just the starting point.

Changes save the moment you flip a toggle or pick a chip โ€” there's no separate "Save" button. They apply to the next night you open; nights already running keep their original settings.

Allow Guest Players
When off, players must create an account or log in before joining.
Minimum Display-Name Length
Blocks single-letter / blank names so scoreboards stay readable.
1
2
3
4
Vote Rerolls Per Ballot
Cap on how many times a single category ballot can be rerolled (host ๐ŸŽฒ + player vote-for-reroll share the budget). 0 turns reroll off entirely.
0
1
2
3
5
Regulars
Pro plan
Players who come back week after week.
How this works

Pro plan only. Tracks patrons by display name across every Game Night at your venue and surfaces who shows up the most. Use it to recognize loyal players, run loyalty promotions, or compare turnout week-over-week.

Recognition is by name only โ€” encourage patrons to use a consistent name (or to create an account) so they're tracked accurately. Different spellings count as different people.

Import Question Bank
Premium
Upload a JSON file of your own trivia questions. Max 500 per import. New to JSON? Download a template with example questions to edit.
How this works

Premium plan only. Upload a JSON file of your own questions to use as a custom bank. The format matches the export schema โ€” download the template for a working example you can edit.

Imported banks are scoped to your venue, so only your Game Nights and Open Play can pull from them. Great for venue-specific trivia (local history, themed nights, in-jokes about regulars). Max 500 questions per import; run multiple imports for larger banks.

โฌ‡๏ธ Download template
Organization
Premium
Group multiple locations together and share a cross-venue leaderboard.
How this works

Premium plan only. Group multiple venues you own under one organization for a shared cross-venue leaderboard and combined reporting. Most useful for chains, franchises, or pop-up tour ops running multiple bars.

Create the org from any venue you own, then add other venues to it. Each venue keeps its own room code and per-venue stats โ€” the org adds an aggregate view on top.

Refer another venue
All plans
Know another bar that'd love this? Share your link. When they upgrade to a paid plan, you get 1 month free.
How this works

Share your referral link with another venue owner. When they sign up using your code and stay on a paid plan for one month, you both get one month of plan credit applied to your next billing cycle.

Stack referrals across multiple venues for compounding credits. Available on every plan, including Starter โ€” no upgrade required to refer someone.

0
Months credited
0
Signed up
0
Upgraded
TV Ads
๐Ÿ“
Click or drag files to upload
JPG, PNG, GIF, WebP, MP4, WebM โ€” Max 50MB
Recommended: 16:9 aspect ratio (e.g. 1920ร—1080)
Upload your first ad to show between rounds
Help

The four ways to run trivia

Each home card opens a different flow. Pick the one that matches what you actually need.

๐Ÿš€ Quick Start

One tap โ†’ instant lobby. Picks a random category with at least 10 questions, sets sensible defaults (10 questions, 15s timer, 20s auto-advance, 8s reveal), and opens the lobby. Use this when you don't want to configure anything.

๐ŸŽฎ Game Night

Structured multi-round event with a live host. Configure the round queue (or use voting / emcee rounds), pick timers + breaks, optionally enable team mode, save the recipe as a template. Best for scheduled weekly trivia.

๐Ÿงช Practice

Single round with three bot players for testing on localhost. Honors all the same timer settings but no queue, no night, just one round. No data is logged to insights or recap emails.

๐Ÿ”„ Open Play

Self-serve mode that runs on autopilot. Players join anytime, no host required. Good for slower afternoon crowds or background bar entertainment. Two flavors: async (default โ€” each patron has their own question and timer) or sync (whole room sees one shared question on /tv-op.html, like a slow table game). Optionally configure rounds with breaks. Toggle and schedule live in the Venue panel โ†’ Open Play tab.

The three surfaces

Every game involves these three screens. Knowing which is which makes the rest of this doc easier to follow.

๐Ÿ“บ TV

The big screen at the bar. Two URLs depending on what's running: /tv.html for Game Night (QR + question + timer + category, reveal, leaderboards, ad rotation, break countdowns) and /tv-op.html for Open Play (QR + active-player count + leaderboard, plus the shared question overlay when OP sync mode is on). Everyone in the room looks at this.

๐Ÿ’ป Host dashboard

Your (the bartender's) iPad or laptop โ€” this page. Shows the same question + timer as the TV but with control buttons (Pause / Next / Skip / Extend / End Round / Kick player). Live vote counts per choice. After reveal: Next Question button + auto-advance countdown. Only you look at this.

๐Ÿ“ฑ Player

Each patron's phone, after they scan the QR code or visit /play?code=ROOM. Shows the question + A/B/C/D buttons (or a text input for open-ended), their live score, a rank chip, streak badges (3/5/7/10 in a row), and round/night totals during reveals. Players can join as a guest or register / Sign in with Google for cross-venue stats.

Glossary

Canonical names. If something's labeled ambiguously anywhere, these win.

Round
One set of N questions under a single category (or multi-bank). A Game Night contains multiple rounds; Practice is a single round; Open Play is continuous by default but can be configured to run rounds with breaks (Venue panel โ†’ Open Play tab โ†’ Schedule + break style).
Question / Reveal
A Question is one Q&A. After players answer (or the timer expires), the Reveal screen shows the correct answer and player results before the next question fires.
Between rounds vs. between questions
Between rounds = the gap from one round's end to the next round's start (Break or Auto-Advance โ€” mutually exclusive). Between questions = the gap from one question's reveal to the next question inside the same round (Time on Reveal).
Voting Round
A round where players vote on the next category from a slate of 4. The most-voted category wins; ties break by random pick. Switch a Game Night into voting mode via Round Selection in the setup modal.
Emcee Round
A round where the host reads questions aloud and judges answers manually instead of using the multiple-choice flow. Players type free-text answers; you approve / reject each one. Useful for picture rounds, themed rounds, anything that doesn't fit A/B/C/D.
Team Mode
Optional per-night setting. Players pick a team (2โ€“8 teams, configurable name + color) when they join; team scores aggregate from individual answers. Both individual and team standings show on the night-end screen.
Per-Question Scoreboard
Toggle in setup. When on, the TV flashes a mini scoreboard after every question (in addition to the between-rounds scoreboard). Off by default โ€” keeps the pace tight.
Open Play: Async vs Sync
Async (default) = each Open Play patron has their own question and timer, drifting in and out. Sync = the whole room sees one shared question with one shared countdown, mirrored on /tv-op.html. Per-venue toggle in the Venue panel โ†’ Open Play tab.
Geofence
Open Play-only setting that restricts joins to phones physically near the bar via GPS. Configured in the Venue panel โ†’ Open Play tab. Doesn't affect Game Night joins.

Game Night setup options

Everything you can configure in the ๐ŸŽฎ Game Night setup modal, in the order it appears.

Templates

The row at the top of the setup modal. Configure once ("Friday at Champs"), tap ๐Ÿ’พ Save current, and the next time just pick from the dropdown + Apply. When you're logged in, templates sync to your venue so the same recipe shows up on the iPad and laptop. Guests (or pre-login saves) keep templates per-device until you log in.

Round Queue (Manual Queue mode)

Build the rounds yourself: pick a category, difficulty, question count, and per-question timer for each. Drag-reorder if you want a specific running order. Categories already played in the night are skipped from voting picks if you switch later.

Player Voting mode

Skip building a queue โ€” players vote on the next category from 4 random options each round. Configure how many voting rounds total (3, 5, 8, 10, or unlimited), questions per round, and seconds per question. Mutually exclusive with the manual queue.

+ Emcee Round

Inject a host-judged round into the queue (alongside multi-choice rounds, or alone). Set a round time + name, then add free-text questions with answers. During the round, players type answers; the host approves / rejects each. Premium-tier feature.

Time on Reveal โ€” between questions
Manual ยท 5s ยท 8s ยท 12s ยท 20s ยท 30s

How long the reveal screen sits before the next question fires. Manual = host clicks Next. Any number = set-and-forget. Affects within-a-round pacing only.

Break Between Rounds โ€” long pause
None ยท 5 min ยท 10 min ยท 15 min ยท 20 min ยท custom

Dedicated break screen with a big countdown, "Up next: [Category]", night leaderboard, and ad rotation. Best for actual pauses where patrons hit the bar or bathroom. Mutually exclusive with Auto-Advance.

Auto-Advance Between Rounds โ€” short gap
Off ยท 10s ยท 20s ยท 30s ยท 45s ยท 60s ยท 90s ยท custom

Stays on the round-end scoreboard with a countdown โ€” keeps momentum without a dedicated break UI. Mutually exclusive with Break.

Per-Question Scoreboard

Toggle to show a mini scoreboard on the TV after every question (in addition to between-rounds). Off by default.

Show Ads During Breaks

Toggle whether uploaded TV ads alternate with the scoreboard during breaks. On by default. Manage ads from the home screen โ†’ ๐Ÿ“บ TV Ads.

Team Mode

Toggle on for team play. Configure 2โ€“8 teams with a name + color picker each. Players see a team picker when they join (and can switch teams between rounds). Team scores aggregate from individual answers and lead the night-end screen + recap email.

Plain-English summary of the three timers
  • Between questions (inside a round) โ†’ Time on Reveal only.
  • Between rounds โ†’ pick either Break (long, dedicated screen) or Auto-Advance (short, stays on scoreboard). Not both.
Example pacing

Break: None ยท Auto-Advance: 60s ยท Reveal: 20s

A 10-question round with 20s questions runs โ‰ˆ 7 minutes (20s answer + 20s reveal ร— 10). Three rounds with a 60s between-rounds scoreboard โ‰ˆ 23 minutes of hands-off play after you hit Start.

Tighter: 8s reveal + 30s auto-advance. Dinner-crowd: 20s reveal + 10 min Break (Auto-Advance Off).

How a game night plays out

  1. Host opens lobby โ€” TV shows the QR code + room code.
  2. Players scan and join โ€” name, avatar, optionally Sign in with Google. In team mode, they also pick a team chip.
  3. Host hits Start โ€” first round begins automatically.
  4. Each question runs for the configured time limit. Players tap A/B/C/D (or type for open-ended / emcee). Server auto-reveals the moment everyone answers, no need to wait for the timer.
  5. Reveal screen shows the correct answer + per-player results for the Time on Reveal duration. Players see "Correct!" / "Wrong!" with points + streak badges (3/5/7/10 in a row).
  6. After the last question of a round, the round-end scoreboard appears with round + night totals + (in team mode) team standings.
  7. Between rounds: Auto-Advance counts down on the scoreboard, or Break flips to a dedicated countdown screen. In voting mode, players see 4 categories to vote on.
  8. After the last round, night-end results show final leaderboard, team standings, monthly + all-time leaders, and a Share button on each player phone.

At any point the host can pause, extend time, skip a question, kick a disconnected player, or end the night early from the dashboard. A ๐ŸŽฒ Reroll button regenerates the voting slate during voting rounds.

Venue panel (logged-in)

Tap the ๐Ÿข Venue card on home. Settings are grouped across six tabs (Status, Account, Game Night, Open Play, Branding, Advanced) โ€” the venue name, plan, and room code stay visible above the tabs. Every section in the panel also has its own "How this works" expander next to the title for inline details + gotchas; the cards below are quick reference.

Always visible: Plan + room code

Above the tabs. Shows your venue name, room code, and current plan (Starter / Pro / Premium / Custom). Logged-in venues can't edit the room code from the home screen โ€” it's locked to whatever you registered with. A yellow "QR refresh needed" banner appears here if an admin renames the room code.

Status tab

Pre-flight checks. The default tab when you open the panel.

Pre-Night Smoke Test

Tap โ–ถ Run smoke test 5โ€“10 minutes before opening doors. Returns a colored checklist: server reachable, plan quota state, content bank loaded, recovery email status, Resend configured, TV + player URLs. Catches "is this thing actually going to work tonight?" in 1 second.

Account tab

Email, notifications, and the referral program.

Account Email

Add an email + verify it (we send a one-click link). Required for the "Forgot password?" reset flow. Verification is required before notifications start arriving โ€” unverified addresses still let you log in, but won't get emails. Switch to a shared venue inbox here and re-verify when you hand off to a manager.

Additional Notification Emails

Add co-owners or managers. Each address gets its own verify link; once verified, they receive the same daily score emails + post-night recaps as the primary. Remove any time โ€” recipients stop getting emails immediately.

Daily Score Emails

Get yesterday's scores delivered each morning (~3 AM ET). Two independent toggles: Open Play covers continuous OP scoring; Game Night covers final standings from completed nights. Days with no activity skip the email entirely โ€” no empty "0 players" mail. Defaults off; opt in to whichever modes you actually want a digest for.

Refer another venue

Share your referral link with another venue owner. When they sign up using your code and stay on a paid plan for one month, you both get one month of plan credit applied to your next billing cycle. Available on every plan including Starter; stack referrals for compounding credits.

Game Night tab

Defaults and insights for the structured, host-driven mode.

Gameplay Settings

Per-venue policies that apply to every new Game Night you open: Allow Guest Players (off = require login) and Min Display Name Length (1โ€“4, blocks one-letter names). Each setting can still be overridden inside the night-setup wizard for a one-off variation; what's here is just the starting point.

TV Idle Display

Controls what /tv.html shows between game nights (when no night is running). Three modes: This month's leaderboard (default, keeps the TV useful between events), Last night's final standings (after-action victory lap the morning after), QR only (minimal โ€” just the join code). The join QR is always visible regardless.

Regulars (Pro+)

Tracks repeat patrons across nights. Shows total visits, last seen, and lifetime score for each. Recognition is by display name only โ€” encourage patrons to use a consistent name (or create an account) for accurate tracking.

Team Performance

Per-team rollup of points across every team-mode night you've run. Hidden until you run at least one team-mode night. Useful for league seasons where teams compete across multiple weeks โ€” pulls from the team-name field, so consistent team names link results.

Question Insights

Hardest 5 + easiest 5 questions at this venue, ranked by % correct across all plays. Filtered to questions with at least 3 plays so a one-off fluke doesn't dominate. Updates live after every reveal; hidden until your venue has tracked data.

๐Ÿšฉ Flagged Questions

Questions your patrons reported during a game (via the small flag icon on the question screen). For custom-bank questions you own, edit or delete inline; for shared-bank questions, dismiss to clear the flag โ€” repeated cross-venue flags get reviewed centrally for global removal. The section hides itself when you have zero flags.

๐ŸŽ™๏ธ Emcee Insights

Per-question stats from emcee rounds โ€” how often you scored an answer correct vs. wrong, response time. Tracking is keyed on the question text, so reusing the same wording (or loading from a saved template) makes stats accumulate over time. Useful for spotting questions where your scoring criteria may need refining. Hidden until you've run at least one trackable emcee round.

Open Play tab

Self-serve OP configuration: how patrons join, when it runs, and the shared TV.

Open Play Sync Mode

Default off (async): each patron has their own question and timer. Switch on (sync) and the whole room sees one shared question with one shared countdown, mirrored on /tv-op.html โ€” like a slow-paced trivia table game. Takes effect on the next OP open; if OP is already live, the in-progress room converts automatically.

TV Display Orientation

Match this to how your physical TV is mounted: Landscape (default) is a normal horizontal TV; Portrait reflows the QR, leaderboard, and ads into stacked rows for a vertical mount. Only affects /tv-op.html; the Game Night TV at /tv.html is always landscape.

Open Play Schedule

Add weekly windows where OP starts and stops on its own each week (e.g., Mon-Thu 4pm-10pm). The server boots OP at the start of each window and ends it at the close โ€” no host login needed. Set your timezone first so windows fire at the right local time. Manual starts outside scheduled hours still work.

Open Play Geofence

Optional. When on, OP joins must be physically near the bar โ€” patrons' phones send GPS on join and the server rejects anyone outside the radius. Stops random internet players from scoring on your leaderboard. Important: capture the center coordinate while you're physically inside the bar โ€” indoor phone GPS is ~100m off, so seeding from home will mis-locate the fence. Doesn't affect Game Night joins.

Branding tab

Logo and the print-ready QR codes patrons scan.

Custom Logo (Pro+)

Upload a PNG/JPG/WebP logo (transparent backgrounds look best) to replace "Trivia Fun" branding on the TV and player join screens. Roughly square (around 512ร—512) crops cleanest; very wide or tall logos get letterboxed. Pro plan unlocks branding.

Print-Ready QR Codes

Two high-res QR PNGs: one for Game Night joins, one for Open Play (with the OP flag baked in). Save and print on coasters / table tents / posters. Room codes never change โ€” print these once. If an admin ever renames the room, a "QR refresh needed" banner appears above the tabs and you'll need to reprint.

Advanced tab

Custom banks, multi-venue orgs, and the upgrade CTA.

Import Question Bank (Premium)

Upload a JSON file of your own questions as a custom bank โ€” format matches the export schema; download the template for an editable example. Imported banks are scoped to your venue (only your Game Nights and OP can pull from them). Max 500 questions per import; run multiple imports for larger banks.

Organization (Premium)

Group multiple venues you own under one organization for a shared cross-venue leaderboard and combined reporting. Each venue keeps its own room code and per-venue stats; the org adds an aggregate view on top. Most useful for chains, franchises, or pop-up tour ops running multiple bars.

Unlock More Features

The upgrade card. Hidden when you're already on the highest tier you can buy. Shows the next-plan benefits and pricing inline โ€” no separate billing page needed.

Player experience

What happens on the patron's phone.

Joining
Scan the QR or visit /play?code=ROOM. Pick a name + avatar (or save favorites). Optionally tap Log in or register to set up a player account โ€” emails verified, password resettable, Google sign-in supported. In team-mode lobbies, pick a team chip. Open Play joins use a separate QR (with &openplay=1) so a scanner lands directly in OP mode; if geofence is on, the patron's phone is asked for GPS permission at join time.
Streaks
3 / 5 / 7 / 10 correct in a row triggers a celebration badge (๐Ÿ”ฅ / ๐Ÿš€ / โšก / ๐Ÿ‘‘) with a longer haptic pulse. One wrong / timeout resets the count.
Reclaim after disconnect
Each player gets a reclaim token stored in localStorage. Within 3 minutes of disconnect they can rejoin and pick up their score. After 3 minutes they're dropped from the room. The Reconnecting overlay handles refreshes mid-game.
My Stats
Logged-in players tap "๐Ÿ“Š My Stats" to see rounds played, total points, best single-round score, and this-month rank at every venue they've played at.
Reporting bad questions
After answering, each player gets a ๐Ÿšฉ Report bad question button. Reports show up in the host's Venue panel โ†’ Game Night tab โ†’ ๐Ÿšฉ Flagged Questions section, where the host can edit (custom banks) or dismiss (shared banks).

After the night ends

Recap email

Auto-fires on night-end. Your verified Account Email (plus any verified additional notification addresses) gets a venue summary โ€” top 3 + team standings if applicable. Each registered + verified player who participated also gets a personalized recap (their rank, score, top 3 of the night). Guests and unverified players are skipped so inboxes stay clean.

Insights update

Every reveal during the night feeds the Question Insights card in your Venue panel. Hardest / easiest lists refresh automatically.

Quick answers

How do I change the default timers for future game nights?
Just tweak them in the Game Night setup modal โ€” your last selections persist as defaults for next time on the same device. For repeatable setups that follow you across devices, save a Template at the top of the modal (logged-in venues sync templates to the server).
Why didn't my round auto-advance?
Either your category queue has only one round (after the last round, the night ends instead), or the round isn't part of a queued game night (Practice and ad-hoc rounds honor Reveal timing but don't chain into another round).
Can a player rejoin after their phone dies?
Yes โ€” within 3 minutes. Each player gets a reclaim token in localStorage; rejoining within the window picks up their score. After 3 minutes they're dropped.
What happens if I push new questions to the content bank mid-night?
Nothing โ€” the running game uses questions loaded at round-start. New content lands on the next deploy boot.
Can players see the same question twice in a multi-bank round?
No. The server dedups by normalized question text at selection time, so a question that lives in multiple themed banks only appears once per round.
Can players switch teams mid-night?
Yes. The team picker stays available between rounds โ€” they tap a different chip. Their existing score moves with them, and team standings recompute live.
Does my venue + game data survive deploys?
Yes. The SQLite database lives on a persistent volume; container replacements re-mount the same data. Schema migrations are idempotent and additive โ€” no destructive changes. Mid-night deploys also restore active room state from snapshots.
How do I take over a venue handed off to a new bartender?
New bartender logs in with the room code + password, opens the Venue panel, sets their email under Account tab โ†’ Account Email, clicks the verify link in their inbox. From then on Forgot Password? routes resets to their address. (Note: when they reset the password, the previous one stops working โ€” that's the handoff.)