Five of a Kind

Room setup

Choose any combination of the Color, Shape, and Shading Trait types, including none. The three independent toggles start enabled, with miniature previews of their traits. Selected rows use a full-opacity amber highlight, while unselected rows are faded like the inactive Game ends after choice. The live deck count is 31 + number of enabled trait types: 3 cards for none, 9 for one, 27 for two, and 81 for all three. Also choose three, four, or five Card slots, a Previous cards setting of Keep shown or Mask with ?, an Empty card chance of 0%, 2%, 5%, 10%, or 20%, Trait counting to 5 of Matching or Non-matching when a trait type is enabled, a Trait hint of None or Availability only, a Starting card interval of 1, 2, or 3 seconds, 2, 3, or 5 seconds to choose a trait after claiming, and a Failed claim lockout of None or 1–5 rounds. When every trait type is off, Trait counting to 5 changes to Anything, while the Time to choose a trait label is dimmed and its blank dropdown is disabled. The Game ends after box has three dropdowns: a maximum time of 1, 3, 5, or 10 minutes, a maximum number of rounds of 10, 30, 50, or 100, and a Point target of 20, 30, or 50 points. The highlighted, full-opacity dropdown is the end condition currently in effect, while the other dropdowns are faded. Using any dropdown makes it active and moves the highlight to it. Changing Trait counting to 5 to Non-matching selects a 3-second starting interval; changing it to Matching selects a 1-second starting interval. The number of card slots is denoted by M. The defaults are all three trait types, an 81-card deck, a 3-minute maximum time, 30 rounds or 30 points when either alternative end condition is selected, M=4, a 2% empty-card chance, Previous cards kept shown, Matching, no trait hint, a 1-second starting interval, 3 seconds to choose a trait, and a 2-round failed-claim lockout. Only the selected value is visible; inactive dropdowns are blank, while all labels remain visible. Selecting a dropdown reveals its saved value.

The deck

The printed number always varies from 1 to 3. Each enabled trait type also varies over three values: shapes are squiggle, oval, and diamond; colors are red, green, and blue; and shadings are solid, striped, and open. A disabled Color is fixed to blue, a disabled Shape to oval, and a disabled Shading to solid. The resulting regular-card pool has 3, 9, 27, or 81 cards and is sampled with replacement. With every trait type disabled, those three cards are one, two, and three solid blue ovals. A dealt card may instead be an empty card, shown as ∅, according to the room's selected probability; empty cards are outside the regular-deck count.

Starting the game

Every room in the lobby can be viewed by registered users and guests. Guests can create an unrated room, playing solo or with one optional bot, that cannot be joined remotely. Registered users also see Join for waiting rooms that accept another player. A signed-in viewer can select Join, and a joined player can select View, without leaving the opened room. If the host switches to viewing, another joined player becomes the host. During room readiness, players and spectators can use Learn the cards to review the selectable traits and the fixed values of disabled trait types. Every listed value uses the same color swatch, shape, or shading visualization as the gameplay claim dialog. The values used by the current sample card are highlighted, and its boxed Symbols count control highlights one, two, or three for the printed symbol count. Select a different available trait or symbol count to change only that property of the current card while preserving its other properties. The highlighted current choices are disabled. Generate random card rerolls the entire card from the room's regular 3-, 9-, 27-, or 81-card deck. These practice cards do not change the live game, and the separate empty-card chance is not part of that practice deck. The following Learn the gameplay section generates a complete local practice combination using the room's Card slots and Empty card chance. It samples each slot independently with replacement and lists every correct answer under the room's Trait counting to 5 mode. Matching lists traits found on exactly five symbols, Non-matching lists traits absent from exactly five symbols as “not trait,” and Anything appears only when a no-trait room's cards show exactly five symbols in total. A combination without a correct answer shows None. Select a listed correct trait to highlight every card whose printed symbols contribute to its total of five and dim every other card. Under Non-matching, the highlighted cards are those without the selected trait; under Anything, every non-empty card highlights. Empty cards never highlight. The selection survives polling. Clicking outside the trait tags or selecting Generate random cards clears it; the latter also rerolls the combination. Neither learning section alters or consumes the live game. The final remaining player cannot switch to viewing. Once every currently joined player is ready, the host starts the game and no more players can join or switch roles. The game screen begins with M empty card slots and a clock showing time elapsed from the game start.

