Teddy's Pokerclub
A stylized casino-games bundle published on the FAB Marketplace. Six self-contained game modules. Bingo, Blackjack with NPC bots, Dice Slots, a four-variant Slots engine, Video Poker, and Ring Game Poker, each drag-and-drop into any UE scene and fully tunable via DataAssets, all wrapped in a 3D walkable casino hub where players approach physical cabinets to launch games. A product line for other developers to build on, not a finished consumer game.
Developer
2023










Most casino assets on the marketplace ship one game in one art style and call it a template. Teddy's Pokerclub ships six fully implemented games under one SKU, each architected as a self-contained module with its own folder structure (Blueprints, Versions, Materials, Textures, and where relevant Audio, Components, DataTable, Interfaces, SaveDataClasses, and Widgets), so a buyer can lift any one module into their own project without dragging the others along.
The DataAsset pattern is the spine of the whole bundle. One DataAsset per variant configures the entire identity of that variant — widget class, lobby display name and thumbnail, all card art (52 cards plus back face for the card games), all symbol icons (14 per slot variant), per-event sound cues (reel start, reel stop, reel spinning, bonus icon appeared, jackpot icon appeared, big win, etc.), payout multipliers, bet tier arrays, points-to-reward tables, and animation frame sequences. To ship a new variant, the buyer fills in a new DataAsset and points the prefab at it. No code changes required.
Four slot themes ship on the same engine to prove the system works at depth, not just in theory: Graveyard (stylized neon-pop skull aesthetic), Bars and Sevens (synthwave Vegas), Tropical Vacation (beach paradise), and Heavy Metal (silhouetted concert stage). Same spin logic, win evaluator, jackpot tracking, and celebration system across all four, with completely different art, audio, paytables, and bet ranges. Each slot variant exposes three spin animation modes selectable via DataAsset: reel-by-reel, gravity block drop, and all-five-simultaneous. The escalating win celebration system (Big Win, Super Win & Mega Win) runs counter-up animation tied to the win amount, shared across every slot variant.
The Blackjack module ships with NPC bots at multi-seat tables. Bots make independent hit, stand, double, and split decisions based on the dealer's up card and their own hand value — they're not scripted to a sequence. Player has the full action set (Split, Double, Hit, Hold, Fold) with buttons that light up only when the relevant action is legal for the current hand. Round resolves with per-seat Win/Loss results displayed simultaneously.
Video Poker is full 5-card draw with the canonical paytable (Jacks or Better through Royal Flush, with Straight Flush and Four of a Kind tiers in between), a Play, Draw, Reset state flow, and a Hold toggle on each card before the draw resolves.
Bingo is 75-ball with multi-card play (a single round can have multiple cards bought at the same bet level), color-coded balls by column (B/I/N/G/O at 1-15/16-30/31-45/46-60/61-75), a drawn-ball history track, and automatic cell-marking on the cards as numbers are called.
Dice Slots fills four 3×3 grids in parallel from a shared dice queue, scoring lines across rows, columns, diagonals, and cross patterns per grid, with grid-count multipliers (3 grids = 1.5x, 4 grids = 2.0x) and a full-grid bonus of 200 points. This same module is also sold standalone as the Dice Slots template.
Ring Game Poker is the sixth module — multiplayer cash-game poker with its own dedicated documentation video.
The 3D casino hub is the differentiator that separates this from any other marketplace casino bundle. Players don't click a flat menu; they walk a fully built interior, Teddy's Pokerclub, with a neon sign, fireplace, leather seating, red carpet, ambient lighting and approach physical slot cabinets and table-game stations. Each cabinet's monitor displays live game art via render targets sampling the actual UMG widget, so a Heavy Metal cabinet across the room shows actual Heavy Metal reels spinning. The player presses E to enter a cabinet, the game opens, and the shared balance carries across every module so progression and currency are unified.
The biggest architectural challenge was making six independent games share one shell without coupling them to each other. Each module needs to be hoistable into an empty UE project on its own. That meant defining a strict folder boundary per module and never reaching across modules for shared state. Shared balance and the hub work through interfaces and a top-level game instance, not through cross-module references.
The DataAsset variant system had to scale across game types that look nothing like each other. A slot variant's DataAsset has different fields than a blackjack variant's, which has different fields than a bingo variant's. Designing a base pattern that gave each game type its own variant schema while keeping the lobby integration (display name, thumbnail, widget class binding) consistent across all six took several iterations.
The NPC blackjack AI had to feel like other players rather than a turn-based puzzle. Bots commit to decisions on a timer rather than instantly, and the action labels ("Hit," "Hold," "NoAction") surface visibly so the player can read the table state. Decision logic had to handle every legal blackjack situation, including soft totals, splits, and doubling.
Bingo's automatic cell-marking sounds trivial until you account for the multi-card case — a single drawn ball might match cells across multiple cards, and the visual update needs to happen on all of them in the same frame without flicker.
The escalating win tier system is shared infrastructure across all four slot variants, but the celebration assets (animation frame sequences, sound cues) are per-variant. Wiring this so each variant could swap its celebration art via DataAsset without forking the underlying counter-up logic took careful interface design.
The slot animation modes (reel-by-reel, block drop, all-five-simultaneous) needed to share win evaluation and final reel state but diverge entirely in how they present the spin. Each mode is its own state machine that converges to the same end-state, selectable per-variant from the DataAsset.