Docs/ORB Slots/Configuration

Configuration

All configuration lives in config.lua. Below are the values you'll most likely touch — defaults shown.

Pre-Production Checklist

Three switches the server warns about on boot if left wrong:

lua
Config.DevCommands   = false   -- calibration commands off in production
Config.TestMode      = { enabled = false, balance = 1000000 }
Config.Machines      = { ... }  -- place / populate your machines

Globals

lua
Config.Framework = 'auto'   -- 'auto' | 'qbx' | 'qb' | 'esx'
Config.Locale    = 'en'     -- 'es' | 'en' | 'pt' | 'fr' | 'ar' (Arabic = RTL)
Config.Debug     = false

Bets & RTP

lua
Config.MinBet        = 10
Config.MaxBet        = 500
Config.BuyBonusCost  = 100     -- × bet
Config.AnteMult      = 1.25
Config.RTP           = 0.96    -- valid range [0.80, 0.99]; paytables auto-calibrate
Config.MaxWinPerSpin = 4600000 -- hard cap per spin (scales with MaxBet)
Config.RateMax       = 40      -- rate limit: 40 spins…
Config.RateWindow    = 5       -- …per 5 seconds, per player
Config.LogHistory    = true

Currency & Account

lua
Config.Account  = 'cash'       -- 'cash' | 'bank' (use 'bank' to avoid per-spin toasts on QBox+ox_inventory)
Config.Currency = {
    mode       = 'money',      -- 'money' | 'chips'
    chipsItem  = 'casino_chip',
    moneyLabel = '$',
    chipsLabel = 'fichas',
}

Progressive Jackpot

lua
Config.Jackpot = {
    enabled         = true,
    contributionPct = 0.01,    -- 1% of bets, taken FROM the RTP (return unchanged)
    scaleWithBet    = true,
    tiers = {
        mini  = { seed = 1000,   chance = 1/8000    },
        minor = { seed = 5000,   chance = 1/40000   },
        major = { seed = 25000,  chance = 1/200000  },
        grand = { seed = 100000, chance = 1/1000000 },
    },
}

Safety Systems (off by default)

lua
Config.Limits = { enabled = false, dailyLoss = 0, dailyWin = 0, dailySpins = 0, dailyWagered = 0 }
Config.Bank   = { enabled = false, lossThreshold = 500000, action = 'warn' } -- 'warn' | 'reduce_rtp' | 'close'
Config.BigWin = { enabled = true, multiplier = 100, minAmount = 50000, announceGlobal = false }

Admin & Discord

lua
Config.Admin = {
    useAce          = true,
    acePermission   = 'orb_slots.admin',
    autoGrantGroups = { 'group.admin', 'group.superadmin', 'group.owner', 'group.god' },
    command         = 'slotcreator',
}
Config.Webhooks = {
    enabled = false,
    default = '',
    byKind  = { bigwin = '', jackpot = '', admin = '', rollback_failed = '', anomaly = '', bank = '' },
}
Config.Leaderboard = { enabled = true, size = 10, command = 'slotsleaderboard' }
The RTP is authoritative: whatever paytable a game uses, the server adjusts the losing weight so the machine returns exactly `Config.RTP`. Jackpot contribution comes out of that return, so enabling the jackpot never changes the house edge.