Lumo Ludo
Ludo and Snakes & Ladders for 2-4 players and AI on a real board.
Version 1.1.1 · Frameworks QBCore · Qbox · ESX · standalone
Installation · Config files · Exports & events · Changelog
Ludo and Snakes & Ladders for 2–4 players, played on a real board with tokens and a die on a table in the GTA world. Players sit in their chairs and click their own tokens. AI players fill empty seats, or you can practise against one to three of them.
QBCore · Qbox · ESX · Standalone (detected automatically) · by Lumo · https://lumo-server.tebex.io/
Features
- Two games: Ludo and Snakes & Ladders. Each table plays one of them or both (the host picks when creating a game); the board on the table follows the game.
- Custom 3D boards, tokens and die on every placed table, so the room looks set up even when nobody is playing.
- Grab and throw: hold the die with the left mouse button, drag/shake it, then release to flick it onto the board. The release point and flick shape the toss for all players; the server chooses the number. Right-click cancels; Space quick-rolls. Tokens hop square by square, and captured tokens fly back to their yard. In Snakes & Ladders they climb ladders and slide down the snakes' curves.
- DUI board face: each player's name on their own edge (readable from their chair), the turn glow and timer, movable-token rings, a path preview and the result.
- 2–4 players in clockwise seats (two players sit opposite each other), plus spectators watching from beside the table.
- AI players: practise against 1–3 AI, or let AI fill the empty seats when the host starts early. Seated NPCs play the AI seats.
- Turn timer: AFK players get their turn played for them, and are removed after
Config.AfkLimittimeouts. - Configurable rules: exit on 6 (or 1 and 6), extra roll on a 6, capture or getting home, three sixes lose the turn, safe stars, blocks, play on for places. Snakes & Ladders: exact finish on 100 or bounce back, extra roll on a 6, three sixes.
- Admin table placement (
/ludotables): fly camera and gizmo, a choice of table and chair models, four auto-arranged chairs. Saved to the database. - Server-authoritative: the server rolls every die and validates every move.
- Optional stakes and item reward, invites from the target eye, a leaderboard per game.
- Played on the real board only: no 2D screen. If the props aren't streamed,
/ludotells the player instead of starting a game. - 0.00 ms idle.
Requirements
| Resource | Needed? |
|---|---|
| oxmysql | Required |
| qb-core / qbx_core / es_extended | Optional, detected automatically (standalone works too) |
| ox_target / qb-target | Optional. Without one, players walk up and press E |
| object_gizmo + ox_lib | Needed to move/rotate props in the admin placement tool |
| ox_lib / qb-menu | Optional: nicer leaderboard and prompts |
Installation
- Put the
lumo-ludofolder in yourresourcesfolder. - 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-ludo - Start the server. The database tables are created automatically.
- In game, as an admin, run
/ludotables→ + New table here → place it → Save.
Full guide: Installation.
Commands
| Command | Who | What |
|---|---|---|
/ludotables | Admin | Place, edit, move, delete tables; pick each table's games |
/ludo | Everyone | Open the lobby while standing at a table (both games) |
/ludoboard | Everyone | Top 10 Ludo players by wins |
/ludoboard snl | Everyone | Top 10 Snakes & Ladders players (ox_lib menus have a switch button) |
Controls (at the table)
| Input | Action |
|---|---|
| Hold left mouse on the die, drag/shake, release | Throw the die; a gentle release lands in the middle |
| Right-click while holding the die | Cancel and put it back |
| Space | Quick-roll the die |
| Mouse | Ludo: click a glowing token, or the square it would land on. Snakes & Ladders moves by itself |
| Enter | Host: start now (empty seats get AI) |
| Mouse wheel / V | Switch between the close and the whole-table camera |
| Backspace ×2 | Leave the table |
How to play
Ludo
- Each player has 4 tokens in their yard. A 6 brings one out onto your start square.
- Tokens run clockwise once round the board, then up your colour's home column to the centre. Getting home needs the exact number.
- Land on a rival's token to send it back to its yard. Start squares and stars are safe.
- A 6, a capture or getting a token home gives another roll. Three sixes in a row lose the turn.
- The first player with all four tokens home wins. With
endOnFirst = falsethe others play on for 2nd and 3rd.
Snakes & Ladders
- Each player has one token beside square 1. Roll and it walks that many squares by itself; the face shows where it is going.
- End on the foot of a ladder to climb it, on the head of a snake to slide down (one jump per move). Tokens can share squares; nobody is captured.
- Landing on 100 wins. It needs the exact roll (or, with
bounceBack, an overshoot walks back from 100). A 6 rolls again; three sixes lose the turn.
Configuration
Everything is in config.lua and commented. The options owners change most:
| Option | Default | What it does |
|---|---|---|
Config.Framework / Config.Target | 'auto' | Force a framework / target |
Config.Rules | classic | Ludo: exit rolls, extra rolls, three sixes, stars, blocks, play on |
Config.Snl | classic | Snakes & Ladders: exact finish, bounce back, extra roll, three sixes, play on |
Config.DefaultTableGames | 'ludo' | Games of tables without a setting: 'ludo', 'snl' or 'both' |
Config.BothIdleBoard | 'ludo' | Board a 'both' table shows while nobody plays |
Config.TurnSeconds / AfkLimit | 20 / 3 | Turn timer and AFK removal |
Config.FillEmptyWithAI / AutoStartWhenFull | on / on | How a hosted game starts |
Config.AllowSolo | true | Practice against AI |
Config.Bet | off | Cash stake per player, winner takes the pot (never with AI) |
Config.WinReward | off | Chance of an item for the winner |
Config.Admin.tableModels / chairModels | 4 / 5 models | Props offered in the admin panel |
Config.Table3D | tuned | Camera, keys, hover colour |
Seat height: change that chair model's sitZ in Config.Admin.chairModels.
Troubleshooting
- "Admins only": add your group to
Config.Admin.permissions, oradd_ace group.admin command allow. - "3D board not loaded": the
stream/folder or the ytypdata_fileline is missing (for Snakes & Ladders, thelumo_ludo_snl_boardfiles). Restore them and clear the FiveM cache. - No "Play Ludo" option: start your target resource before lumo-ludo, or set
Config.Target = 'none'. - Clicks land on the wrong square: set
Config.Table3D.debugGrid = true, check the numbers, then flipfaceFlipU/faceFlipV.
Support
Store, updates and other releases: https://lumo-server.tebex.io/