Skip to content

Lumo Jhandi Munda ​

Jhandi Munda and Kauda betting tables for up to four players.

Version 1.0.0 · Frameworks QBCore · Qbox · ESX · standalone

Config files · Exports & events · Changelog

House betting tables on the streamed Jhandi mat or Kauda mat. Opening a table starts repeating betting, throw and payout rounds; up to four players can join. Jhandi uses six symbol dice. Kauda bets on the exact mouth-up count of sixteen shells.

Setup ​

  1. Start oxmysql and your framework before this resource. QBCore, Qbox, ESX and standalone are auto-detected. object_gizmo enables precise table/chair placement; ox_target or qb-target enables table targeting. The nearby command also opens the lobby.
  2. Add ensure lumo-jhandimunda to server.cfg after oxmysql and your framework. On a running server, run refresh, then ensure lumo-jhandimunda in the console.
  3. Tables and the shared leaderboard schema are created automatically; no SQL import is needed. sql/install.sql is supplied for manual installs.
  4. As an admin, run /jhanditables, choose New table here, place the furniture/chairs, choose the game where offered, and save. There are no fixed tables by default. Saved placements survive resource/server restarts.
  5. Stand near the board and use the target or /jhandi. /jhandiboard displays the leaderboard.

Set options in config.lua. Admin access follows the framework permissions in Config.Admin, with the configured ACE fallback. No source build is required to test: the compiled NUI ships in html/dist.

Controls ​

Click a symbol/number to add a chip. Q/E changes the chip value. The mouse wheel zooms between close and overview views. Right-click removes your bet on that spot; R repeats the previous round and X clears your bets. V changes the camera; press Backspace twice to stand up.

In-game test checklist ​

  • Place, edit and delete a table; restart the resource and confirm saved furniture returns.
  • Test both Jhandi and Kauda: chip values, remove/clear/repeat, insufficient funds, round limits, payouts, joining during a round and standing up after stakes lock. Config.FreePlay = true uses practice chips; the default charges framework cash when betting closes.
  • Verify the board/pieces align at different headings, both camera views work, and leaving restores controls and the camera.

The automated suite checks Lua syntax, rules and server sessions without a FiveM client. Model rendering, CEF textures, seating, targeting and live multiplayer still require in-game testing.

Source and verification ​

  • client/, server/, shared/: game, table editor, rendering and rules.
  • framework/: per-resource framework adapter.
  • nui/src/: React lobby/admin UI; html/dui/: in-world board face.
  • shared/props.lua and docs/ASSETS.md: streamed model geometry contract.
  • blender/: original model/texture build scripts; stream/: exported props.

From the repository root: ./tests/lumo/run.sh. Rebuild UI changes with npm run typecheck && npm run build from this resource's nui/ folder.

Rebuild ​

Needs Blender 5.2 LTS, Sollumz 2.9 and texconv.exe (Microsoft DirectXTex) on PATH or in %USERPROFILE%\.local\bin (the lumo-ludo pipeline).

  1. Only if the art changed: python blender/make_textures.py (Python 3 + Pillow + numpy).
  2. Blender → Scripting → Text → Open blender/build_all.py → Run Script (or blender --background --python blender/build_all.py). It empties the open scene, rebuilds every prop, exports to stream/ and saves blender/lumo_jhandimunda.blend.
  3. Never hand-edit the files in stream/; change the scripts and run again.

Blender MCP prompt: "Run blender/build_all.py in Blender with __file__ set to its path, show me the report and the files it wrote, then screenshot the props in Material Preview."

Credits ​

Models, textures and scripts are original work for lumo-jhandimunda. Exported with Sollumz; DDS conversion with Microsoft DirectXTex texconv.