Skip to content

Jhandi Munda: config files ​

These files stay readable in every build (escrow too), so you can change them. Shown as shipped in version 1.0.0.

config.lua ​

lua
Config = {}

-- ════════════════════════════════════════════════════════════════════════════
--  Lumo Jhandi Munda + Kauda — configuration
--  A house betting table: open it at a table and anyone sits down and bets.
-- ════════════════════════════════════════════════════════════════════════════

-- Framework: 'auto' | 'qbx' | 'qb' | 'esx' | 'standalone'. Target: 'auto' | 'ox' | 'qb' | 'none'.
Config.Framework = 'auto'
Config.Target = 'auto'

-- Developer commands and console output. Keep false on a live server.
Config.Debug = false

-- ── Players ─────────────────────────────────────────────────────────────────
Config.Command = 'jhandi'               -- opens the table menu while standing at a mat
Config.LeaderboardCommand = 'jhandiboard'
Config.TableDistance = 1.8
Config.AllowSolo = false                -- (no AI: the house plays every round)
Config.AllowSpectators = true
Config.JoinDistance = 0.0

-- ── Games ───────────────────────────────────────────────────────────────────
-- Every table plays 'jhandi', 'kauda' or 'both' (the player who opens it picks).
Config.DefaultTableGames = 'both'
Config.BothIdleBoard = 'jhandi'

-- ── Money ───────────────────────────────────────────────────────────────────
-- Real money from the framework account. Without a money framework (standalone)
-- or with FreePlay on, everyone plays with free chips (FreeChips each).
Config.Money = { account = 'cash' }
Config.FreePlay = false
Config.FreeChips = 1000
Config.Chips = { 10, 50, 100, 500, 1000 }   -- chip values (wheel / Q / E)
Config.MaxBetPerRound = 5000                 -- one player's total per round

Config.Rounds = {
    betSeconds = 15,       -- betting window
    shakeMs = 3800,        -- Jhandi Munda: cup over the dice, shake, reveal
    throwMs = 2200,        -- Kauda: the shells fly and settle
    resultMs = 5500,       -- winners shown before the next round
}

-- Jhandi Munda: six dice with Paan, Hukum, Itta, Chidi, Munda, Jhandi. A bet
-- wins when its symbol shows at least minMatch times and pays stake x pays[n]
-- on top of the stake (n = how many dice show it). Default ~86% return.
Config.Jhandi = {
    minMatch = 2,
    pays = { [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6 },
    maxPayout = 250000,
}

-- Kauda: 16 cowries; bet on how many land mouth up (0-16). A hit pays stake x
-- pays[count] on top of the stake. Default ~86% return.
Config.Kauda = {
    pays = {
        [0] = 50000, [1] = 3500, [2] = 450, [3] = 100, [4] = 30, [5] = 12, [6] = 6, [7] = 4, [8] = 3.5,
        [9] = 4, [10] = 6, [11] = 12, [12] = 30, [13] = 100, [14] = 450, [15] = 3500, [16] = 50000,
    },
    maxPayout = 250000,
}

-- Invite another player to the table through the target eye.
Config.Challenge = {
    enabled = true,
    tableDistance = 2.8,
    playerDistance = 3.0,
    timeoutSeconds = 15,
}

-- (Per-game stakes are not used here: every bet is its own stake.)
Config.Bet = { enabled = false, amount = 0, account = 'cash' }
Config.WinReward = { enabled = false, chance = 0, items = {} }

-- ── Admin table placement ───────────────────────────────────────────────────
-- /jhanditables: place a table + 4 chairs with the fly camera and the gizmo.
-- The Jhandi mat is 0.60 x 0.40 m and the dice + cup sit 0.3 m beyond its far
-- edge: pick a table at least ~1.0 m across. The Kauda mat is 0.50 m round.
Config.Admin = {
    command = 'jhanditables',
    permissions = { 'admin', 'god' },
    ace = 'command',
    maxPlaceDistance = 40.0,
    spawnDistance = 80.0,
    tableModels = {
        { model = 'apa_mp_h_din_table_04', label = 'Round dining table' },
        { model = 'prop_chateau_table_01', label = 'Chateau table' },
        { model = 'prop_table_03', label = 'Café table' },
        { model = 'none', label = 'None (use a world table)' },
    },
    chairModels = {
        { model = 'apa_mp_h_din_chair_08', label = 'Dining chair', yaw = 180.0, sitZ = 0.47 },
        { model = 'ch_prop_casino_chair_01a', label = 'Casino chair', yaw = 180.0, sitZ = 0.08 },
        { model = 'bkr_prop_clubhouse_chair_01', label = 'Clubhouse chair', yaw = 180.0, sitZ = 0.08 },
        { model = 'prop_chair_01a', label = 'Plastic chair', yaw = 180.0, sitZ = 0.05 },
        { model = 'none', label = 'None (use world chairs)', yaw = 0.0 },
    },
    chairGap = 0.42,
}

Config.BotPeds = {}
Config.BotNames = {}
Config.BotSitZ = 0.0
Config.Bot = { thinkMs = 0 }
Config.FillEmptyWithAI = false
Config.AutoStartWhenFull = false
Config.TurnSeconds = 30
Config.AfkLimit = 0

Config.SeatPlayers = true
Config.SeatZOffset = 0.0

-- ── 3D table ────────────────────────────────────────────────────────────────
-- Click a spot to bet, right-click to take it back, Q / E: chip value; wheel: zoom,
-- R: repeat last bets, X: clear. V: close or whole-table view. Backspace twice stands up.
Config.Table3D = {
    camHeight = 0.78,
    camBack = 0.55,
    camSway = false,
    lightIntensity = 0.0,  -- no added lamp/glare; raise slightly only for dark interiors
    camFov = 50.0,
    aim = 0.08,
    overview = { height = 1.4, back = 1.3, aim = 0.1, fov = 52.0 },
    startView = 'focus',
    surfaceOffset = 0.0,
    fallbackHeight = 0.45,
    boardYawOffset = 0.0,
    leaveKey = 194,
    faceFlipU = false,
    faceFlipV = false,
    debugCommand = 'jhandi3dtest',
}

Config.CamHideHud = true

-- ── Fixed tables (optional) ─────────────────────────────────────────────────
-- chairs: vector4 with the sit heading, clockwise: 1 (-Y edge), 2 (-X), 3 (+Y), 4 (+X).
Config.UseConfigTables = false
Config.Tables = {}
if not Config.UseConfigTables then Config.Tables = {} end

Config.ShowBlips = false
Config.ShowMarkers = false
Config.BlipSprite = 680
Config.BlipColour = 25
Config.BlipName = 'Jhandi Munda'

Config.DevPlaceCommand = 'jhanditablehere'