Premium Domino / Gaple Multiplayer System
A complete, production-ready multiplayer Domino (Gaple) game system for Roblox. This is not a simple template — it is a fully functional, server-authoritative card game framework with advanced features including real-time 3D spectating, intelligent practice bots, exploit-proof networking, dynamic multi-table support, immersive spatial audio, and a premium user interface. Designed for casino games, social hangout experiences, lobby minigames, and competitive card game experiences.
---
What Is This Product?
This product is a drag-and-drop domino game system for Roblox Studio. It includes everything you need to run a fully working multiplayer Gaple (domino) card game in your Roblox experience. Players sit at physical chairs around a green felt table, receive domino tiles dealt from a shuffled deck, and take turns placing tiles on the board following standard Gaple rules. The system supports 2 to 4 players per table, with intelligent practice bots that can fill empty seats.
The entire gameplay logic runs on the server. The client is purely visual — it renders tiles, animations, and UI elements based on what the server tells it. This means the system is fully exploit-proof and safe for production use.
---
Complete Feature List
- Full implementation of standard Gaple (domino) rules with a 28-tile double-six deck.
- Supports 2 to 4 players per table (configurable in DominoConfig).
- Automatic deck shuffling with randomized seed per round.
- Automatic starting player selection based on highest double or highest pip total.
- Turn-based gameplay with server-validated tile placement on left or right board ends.
- Pass mechanic when no legal moves are available (server-validated).
- Automatic blocked-board detection when all players pass consecutively.
- Round scoring based on opponent pip totals awarded to the winner.
- Persistent per-session score tracking across multiple rounds.
- 100% server-side game logic. The client never decides game outcomes.
- Server validates every tile placement: checks turn order, tile ownership, and mathematical fit against board end values.
- Anti-multiseat protection: players cannot sit at multiple tables or chairs simultaneously.
- Host-only command validation: only the designated host player can add bots, remove bots, or start the round.
- Remote event payload validation: all incoming client requests are sanitized and verified before processing.
- Automatic bot replacement when players disconnect mid-game to prevent match interruption.
- Object-Oriented Programming (OOP) design using a DominoTable class that encapsulates all game state per table.
- Supports unlimited simultaneous tables in a single server.
- Dynamic table scanning: the server automatically detects and initializes any model in the Workspace named DominoArena, DominoArena2, DominoArena3, etc.
- Runtime table spawning: add new table models to the Workspace at runtime and they are automatically initialized.
- Complete state isolation: each table maintains its own independent deck, hands, board, scores, phases, and turn order.
- Dynamic client binding: the client automatically rebinds its visual folders (board tiles, hand tiles, previews) when the player moves between tables.
- Players who are not seated at any table can watch active matches in real-time.
- Spectators see 3D domino tiles being placed on the board as they happen.
- Spectators see bot character rigs seated at the table with sitting animations.
- Spectators see the remaining tile count in each player's hand (rendered as face-down standing tiles on the table edge).
- Anti-cheat hand concealment: spectators and opponents only see the back of other players' tiles — never the face values.
- All tables update independently for spectators, so you can watch multiple games at once.
- Host players can add up to 3 practice bots per table with a single button press.
- Bots play automatically with randomized thinking delays (1 to 5 seconds per turn) for realistic pacing.
- Bots evaluate all tiles in their hand and play the first legal move found, or pass if no moves are available.
- Bot rigs are physical R15 character models that sit at the table with looping sit animations and display name tags.
- When a real player disconnects mid-match, their seat is instantly taken over by a bot that inherits the player's hand and score, keeping the game running.
- When a real player sits back in a bot-occupied chair, they instantly reclaim the hand and score from the bot.
- Physical 3D domino tile models with cream bodies, dark wood edge outlines, and accurately placed pip (dot) cylinders.
- Smooth tile placement animation: tiles fly down from above with a Back easing tween.
- Full shuffle and deal animation at the start of each round: 28 tiles swirl on the felt surface for 3 seconds, then fly outward to each player's hand position in an arc trajectory.
- Semi-transparent dark glass status boards at each seat showing READY / NOT READY status with green and red text colors.
- Lobby billboard above each table showing current player count, seated player names, and the host player's name.
- Tile face-up rendering for the local player's hand (tilted upward toward the camera) and face-down rendering for opponents and spectators.
- Authentic domino tile buttons in the handbar UI with pip dot rendering (not text numbers).
- Vertical tile layout (30x60 pixels) matching the real 1:2 aspect ratio of domino tiles.
- Dynamic tile state coloring: Gold for the selected tile, Cream for playable tiles, and Dark Slate for unplayable tiles.
- Divider line and rounded corners on each tile button for a polished, premium look.
- Responsive scaling system that adjusts UI elements based on viewport size.
- Hover effects (scale up on mouse enter) and click effects (scale down + click sound) on all interactive buttons.
- Camera mode toggle button: Free (orbital), Top (bird's eye), and Board (angled close-up) views.
- Turn toast notification showing whose turn it is, with sound notification when it becomes the local player's turn.
- Tile placement sound effect localized to the table's felt surface.
- Pass sound effect localized to the table's felt surface.
- Shuffle sound effect (looping) localized to the table's felt surface during deal animations.
- Round end sound effect localized to the table's felt surface.
- All spatial sounds use MinDistance and MaxDistance roll-off so players at distant tables or in the lobby are not disturbed.
- UI sounds (button clicks, turn notifications) play globally through SoundService for the local player only.
- Custom tile placement animation played on the character rig when placing a tile.
- Custom pass animation played on the character rig when passing a turn.
- Looping sit animation on all bot rigs for immersive table presence.
- Animations work on both real player characters and bot rigs.
---
That's it. Press Play and the system works immediately. No configuration required for basic use.
---
Customization Options
- Change the maximum number of players per table (2, 3, or 4) in DominoConfig.
- Change the number of tiles dealt per hand in DominoConfig.
- Replace all animation IDs with your own uploaded animations in DominoClient.
- Replace all sound effect IDs with your own uploaded audio in DominoClient.
- Change tile body color, pip color, selected color, and preview color in DominoConfig.Palette.
- Add currency rewards or DataStore integration by hooking into the DominoTable:finishRound() function on the server.
---
Technical Specifications
- Fully written in Luau (no external dependencies).
- Single RemoteEvent architecture for minimal network overhead.
- OOP class design for clean, maintainable, and extensible code.
- All scripts are fully commented in English.
- Compatible with all Roblox platforms (PC, Mobile, Console, VR).
- No plugins or third-party tools required.
