# Video poker cabinets The video poker hall east of Penny Reels (6118) is three rooms. The parlor (6192) runs low pay schedules, the high-limit room (6193) normal schedules, and the VIP room (6194) full pay schedules. Each holds the same five single-seat cabinets: Classic, Ultimate X Single Line, Ultimate X Multi-Hand, Super Times Pay, and Hot Roll. Choose a game **inside** a cabinet; schedules are not games. The shared table lifecycle adapter provides room routing, wallet settlement, disconnect and eviction handling, so author cabinets under `casino_tables`: ```yaml casino_tables: - id: uxm game: video_poker max_players: 1 video_poker: cabinet: ultimate_x_multi payout: full ``` `cabinet` accepts `classic`, `ultimate_x_single`, `ultimate_x_multi`, `super_times_pay`, `hot_roll`. `payout` accepts `low`, `normal`, `full` and is the house's setting: players cannot change it. Defaults are classic/full. Do not author variant/pay_table/feature/single_line; strict YAML validation rejects those obsolete fields. Do not use table wager limits to set coin denominations. Each cabinet has one occupant, but multiple cabinets may share a room and are addressed by ID. Short room ids (`vp`, `ux`, `uxm`, `stp`, `hr`) and cabinet aliases (`poker`, `ultimate_x`, `super_times`, `hot_roll`) keep `play` concise. ## Games and quality tiers Each row below lists **low / normal / full** schedules. The authored tier applies to all games on that cabinet; selecting a different game preserves it. These are published schedules, not interpolated payouts. The tier names rank the offered schedules within a game/cabinet; they do not imply equal RTP across games. Some classic full schedules exceed 100% with optimal play. | Game | Classic | UX Single | UX Multi | STP | Hot Roll | |---|---|---|---|---|---| | Jacks or Better | 7/5, 8/5, 9/6 | 8/5, 8/6, 9/6 | 7/5, 8/5, 8/6 | 7/5, 8/5, 9/6 | 8/5, 9/5, 9/6 | | Bonus Poker | 6/5, 7/5, 8/5 | 6/5, 7/5, 8/5 | omitted | 6/5, 7/5, 8/5 | omitted | | Bonus Poker Deluxe | 8/5, 9/5, 9/6 | 8/5, 8/6, 9/6 | 7/5, 8/5, 8/6 | omitted | omitted | | Double Bonus | 9/6/4, 9/7, 10/7 | 9/6/4, 9/6/5, 9/7 | 9/5/4, 9/6/4, 9/6/5 | 9/6/4, 9/6/5, 9/7 | omitted | | Double Double Bonus | 8/5, 9/6, 10/6 | 8/5, 9/5, 9/6 | 8/5, 9/5, 9/6 | 8/5, 8/6, 9/6 | 8/5, 9/5, 9/6 | | Deuces Wild | C | U | U | C | omitted | | Joker Poker (Kings or Better) | J | J | J | omitted | omitted | - C: 20/12/10/4/4/3, 25/15/9/4/4/3, 25/15/9/5/3/2. - U: 25/16/13/4/3/2, 20/12/10/4/4/3, 25/15/9/4/4/3. - J: 50/15/7/5/3, 50/16/7/5/3, 50/17/7/5/3. - Double Bonus 9/7 and 10/7 pay five for straights; three-part names explicitly identify full-house/flush/straight rates. - Bonus Poker has only two sourced UX Multi schedules; it is omitted rather than inventing a third tier. Other omissions are deliberately conservative, not claims that no physical edition exists. The authored tier persists across occupants of the live cabinet. Multiplier banks for *all* tiers remain durable and separate. | Edition | Supported hands | |---|---| | Classic Jacks or Better | 1, 3, 5, 10, 25, 50, 100 | | Other classic games | 1 | | Ultimate X Single | 1 | | Ultimate X Multi | 3, 5, 10 | | Super Times Pay | 1, 3, 5, 10 | | Hot Roll | 3, 5, 10 | ## Controls and presentation - `play ` seats you; `game` lists games; `game jacks` (or a full game name) selects one. The house sets the payout tier when the cabinet is authored in YAML; players cannot change it. - While seated at any casino game, casino verbs may be shortened to an unambiguous prefix: `b 1000` is `bet 1000`, and `be 1000` also works. `stop` and `rules` must be typed in full. - `denom 1|10|50` / `denomination` sets credits per coin. - `hands` lists counts; `hands ` selects one. - `bet 1-4` **adds** coins, capped at five per hand. `bet max` loads five. Bare `bet` / `rebet` repeats the previous selection, initially five. - Loading neither charges nor deals. Explicit bets show the pay table; bare bet does not. `deal` charges the full wager and reveals five cards. - `531`, `1 3 5`, or `hold 531` **toggles** holds. Repeating the command releases those cards; duplicate digits within one command toggle only once. `hold none` is not supported. `draw` or seated `d` finishes the hand. Away from video poker, `d` retains down movement. - `feature on|off` toggles the cabinet's bonus between rounds. - `paytable`, `look`, `table rules` redisplay; `rules` opens the cabinet guide. `list` retains available-wagers semantics and is not a pay-table command. - `stop` leaves between rounds. Disconnect completes the current holds. Pay tables use yellow Unicode borders and dotted hand-name leaders. Blue `#000269`, red `#fe0000` (selected coin column), and yellow `#f7e70e` are mapped to nearest xterm colors. HELD and wins are bold yellow; no-win text is bold white. Results are below cards. Bonus indicators and multipliers sit beside cards. Multi-hand art shrinks; hundred-play uses compact Unicode ranks/suits. Payouts are total coins including stake, not profit. Multiply by denomination for credits. Natural royals pay 250 per coin below five coins, 4000 at five. Other categories scale linearly. Only the highest-paying category pays. All games use fresh 52-card decks except Joker Poker's 53-card deck. Each line shares the deal/holds but draws from its own shuffled remaining deck, excluding **all five** original cards, including discards. ## Bonuses Feature ON requires five base coins per hand. UX and Hot Roll add five coins (10 total); STP adds one (6 total). Fees never increase the base payout. - **Ultimate X:** each line's current multiplier applies to its payout. Enabled wins earn next-hand multipliers using the published single/3/5/10-play award schedules. Awards never compound. Feature OFF collects existing multipliers without earning new ones. `NEXT X` shows awards for the selected hand count. - **Super Times Pay:** a pre-deal 1/15 trigger awards a shared multiplier. Conditional 2x/3x/4x/5x/8x/10x probabilities are 17/33/16/24/6/4 percent. - **Hot Roll:** a pre-deal 1/6 trigger rolls two fair dice; their sum multiplies every line. STP and Hot Roll have no next-hand bank. ## Shared banks and money safety Ultimate X multipliers belong to the **machine**, not the player. Another occupant inherits them. Files live at `data/casino/video_poker_banks/_.yaml`. Within each file banks are keyed by game/tier/denomination/hand-count, preventing denomination or edition switching from amplifying an award. Fully consumed banks are removed. Missing files are new machines; corrupt/unreadable files block deals. `casino.PokerWallet` loads banks and atomically settles character credits, pending stake removal, and the cabinet file in a multi-file undo-journal transaction. There is no package-global persistence callback. The game owner serializes writes. The stake is durable before revealing cards; frozen final hands and awards survive payment retries without redraws or rerolls. Failed transactions leave the old live bank intact. Commit-point failures are recovered and reconciled before any retry; unrecoverable storage faults fail closed. Startup journal recovery precedes pending-wager recovery. A process crash before commit restores both old records, then refunds the unresolved stake. Committed payouts cannot replay an old bank. Shutdown/eviction refunds unresolved stakes without consuming previously saved multipliers or retaining uncommitted awards. Old experimental player-owned `video_poker_multipliers` fields are no longer read. They are not merged into shared cabinets (multiple player banks cannot unambiguously become one physical bank). ## Sources Published schedules, award tables and feature rules: - https://wizardofodds.com/games/video-poker/tables/ultimate-x-single-line/ - https://wizardofodds.com/games/video-poker/tables/ultimate-x/ - https://wizardofodds.com/games/video-poker/tables/super-times-pay/ - https://wizardofodds.com/games/video-poker/tables/hot-roll/ - https://wizardofodds.com/games/video-poker/tables/jacks-or-better/ - https://wizardofodds.com/games/video-poker/tables/bonus-poker/ - https://wizardofodds.com/games/video-poker/tables/bonus-poker-deluxe/ - https://wizardofodds.com/games/video-poker/tables/deuces-wild/ - https://wizardofodds.com/games/video-poker/tables/double-bonus/ - https://wizardofodds.com/games/video-poker/tables/double-double-bonus/ - https://www.videopoker.com/games/ (single/multi/hundred-play editions)