Repository navigation
Game Mode Deck Mode
- Number of questions = number of players in the session.
- Each player gets one "vote-card" per other player — once you vote for someone, that card is spent and you can't vote for them again this game.
- The host can turn off choosing to abstain while you still have valid cards left — but once your deck is empty, abstaining is automatic and can't be blocked.
- Changing an already-cast vote gives you the card back.
See Core Rules for what applies no matter the mode.
This is the mode built around the "digital vote card" idea — everyone gets exactly one shot at voting for each other player, no more.
The deck. When the game starts, every player is dealt one card per other player — in a 5-player game, everyone has 4 cards. Playing a card against someone (voting for them on a question) spends it; you can't play it again. This is what "restricting the number of questions to the group size, no repeat votes" means in practice.
Question count. Fixed at exactly the number of players — a 5-player game runs 5 questions, no more, no fewer, and the host can't change this number in this mode (that's the point: it maps directly to the deck).
Changing your mind. If you vote for someone and then change your
answer before that question's batch is tallied, the original card is
returned to your deck (marked unused again) and the new one gets spent
instead — you're never penalized for switching. See submitVote in
voting.ts if you want the exact transaction; the short version is it's
always safe to change your mind.
Voluntary vs. forced abstaining. This is the one mode where the host has a real choice to make, and it's the specific piece of logic this project was built to handle carefully:
- By default, you can abstain any time you want, same as any other mode.
- The host can turn that off (
allowVoluntaryAbstain: false) — while you still have unused cards, you're expected to play one, not skip. -
But once your deck is fully spent, you have no legal target left —
and abstaining then is always allowed, regardless of that setting.
There's no version of this game where you're locked out of the round
entirely just because you ran out of people to vote for. The two cases
are tracked separately server-side (
isAutoAbstainvs. a voluntary skip) precisely so this distinction is enforced correctly, not as an edge case that might slip through.
In a full game, everyone will eventually run out of cards near the end regardless of the abstain setting — the toggle only controls whether players with cards left can skip early.
Good fit for: groups who want to guarantee everyone gets spread across the group instead of a few people racking up every vote — no "safe favorite" to keep voting for question after question.