Skip to content

Lumo Cards ​

Callbreak, Teen Patti, Rummy and Blackjack at a real 3D table.

Version 1.1.0 · Frameworks QBCore · Qbox · ESX · standalone

Installation · Config files · Exports & events · Changelog

Four card games played at a real table in the GTA world: Callbreak, Teen Patti, Rummy and Blackjack. Players sit down together, the cards are real props on the table, and you play by clicking your cards and the buttons on the table mat with the mouse. There is no 2D card screen.

Each placed table is set to one game or to any game, where the host picks the game in the lobby.

QBCore · Qbox · ESX · Standalone (detected automatically) · by Lumo · https://lumo-server.tebex.io/


Features ​

  • Four games, one table system:
    • Callbreak (कलब्रेक): 4 players, call your tricks, spades are trump.
    • Teen Patti (तीन पत्ती): 2–4 players, chip stacks, blind or seen bets, pack, show. The pot limit forces a showdown.
    • Rummy (रमी): 13 cards, 2–4 players, two decks and a wild joker rank. The server finds your best melds, groups them in your hand and tells you when you can declare.
    • Blackjack: 1–4 players against the house dealer. Hit, stand, double; blackjack pays 3:2.
  • Per-table game setting in the admin panel: lock a table to one game, or let the host choose.
  • Turn timer (Config.TurnSeconds): an idle player's turn is played for them, so nobody can stall a table.
  • Real 3D cards: the hand fans out in front of you, other players' hands sit as face-down piles, and played cards slide into the middle. The trick sweeps to the winner.
  • DUI table mat in the centre: names, chips/points, whose turn with a countdown, the game's buttons (call grid, Chaal / Pack, Draw / Declare, Hit / Stand ...), round reports and the final scoreboard, all drawn on the table itself.
  • Two cameras: a close seated view to read your cards, and a wide view of the whole table. Switch with the mouse wheel or V.
  • Play against AI (Callbreak, Teen Patti, Rummy): solo games fill the empty seats with bots, and an NPC sits in each bot's chair. The host can also fill the empty seats with bots from the table. Blackjack solo is just you against the dealer.
  • Admin table placement (/callbreaktables): fly camera and gizmo, a choice of table and chair models, auto-arranged chairs. Saved to the database and spawned for everyone.
  • Players sit down in their chair (scenario seating, with the seat height tuned per chair model).
  • Server-authoritative: hands are private, and every call and card is checked on the server. Distance checks apply to hosting, joining and challenges.
  • Optional real money: a stake per player for Callbreak and Rummy (the winner takes the pot), and a buy-in for Teen Patti and Blackjack that is paid back as chips at the end. Refunded on abandon. Tables with bots never use real money. There is also an optional item reward.
  • Challenge a player from the target eye, plus spectators and a leaderboard.
  • Themed lobby panel docked on the left, so the table stays visible.
  • 0.00 ms idle: work only runs near a table or while you play.

Requirements ​

ResourceNeeded?
oxmysqlRequired
qb-core / qbx_core / es_extendedOptional, detected automatically (standalone works too)
ox_target / qb-targetOptional. Without one, players walk up and press E
object_gizmo + ox_libNeeded to move/rotate props in the admin placement tool
ox_lib / qb-menuOptional: nicer leaderboard and prompts (falls back to chat / GTA help text)

Installation ​

  1. Put the lumo-cards folder in your resources folder.
  2. In server.cfg, ensure it after oxmysql, your framework and your target:
    ensure oxmysql
    ensure ox_lib
    ensure qb-core        # or qbx_core / es_extended / nothing
    ensure ox_target      # or qb-target / nothing
    ensure object_gizmo
    ensure lumo-cards
  3. Start the server. The database tables are created automatically. (lumo-cards.sql is included if you prefer to import it by hand.)
  4. In game, as an admin, run /callbreaktables → + New table here → place it → Save. Players can now walk up and play.

Full step-by-step guide: Installation.

Commands ​

CommandWhoWhat
/callbreaktablesAdminPlace, edit, move, delete tables
/cards or /callbreakEveryoneOpen the lobby while standing at a table
/callbreakboard [game]EveryoneTop 10 players by wins (teenpatti, rummy, blackjack; default Callbreak)