A registered room's Joining setting is Open by default. Host approval lets the host Accept or Decline each pending request, while 4-digit passcode requires the exact code chosen at creation. A player may cancel a pending request and stays in any existing waiting room unless accepted. Only the host can see the passcode. Guest rooms use Open. These choices never restrict viewing.

Card slots

A thick yellow outline fitted flush against the card and an arrow from the center of the slots point to the next slot without changing the card or symbol size. After the room's selected Starting card interval, either a random regular card or an empty card appears there; that slot is unhighlighted and the following slot is highlighted. The game continues through slots 1 to M, then returns to slot 1 and overwrites its existing card. The first card starts round 1. Additional cards remain in the same round until somebody claims. The first card dealt after that claim starts the next round. With Previous cards set to Keep shown, every dealt card remains visible. With Mask with ?, only the newest dealt card remains visible; every earlier occupied slot, including an earlier empty card, becomes a question mark while an undealt slot remains empty. This turns Five of a Kind into a game of memory.

Finding five of a kind

Only traits from enabled types can be selected. Color provides red, blue, and green; Shape provides oval, diamond, and squiggle; and Shading provides solid, striped, and open. A disabled type's fixed card value is not a selectable trait. With Matching, look for exactly five units that have one available trait, such as five red pieces. With Non-matching, look for exactly five units that do not have the selected trait, such as exactly five not red. A regular card's printed number contributes that many units to its color, shape, and shading. An empty card contributes zero units to every trait. More than one answer can be correct on the same board. When no trait types are enabled, Anything is correct exactly when the printed numbers show five symbols in total; empty cards and unfilled slots contribute zero.

Trait hint

With None selected, the game gives no availability hint. With Availability only, a separate panel remains visible during active gameplay and says There's a trait! whenever at least one trait satisfies the room's Matching or Non-matching rule. In an Anything room, it instead says It is! exactly when five symbols are in play. It does not reveal which trait is correct, and its message area is empty when the room does not qualify.

Claiming and scoring

Every player begins with 0 points. Claim is unavailable until the first card is dealt. After that, click Claim or press Space during gameplay when the room satisfies its Trait counting to 5 rule. Drag the small move icon next to Claim to reposition that control within the playing surface; with the icon focused, use the arrow keys to move it or Home to return it to the center. Space does not trigger Claim while focus is in private notes, room chat, another interactive control, or an open dialog. The first accepted claim immediately closes the round to every other player and pauses the shared card cycle. That player's card slots become question marks while every other player and viewer continues to see the board according to the room's Previous cards setting. The claimant's Claim control shrinks to nothing at its chosen position while the nine answers simultaneously expand from nothing in the middle, with a progress bar draining over the room's Time to choose a trait. Both animations reverse together after the attempt. Matching-item rooms show choices such as red, while non-matching rooms show not red. In an Anything room, Claim resolves immediately without adding a claim-time mask, opening the answer panel, or starting a selection timer; the configured Previous cards mask remains in effect. The claimant is correct when exactly five symbols are in play and incorrect otherwise. A correct choice or Anything claim adds 1 point. Matching and Non-matching result messages show the chosen trait with the same visual chip used by the Correct traits list. This also applies to Mask with ? rooms. With Previous cards set to Keep shown, the resolved-claim review lists the correct traits and the snapshotted cards. Use Hide or Show to collapse or expand those details; the current choice carries forward to every later claim review while the room remains open. Select a correct trait to give it the shared gold selection border, highlight the cards that contribute to that answer, and dim every other card. The selection survives polling for the same result and clears when the viewer clicks outside the trait tags or the next claim arrives. Mask with ? retains a message-only result without the Hide/Show control. An incorrect choice or Anything claim, or failing to answer before the bar empties in a typed room, leaves the score unchanged and locks that player out of claiming and interval voting for the configured number of subsequent rounds. With None selected, no lockout is applied and an existing interval vote remains. Otherwise, their existing interval vote is cleared, and they are excluded from interval-vote majorities until the lockout ends. The scoreboard shows the remaining lockout count next to a red circle with a white cross. A lockout decreases when an accepted claim closes a subsequent round, not whenever a card is dealt. If every player who has not resigned would be locked out, the smallest remaining lockout is subtracted from all of those players so at least one can Claim in the next round. Regardless of the answer, nobody else can claim until the preserved timer deals a new card and starts a new round.

