Skip to content

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.AfkLimit timeouts.
  • 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, /ludo tells the player instead of starting a game.
  • 0.00 ms idle.

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

Installation ​

  1. Put the lumo-ludo 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-ludo
  3. Start the server. The database tables are created automatically.
  4. In game, as an admin, run /ludotables → + New table here → place it → Save.

Full guide: Installation.

Commands ​

CommandWhoWhat
/ludotablesAdminPlace, edit, move, delete tables; pick each table's games
/ludoEveryoneOpen the lobby while standing at a table (both games)
/ludoboardEveryoneTop 10 Ludo players by wins
/ludoboard snlEveryoneTop 10 Snakes & Ladders players (ox_lib menus have a switch button)

Controls (at the table) ​

InputAction
Hold left mouse on the die, drag/shake, releaseThrow the die; a gentle release lands in the middle
Right-click while holding the dieCancel and put it back
SpaceQuick-roll the die
MouseLudo: click a glowing token, or the square it would land on. Snakes & Ladders moves by itself
EnterHost: start now (empty seats get AI)
Mouse wheel / VSwitch between the close and the whole-table camera
Backspace ×2Leave 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 = false the 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:

OptionDefaultWhat it does
Config.Framework / Config.Target'auto'Force a framework / target
Config.RulesclassicLudo: exit rolls, extra rolls, three sixes, stars, blocks, play on
Config.SnlclassicSnakes & 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 / AfkLimit20 / 3Turn timer and AFK removal
Config.FillEmptyWithAI / AutoStartWhenFullon / onHow a hosted game starts
Config.AllowSolotruePractice against AI
Config.BetoffCash stake per player, winner takes the pot (never with AI)
Config.WinRewardoffChance of an item for the winner
Config.Admin.tableModels / chairModels4 / 5 modelsProps offered in the admin panel
Config.Table3DtunedCamera, 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, or add_ace group.admin command allow.
  • "3D board not loaded": the stream/ folder or the ytyp data_file line is missing (for Snakes & Ladders, the lumo_ludo_snl_board files). 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 flip faceFlipU / faceFlipV.

Support ​

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