Admins are the groups in Config.Admin.permissions (QBCore/Qbox: admin, god; ESX: add superadmin) or anyone with the ACE in Config.Admin.ace.

Controls (at the table) ​

InputAction
MouseClick a card to play or discard it; click the buttons on the mat (call, bet, draw, hit ...)
Mouse wheel / VSwitch between the close and the whole-table camera
Backspace ×2Leave the table

How to play ​

The host sits down and picks the game. Others join from the lobby. The host presses Start on the mat, or Fill with bots. A table starts by itself once every seat is taken.

Callbreak

  • Spades (♠) are always trump. Everyone gets 13 cards.
  • Call: each player says how many tricks (1–13) they will win.
  • Play: follow the led suit. If you can't, you must play a spade (over-trumping if you can); otherwise discard.
  • Score: make your call and you get call + 0.1 per extra trick. Miss it and you lose call.
  • Highest total after Config.Rounds rounds wins.

Teen Patti

  • Everyone pays the boot and gets 3 cards face down. You start blind; See cards whenever you like.
  • On your turn: blind players pay the stake (Raise doubles it). Seen players pay twice the stake (Chaal) or four times (Raise). Pack folds.
  • With two players left, either can ask for a Show. On a tie, the player who asked loses. When the pot reaches potLimit, everyone still in shows.
  • Trail › pure sequence › sequence › colour › pair › high card. A-K-Q is the top sequence, then A-2-3. The biggest stack after hands hands wins.

Rummy

  • 13 cards each. One card is cut face up, and every card of that rank is a joker.
  • On your turn, Draw from deck or Take the open card, then click a card to discard it. A card taken from the open pile can't be thrown straight back.
  • Declare appears once your 13 cards are all in melds, with at least two sequences and at least one pure (no joker standing in).
  • Losers score their unmelded cards (J/Q/K/A = 10, jokers 0, capped at 80). With no pure sequence, every card counts. Drop before your first discard costs 20, later 40. Lowest total after rounds deals wins.

Blackjack

  • Everyone bets, gets two cards, and the dealer shows one. Hit, Stand, or Double on your first two cards. The dealer draws to 17.
  • A win pays 1:1, a blackjack 3:2, and a tie is a push. The biggest stack after rounds rounds wins.

Configuration ​

Everything is in config.lua and commented. The options owners change most:

OptionDefaultWhat it does
Config.Framework'auto'Force 'qbx', 'qb', 'esx' or 'standalone'
Config.Target'auto'Force 'ox', 'qb' or 'none' (built-in E prompt)
Config.AllowSolotrueGames against AI
Config.Rounds5Callbreak deals per game
Config.TurnSeconds30Time to act before the table plays for you (0 = off)
Config.Gamesall onTurn games on or off, buy-ins, boot, pot limit, deals, bet sizes, decks
Config.Challenge.game'callbreak'What a challenge plays at an "any game" table
Config.BetoffReal money: stake (Callbreak/Rummy) or buy-in (Teen Patti/Blackjack)
Config.WinRewardoffChance of an item for the winner
Config.Admin.tableModels / chairModels6 / 5 modelsProps offered in the admin panel
Config.BotPeds10 pedsNPC models for AI players
Config.Table3DtunedCamera, card size, felt colour, animation speed

Seat height: if players sit too high or low on a chair model, change that model's sitZ in Config.Admin.chairModels (metres). For NPCs only, use Config.BotSitZ.

Framework notes ​

QBCoreQboxESXStandalone
Player namecharinfocharinfogetName()FiveM name
Stats idcitizenidcitizenididentifierlicense
Stakes✔✔✔ (cash → money)disabled
Item reward✔ (ox_inventory if running)✔✔—
AdminQBCore permissiongroup.<name> ACEplayer groupACE

Troubleshooting ​

  • "Admins only" — add your group to Config.Admin.permissions, or give yourself the ACE: add_ace group.admin command allow.
  • "object_gizmo is not running" — install object_gizmo + ox_lib (admins only need it).
  • No "Play cards" option — make sure the target resource starts before lumo-cards, or set Config.Target = 'none' to use the E prompt.
  • Players sink into or float above a chair — tune sitZ for that chair model.
  • Cards show their backs / read upside down — faceUpRoll / handYawOffset = 180.0.

Support ​

Store, updates and other releases: https://lumo-server.tebex.io/