Lumo Ludo — installation guide
1. Dependencies
| Resource | Required | Notes |
|---|---|---|
| oxmysql | yes | Any recent version |
| qb-core / qbx_core / es_extended | no | Detected at start. None = standalone mode |
| ox_target / qb-target | no | Without one, a built-in [E] Play Ludo prompt is used |
| object_gizmo + ox_lib | admins | Moves/rotates the table and chairs in /ludotables |
| ox_lib or qb-menu | no | Leaderboard menu (otherwise it prints to chat) |
| lumo-interact | no | Used for prompts if present |
2. Install
- Drop the
lumo-ludofolder intoresources/(any folder name works). Keep thestream/folder (the board, tokens and die). - Add the resource to
server.cfgafter 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 - Start the server. The console prints
[lumo-ludo] framework: qb(orqbx,esx,standalone). If it's wrong, setConfig.Frameworkinconfig.lua. lumo_ludo_tablesandlumo_game_statsare created on first start.sql/install.sqlis 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:
adminandgodwork out of the box. - ESX: add
'superadmin'toConfig.Admin.permissionsif you use it. - Standalone:
add_ace group.admin command allow+add_principal identifier.license:xxxx group.admin.
4. Place a table
- Go where the table should stand and run
/ludotables. - + New table here spawns a ghost table with four chairs, one per edge.
- 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).
- Fly camera lets you fly around and aim, then press E to drop the table there. Move / rotate table opens the gizmo (
Wmove,Rrotate,Enterdone). Use Chair 1–4 for one chair, or Auto-arrange chairs. The chairs go clockwise: 1 red, 2 green, 3 yellow, 4 blue. - 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.
/ludoboardshows the Ludo leaderboard,/ludoboard snlthe Snakes & Ladders one.
6. Tuning
- Rules:
Config.Rulesfor Ludo (exit rolls, extra rolls, three sixes, stars, blocks, play on);Config.Snlfor Snakes & Ladders (exactFinish, bounceBack, extraOnSix, threeSixes, endOnFirst). - Games:
Config.DefaultTableGames, andConfig.BothIdleBoardfor 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 = trueonly):/ludopropplaces both boards in front of you,/ludo3dtestand/snl3dtestplay 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,camFovandoverview. - Board sinks into or floats above a table:
Config.Table3D.surfaceOffset. - Clicks hit the wrong square:
debugGrid = true, thenfaceFlipU/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.