Skip to content

Lumo Cards — installation guide ​

1. Dependencies ​

ResourceRequiredNotes
oxmysqlyesAny recent version
qb-core / qbx_core / es_extendednoDetected at start. None = standalone mode
ox_target / qb-targetnoWithout one, a built-in [E] Play cards prompt is used
object_gizmo + ox_libadminsMoves/rotates the table and chairs in /callbreaktables
ox_lib or qb-menunoLeaderboard menu (otherwise it prints to chat)
lumo-interactnoUsed for prompts if present

2. Install ​

  1. Drop the lumo-cards folder into resources/ (any folder name works, e.g. lumo-cards-opensource).
  2. Add the resource to server.cfg after the resources it detects:
    ensure oxmysql
    ensure ox_lib
    ensure qb-core          # or qbx_core / es_extended
    ensure ox_target        # or qb-target
    ensure object_gizmo
    ensure lumo-cards
    If you ensure whole folders (ensure [standalone]), make sure the folder holding your framework comes before the one holding lumo-cards.
  3. Start the server. The console prints [lumo-cards] framework: qb (or qbx, esx, standalone). If it shows the wrong one, set Config.Framework in config.lua.
  4. The lumo_cards_tables and lumo_game_stats tables are created on first start. lumo-cards.sql is only needed if your database user can't create tables.

3. Give yourself admin ​

Admins are the framework groups in Config.Admin.permissions, or anyone with the ACE in Config.Admin.ace (default command, which txAdmin admins already have).

  • QBCore / Qbox: admin and god work out of the box.
  • ESX: add 'superadmin' to Config.Admin.permissions if you use it.
  • Standalone: add_ace group.admin command allow + add_principal identifier.license:xxxx group.admin.

4. Place a table ​

  1. Go where the table should stand and run /callbreaktables.
  2. + New table here spawns a ghost table with four chairs in front of you.
  3. Pick the game: Any game (the host picks Callbreak, Teen Patti, Rummy or Blackjack in the lobby) or one game only. Then pick a table model and a chair model (or None to use a table that is already in the map or MLO).
  4. Fly camera lets you fly around and aim, then press E to drop the table there. Move / rotate table opens the gizmo (W move, R rotate, Enter done). Chairs follow the table. Chair 1–4 fine-tune a single chair. Auto-arrange chairs puts them evenly round the table.
  5. Save table. It spawns for every player within spawnDistance.

Edit, teleport to, or delete tables from the same panel. A table can't be edited while a game is running on it.

5. Play ​

Walk up to the table, target it (or press E) → Play cards (or Play <game> on a table locked to one game). At an any game table, pick the game, then Host or Solo vs bots. Other players Join from the list, or Watch. Everyone is sat down and the camera moves over the table. The host presses Start (or Fill with bots) on the table mat. Backspace twice leaves.

6. Tuning ​

  • Seat height per chair model: Config.Admin.chairModels[n].sitZ.
  • Camera: Config.Table3D.camHeight, camBack, camFov and overview.
  • Card size: trickScale, handScale, pileScale (1.0 = real size).
  • Felt colour: feltColour (RGBA), or nil for the bare table.

7. Updating ​

Replace every file except config.lua (compare it with the new one for new options), then restart the resource. Placed tables and stats live in the database and are kept.

From 1.0.x to 1.1.0: add the new Config.Games, Config.TurnSeconds and Config.Challenge.game blocks to your config.lua. Tables placed before 1.1.0 play any game; edit one in /callbreaktables to lock it to a single game.