Installation Guide
Install (or update) dependencies and optional
Verify all dependencies below are started before this script in your server.cfg.Required
Resource
Purpose
oxmysql
Database driver for player data, ranking, and match history. Download oxmysql
Framework
One of: qb-core, qbx_core (QBox), es_extended (ESX Legacy)
Inventory
One of: ox_inventory, qb-inventory, qs-inventory
Optional
Resource
Purpose
ox_lib
Enhanced notifications. Download ox_lib
ox_target or qb-target
Target-based board interaction (alternative to DrawText)
Install cdev_ludus and create a new subfolder or extract folder to server's root
nstall resource from Portal
After installing, you should get a zip file with the name shown below.
cdev_ludus.pack.zip
If you haven’t already, create a new subfolder named [cdev] in your server’s root resources directory. Unzip (extract) this script into the newly created [cdev] subfolder.
Add ACE permission
Open your server.cfg and add the following ACE permission:
add_ace group.admin cdev_ludus.admin allowor
add_ace identifier.license:xxxxxxxxxxxx cdev_ludus.admin allowImportant: If you are on the Qbox framework, the recommended place to paste the above permission is inside the permissions.cfg file instead of server.cfg.
Update server.cfg & perform a full restart
Once all other steps are completed, open your server.cfg & add ensure cdev_ludus to the very bottom of your resource start list (after oxmysql, your framework, inventory, and target if used). Finally, perform a full server restart. Failure to perform a full restart after installation will cause errors.
Note: Once completed, use /ludusgaming in-game to open the hub, or use the Ludus board item to place a table and play!

Add the Ludus board item
The item name must match LudusConfig.Item.name (default: ludus_board). Follow the guide for your inventory:
Location: ox_inventory → data → items.lua
Open
resources/[ox]/ox_inventory/data/items.luaAdd the item inside the return table (with other items):
['ludus_board'] = {
label = 'Ludus Board',
weight = 500,
stack = true,
close = true,
consume = 0,
description = 'Use to place a Ludus table. Aim, rotate, then press E to confirm.',
server = {
export = 'cdev_ludus.useLudusBoard'
}
},Important: keep consume = 0. The resource removes the item when placement starts and returns it if you cancel. Do not set consume = 1.
Add the image
ludus_board.pngto your inventory's images folder (e.g.ox_inventory/web/images/).Save the file and perform a full server restart.
Location: qb-core → shared → items.lua
Open
resources/[qb]/qb-core/shared/items.luaAdd the item inside the
QBCore.Shared.Itemstable:
['ludo_board'] = {
name = 'ludo_board',
label = 'Ludo Board',
weight = 500,
type = 'item',
image = 'ludo_board.png',
unique = false,
useable = true,
shouldClose = true,
description = 'Use to place a Ludo table. Aim, rotate, then press E to confirm.',
},Add the image
ludo_board.pngto your inventory's images folder (e.g.qb-inventory/html/images/).Save the file and perform a full server restart.
Location: depends on your framework:
QBCore:
qb-core→shared→items.luaESX:
qs-inventory→shared→items.lua
Open the items file for your framework.
Add the Ludo board item in the same format as your other items. Example:
Add
ludo_board.pngto your inventory's images folder.Save the file and perform a full server restart.
If you have a custom framework, custom notify, custom inventory, and custom target, please read our configuration documentation so you can understand how to adapt it by clicking the link below.
Stream models checklist
Ensure the resource includes the stream/ folder with the Ludus models and cdev_board_game.ytyp.
Default models:
Board
cdev_board
Dice
cdev_player_dice
Pawns
cdev_player_red / blue / green / yellow
Furniture uses native GTA props (prop_table_02, prop_chair_02). Stake chips use Diamond Casino props (vw_prop_chip_*) with a cash-pile fallback.
Do not rename stream files unless you also update LudusConfig.Props in public/shared/config.lua.
Last updated