Changing the card interval

The interval control has three boxes: the current delay in milliseconds, slower, and faster. The slower and faster boxes show their current eligible-vote totals, using vote for zero or one and votes for larger totals. Exactly one is highlighted. Selecting the current-delay box means neither and clears your vote. The highlighted box cannot be selected again; change your vote by selecting one of the other two boxes. Immediately before a card appears, the server checks the votes. Strictly more than half of the players who have neither resigned nor been temporarily locked out must choose the same option: faster reduces the current interval by 10%, while slower increases it by 10%. The new value is rounded to the nearest positive whole millisecond and applies when scheduling the following card. These changes do not alter the room's configured Starting card interval, which remains available when creating a new room with the same settings. Votes matching the applied majority are cleared; votes for the opposite direction remain selected.

Resigning

Select Resign, then choose Resign to stop participating and remain in the room or Resign & Exit to return to the lobby after that same resignation succeeds. Your status changes to Resigned, and your Claim button and interval controls remain visible but disabled. Your existing interval vote is cleared, and only players who have not resigned count toward later interval-vote majorities. If you resign during your own pending Claim, that Claim is cancelled without changing your score and the card timer resumes. When you remain, you can watch the game and use room chat while the remaining players continue. The same navbar control changes to Exit after you resign. The room becomes abandoned only when every player has resigned; a direct active Exit request is treated as resignation.

Ending the game

A round-limited game ends after the claim in its selected final round is resolved, times out, or is cancelled because the claimant resigns. A timed game ends at its wall-clock deadline, including when a player has paused the card cycle to make a claim. A point-target game ends immediately when a correct typed or Anything claim raises a player's score to the selected target. No claim, answer, interval vote, or new card is accepted after the game ends.

The server counts every card dealt, including an empty card. It also counts each deal after which the board has at least one trait satisfying the room's Trait counting to 5 rule, or exactly five symbols in an Anything room, as a scoring opportunity. These totals are hidden during play. At the end, missed opportunities are the number of scoring opportunities minus every player's final points, and all three totals appear beside Game complete.

In a rated human-only room, every player, including a player who resigned, receives an ELO change based on the final points. If all players have 0 points, each player score is 1 divided by the number of players. Otherwise, player score is that player's points divided by the total points. Expected score is 1 divided by the sum of 10 raised to ((each player's ELO minus this player's ELO) divided by 400), including this player in the sum. New ELO is the greater of 1 and old ELO + 40 × (player score − expected score). The completed scoreboard shows each player's ELO change and new rating to exactly one decimal place for registered humans. Increases are green, decreases are red, and unchanged changes are white. Bot, guest, and other unrated rows show dashes in both ELO columns.

The server records the round, claimant, claiming reaction time, trait-selection time, and outcome for every accepted Claim. Claiming reaction time is measured from the most recently dealt card until Claim is accepted. Trait-selection time is measured from Claim until the server receives the chosen trait and is empty for an Anything claim or when the outcome is timeout, resignation, or game deadline. The five outcomes are correct, incorrect, timeout, resignation, and game deadline. After the game, a table summarizes each player’s claiming reaction times in four ranges and splits each range’s total into correct and unsuccessful outcomes. The full-precision range proportions total 100% internally. Each displayed value is independently rounded to a whole percent, so displayed rows need not total exactly 100%. Invalid pre-card records and records without a reaction time are omitted.

Playing with a bot

Add bot defaults to No. Choose Yes to add one automatic opponent, available to registered players and guests. Bot difficulty offers Adaptive, Beginner, Intermediate, and Expert, in that order, with Adaptive selected by default. Adaptive starts with Intermediate's values and learns from human play; the other difficulties use fixed values.

