Skip to content

Lumo Ludo — 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 Ludo prompt is used
object_gizmo + ox_libadminsMoves/rotates the table and chairs in /ludotables
ox_lib or qb-menunoLeaderboard menu (otherwise it prints to chat)
lumo-interactnoUsed for prompts if present

2. Install ​

  1. Drop the lumo-ludo folder into resources/ (any folder name works). Keep the stream/ folder (the board, tokens and die).
  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-ludo
  3. Start the server. The console prints [lumo-ludo] framework: qb (or qbx, esx, standalone). If it's wrong, set Config.Framework in config.lua.
  4. lumo_ludo_tables and lumo_game_stats are created on first start. sql/install.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 /ludotables.
  2. + New table here spawns a ghost table with four chairs, one per edge.
  3. Pick the games: Ludo, Snakes & Ladders or Both (host picks). The ghost board shows the board the table will carry. Then a table model (the board is 0.58 m square, so use a table about 0.8 m or wider) and a chair model (or None to use furniture already in the map).
  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). Use Chair 1–4 for one chair, or Auto-arrange chairs. The chairs go clockwise: 1 red, 2 green, 3 yellow, 4 blue.
  5. Save table. The board appears on it for everyone within spawnDistance.

Tables placed before 1.1.0 have no games setting and play Config.DefaultTableGames ('ludo'); open them in /ludotables to change it. Fixed Config.Tables entries take an optional games = 'ludo' | 'snl' | 'both'.

5. Play ​

Walk up to the table, target it (or press E) → Play Ludo (or Play Snakes & Ladders, or Play Ludo / Snakes & Ladders at a table with both).

  • At a table with both games, pick Ludo or Snakes & Ladders at the top of the lobby first; the game list shows which game each table is playing.
  • Host a 2-, 3- or 4-player table. Others at the table Join (or Watch) from the lobby, or by invite (target a player → Invite to Ludo / Invite to Snakes & Ladders; at a table with both, the option you choose is the game).
  • The game starts when every seat is taken, or when the host presses Enter. Empty seats then get AI players.
  • Practice: play against 1, 2 or 3 AI.
  • Space rolls. In Ludo, click a glowing token or the square it would land on; in Snakes & Ladders the token moves by itself. Backspace twice leaves.
  • /ludoboard shows the Ludo leaderboard, /ludoboard snl the Snakes & Ladders one.

6. Tuning ​

  • Rules: Config.Rules for Ludo (exit rolls, extra rolls, three sixes, stars, blocks, play on); Config.Snl for Snakes & Ladders (exactFinish, bounceBack, extraOnSix, threeSixes, endOnFirst).
  • Games: Config.DefaultTableGames, and Config.BothIdleBoard for the board a table with both games shows while idle.
  • Animation speed: Config.Timing (hopMs, ladderMs, snakeMs, …). The server waits for these, so keep them close to the defaults.
  • Debug (Config.Debug = true only): /ludoprop places both boards in front of you, /ludo3dtest and /snl3dtest play scripted sequences on the nearest table.
  • Turn timer: Config.TurnSeconds, Config.AfkLimit.
  • Seat height per chair model: Config.Admin.chairModels[n].sitZ.
  • Camera: Config.Table3D.camHeight, camBack, camFov and overview.
  • Board sinks into or floats above a table: Config.Table3D.surfaceOffset.
  • Clicks hit the wrong square: debugGrid = true, then faceFlipU / faceFlipV.

7. Updating ​

Replace every file except config.lua (compare it for new options), restart the resource, and ask players to clear their cache if the board looks wrong. Placed tables and stats are kept in the database.