Bot difficulty values (initial values for Adaptive)
Difficulty Reaction time (ms) Correct answer probability False claim probability
Adaptive 750 90% 2%
Beginner 1,000 75% 5%
Intermediate 750 90% 2%
Expert 500 100% 0%

Adaptive keeps a separate weighted sum S and total weight W for each quantity. Each starting value has weight 1. After every completed round, it updates S = 0.9 × previous S + sum of new observations and W = 0.9 × previous W + number of new observations, then uses S / W. Every new observation has weight 1. A move from k rounds ago has weight 0.9k, so recent moves have more influence. With no new observations for a quantity, its value stays the same while its accumulated weight decays. For example, a first human claim taking 1,000 ms changes the learned reaction time to (0.9 × 750 + 1,000) / 1.9, about 882 ms.

Reaction observations are the server-measured times of accepted human claims. For correct answer probability, a correct answer on a board with a valid answer contributes 100, and an incorrect answer or timeout contributes 0. Resignation and game-deadline interruptions supply no accuracy observation. Anything supplies no accuracy observations. For false claim probability, each human who is eligible when a board without a valid answer appears contributes one observation when the next card arrives or anyone claims: 100 if that human makes an accepted false claim, or 0 otherwise. Bots, spectators, and rejected requests supply no moves. Adaptive updates only after a round finishes, and creating a new room with the same settings starts learning afresh from Intermediate.

Reaction time varies uniformly by ±20% around the configured value. A new card cancels the previous decision, so slower reactions may miss opportunities. The bot remembers previously revealed cards in Mask with ?.

When a valid trait exists and the bot claims first, its difficulty determines the chance of choosing a correct trait. Otherwise, it chooses an incorrect enabled trait. It chooses the trait 0.4–0.8 seconds after claiming at every difficulty. Anything resolves immediately and ignores correct answer probability; reaction time and false claim probability still apply. For each new board without a valid answer, false claim probability is the chance that the bot claims anyway. Mistakes receive the normal lockout.

The bot is automatically ready and cannot host or vote on the card interval. Registered rooms can include more human players; guest rooms reject remote joining. When all humans resign, the game is abandoned and the bot stops.

At every difficulty, registered bot games include the bot's points and fixed ELO 1500 in the rating calculation. Its hypothetical ELO change is shared equally among human players, with the same total-preserving minimum-ELO reconciliation as Snake and Eyeball It. Only human ratings and history are saved; the bot stays at 1500. One human against the bot has zero net ELO change. Guest rooms remain unrated.

Game screen

The M slots appear in the middle of the playing surface, with a semantic Player/Score scoreboard table on the left using shared center-start and center-end column alignment, and Claim at the top right. A server configured with APP_ENV=testing also shows a separate Exactly five helper that reveals the current mode-aware traits. In an Anything room it says It is exactly when five symbols are in play. The testing helper does not replace the Trait hint panel: with Availability only selected, both panels appear throughout active gameplay, while their messages remain conditional. The Exactly five helper is hidden when the game ends. The scoreboard ranks higher point totals first; players tied on points are ranked with the lower Five of a Kind ELO first. Use Room info in the navbar to review the selected end condition, Trait types, Deck size, Card slots, Previous cards, Empty card chance, Trait counting to 5, Trait hint, Starting card interval, Time to choose a trait, and Failed claim lockout settings. The hamburger button shows or hides the right panel, which contains an Info box, private notes saved only in this browser for the room, and the shared room chat. The Info box reports how many rounds were deducted from every remaining player's lockout when the server must preserve claim availability.

With APP_ENV=testing, an active game with a bot also shows a read-only Bot settings box immediately below Exactly five in the center-right helper stack. It shows the difficulty and current reaction time, correct answer probability, and false claim probability, including Adaptive updates after each round. Reaction time is rounded to the nearest millisecond and probabilities to whole percentages for display; the bot keeps full precision. Correct answer probability is marked unused in Anything. The box is hidden when the game ends or the viewer leaves.