Skip to content

Configuration

The options of Cuxial Casino: shared/config.lua by section, the membership tiers in data/, and what the admin panel edits live.

All the options live in shared/config.lua, each with a short comment. Membership tiers are in data/membership.lua. The other files in data/ hold the positions of machines, tables, rooms and NPCs measured for the casino map; leave them as they are.

Most gameplay options can also be changed live from /casinoadmin. A value saved in the panel is stored in the database and takes precedence over the file. Reset on a field of the panel goes back to the value in shared/config.lua.

General ​

OptionTypeDefaultWhat it does
debugbooleanfalsetrue prints diagnostics to the console. The cuxial_casino_debug convar set to 1 does the same.
ui.accentstring (hex)configurableMain accent colour of the interface.
ui.accent2string (hex)configurableSecondary accent colour.
ui.cashierSidestring'right'Side of the screen where the cashier panel opens: 'left' or 'right'.
ui.currencytable{ symbol = '$', locale = 'es-ES' }Currency symbol and number format of the amounts in the interface.
hud.enabledbooleantruetrue shows the chip total on screen while inside the casino.

Casino area · area ​

OptionTypeDefaultWhat it does
polygonbooleantruetrue uses the measured outline of the casino floor. false uses the circle below.
marginnumber1.0Metres of tolerance around the outline.
coords, radiusvector3, numbercasino centre, 50.0Fallback circle when polygon is false.

Cashier · cashier ​

OptionTypeDefaultWhat it does
minAmount, maxAmountnumber10, 500000Minimum and maximum of each buy, cash-out or change.
accountsstring[]{ 'cash', 'bank' }Accounts players pay with and are paid into.
commissionnumber0.02Commission when cashing out chips. 0.02 is 2 %, rounded up.
daily.buy, daily.sellnumber25000, 25000Daily buy and cash-out caps per character without a membership.
staff.enabledbooleantruetrue lets a cashier on duty take over a window. false keeps the NPC at every window.
staff.requestMsnumber20000Milliseconds the cashier has to accept a request.
staff.queueMaxnumber6Requests waiting per window.
staff.autoOpenbooleantruetrue opens the request panel for the cashier when one arrives.
staff.pay.fixednumber15Fixed commission per accepted operation.
staff.pay.ratetablesee fileShare of the amount per operation type: buy, sell, exchange, redeem, membership, card.
staff.pay.maxPerOpnumber500Cap of the cashier commission per operation.

Casino fund · fund ​

OptionTypeDefaultWhat it does
enabledbooleantruetrue moves every purchase, cash-out, prize and commission through the fund.
societystring'casino'Society account used as the fund. See Installation.
requireBalancebooleantruetrue refuses a cash-out, voucher or prize the fund cannot cover. false pays anyway, leaves the fund at 0 and records the shortfall in the ledger and the console.

Memberships · membership and data/membership.lua ​

OptionTypeDefaultWhat it does
requireCardbooleanfalsetrue requires carrying the card for the membership to count. false only needs the membership stored on the character.
duplicatePricenumber500Price of a replacement card at the cashier.
renewWindowDaysnumber3Days before expiry from which the same tier can be renewed. 0 only after it expires.
creditRatenumber1.0Share of the remaining days' value discounted or refunded when changing tier. 1.0 is all of it.

Each tier in data/membership.lua:

FieldWhat it does
idsilver, gold or diamond.
price, daysPrice and length of a period.
colorColour of the tier in the interface.
daily.buy, daily.sellDaily buy and cash-out caps for members of the tier.
viptrue gives access to the VIP rooms and tables, and lets the member invite guests.
freeDrinkstrue gives bar.freePerHour free drinks per hour.
welcomeDrinktrue gives one welcome drink per visit from the Gold Room waitress.

Prize vouchers · tickets ​

OptionTypeDefaultWhat it does
payoutstring'cash'How a voucher is paid at the cashier: 'cash' or 'bank' (from the fund), or 'chips'.
maxAmountnumber100000000Maximum amount of a voucher.

Slot machines · slots ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse stops every machine.
disabledThemesstring[]{}Themes whose machines do not accept spins: vinewood, frutas, galanoir, vespucci, codigo3, barrio, patron, sandy, diamantes, cayo, golpe, muelle, ovni, littleseoul.
keystable1, 2, SPACE, F, CDefault keys: betOne, betMax, spin, lever, camera.
allowPromobooleantruetrue accepts promotional chips.
ticketThresholdnumber25000Prizes from this amount are paid with a voucher. Jackpots always are.
maxWinnumber or falsefalseAbsolute cap per spin. false keeps only the cap of each game.
jackpot.contributionnumber0.01Share of each bet that goes to the theme's jackpot.
jackpot.seednumber25000Amount a jackpot starts from after it is won.
jackpot.capnumber250000Maximum a jackpot can reach.
soundsbooleantruetrue plays the machine sounds for nearby players.
screen.audio.enabledbooleantruetrue plays the screen's music and effects for the seated player.
screen.audio.volume, screen.audio.musicnumber0.6, 0.35General and music volume, from 0 to 1.
camera.enabledbooleantruetrue uses the slot cameras while seated.
camera.presetstring'arriba'Framing of the screen view: 'arriba' (from above the head), 'frontal_cerca' or 'frontal_lejos'.

Blackjack · blackjack ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse closes the blackjack tables.
tables.normal, tables.viptable60–5000, 500–50000Minimum and maximum bet. VIP tables require a Gold or Diamond membership, or an invitation.
rules.decksnumber6Decks in the shoe.
rules.penetrationnumber0.75Share of the shoe played before reshuffling.
rules.standSoft17booleantruetrue makes the dealer stand on soft 17.
rules.blackjackPaysnumber1.5Blackjack payout: 1.5 is 3:2.
rules.doubleAfterSplitbooleantruetrue allows doubling after a split.
rules.maxSplitsnumber1Splits per hand.
timing.betMs, timing.turnMsnumber20000, 15000Milliseconds to bet from the first chip, and per turn.
allowPromobooleantruetrue accepts promotional chips.
ticketThresholdnumber or falsefalseReturns from this amount are paid with a voucher. false uses the slot threshold.
keystableRETURN, SPACE, D, S, B, Chit, stand, double, split, chips, camera.
camera.viewstring'seat'Camera on sitting down: 'seat', 'dealer', 'top' or false.
luxCardstable{ normal = false, vip = true }Luxury deck per table type.
speech, soundsbooleantrueDealer voice and table sounds.

Roulette · roulette ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse closes the roulette tables.
tables.normal, tables.viptablesee filemin and max per spot and round total per player and round.
rules.chipStepnumber10Bets go in multiples of this amount.
rules.maxSpotsnumber30Different spots a player can bet on per round.
timing.betMsnumber25000Milliseconds of betting from the first bet.
timing.spinMsnumber10000Milliseconds until the dealer launches the ball, with bets still open.
allowPromobooleantruetrue accepts promotional chips.
ticketThresholdnumber or falsefalseAs in blackjack.
historynumber100Numbers each table remembers for the history and the hot and cold numbers.
keystableB, Cchips, camera.
camera.view, camera.spinViewstring'felt', 'wheel'Camera on sitting down ('felt', 'wide', 'wheel' or false) and while the ball spins (false keeps the current one).
hoverbooleantruetrue marks on the felt the numbers covered by the spot under the cursor.
speech, soundsbooleantrueDealer voice and table sounds.

Three Card Poker · threecard ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse closes the tables.
tables.normal, tables.gold, tables.viptablesee fileAnte min/max and Pair Plus plusMin/plusMax. Gold Room and VIP tables require a Gold or Diamond membership, or an invitation.
rules.qualifynumber12Lowest dealer hand that qualifies. 12 is queen high.
rules.plusNeedsAntebooleantruetrue only allows Pair Plus together with an ante.
rules.anteBonustablestraight 1, trips 4, straightflush 5Ante bonus, paid to 1.
rules.pairPlustablepair 1 … straightflush 40Pair Plus pay table, paid to 1.
timing.betMs, timing.decideMsnumber20000, 20000Milliseconds to bet and to decide.
allowPromobooleantruetrue accepts promotional chips.
ticketThresholdnumber or falsefalseAs in blackjack.
keystableRETURN, X, SPACE, B, Cplay, fold, look, chips, camera.
camera.viewstring'seat''seat', 'wide', 'dealer', 'top' or false.
autoLookbooleanfalsetrue picks up the cards when the decision starts. false waits for the look key.

Texas Hold'em · poker ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse closes the poker table.
blinds, buyIntable50/100, 2000–50000Blinds and buy-in of tables without a profile. A rebuy never goes over the maximum.
stakestablehighProfiles with their own blinds and buy-in. The Gold Room table uses high.
stepnumber10Every amount goes in multiples of this.
minPlayersnumber2Players with chips needed to deal.
rake.percent, rake.capnumber5, 5000House share of each pot and cap per hand.
rake.noFlopNoDropbooleantruetrue takes no rake when the hand ends before the flop.
timing.actMsnumber20000Milliseconds per turn.
timeBanktable30000, refill 5000 every 10 handsExtra time per player.
sitOut.timeouts, sitOut.kickMsnumber2, 600000Timeouts in a row before sitting out, and milliseconds sitting out before being stood up and paid.
postNewbooleantruetrue makes a player who joins mid-game or comes back post a big blind.
allowPromobooleanfalsePoker only takes normal chips.
audit.minPotnumber10000Hands with a pot from this amount are recorded in the ledger with every action.
keystableX, SPACE, RETURN, H, B, Cfold, call, raise, look, chips, camera.
autoLookbooleantruetrue picks up the cards when they are dealt.

Lucky wheel · wheel ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse stops the wheel.
cooldownHoursnumber24Hours between free spins per character.
weightstablesee fileWeight of each prize. Probability = weight ÷ sum of weights. With the defaults the car is 1 in 500.
cashAccountstring'cash'Account cash prizes go to, paid from the fund.
vip.days, vip.tiernumber, string7, 'silver'Days added to the current membership; a player without one gets this tier.
mysterytable[]see fileMystery prizes by weight: item, chips, cash or vip.
car.enabledbooleantruetrue gives the car prize.
car.modelstring'neon'Model of the car, also shown on the podium.
car.garagestringexampleGarage the car is stored in. Use a garage name that exists on your server.
car.fallbacktable{ kind = 'cash', amount = 50000 }Prize given if the car cannot be delivered.
podium.enabledbooleantruetrue shows the car turning on the podium.
keystableE, BACKspin, leave.
lights, soundsbooleantrueWheel lights and sounds.

Inside Track · horses ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse closes the betting room.
odds.marginnumber0.05House edge. 0.05 returns 95 %.
single.min, single.maxnumber100, 10000Bet limits of the single race.
main.min, main.maxnumber100, 50000Bet limits of the main event.
main.everyMinnumber15Minutes between main events, on the clock.
main.betMsnumber300000Milliseconds bets stay open before the start.
ticketThresholdnumber or falsefalseAs in blackjack.
allowPromobooleantruetrue accepts promotional chips.
speech, soundsbooleantrueCommentator and sounds.

Casino job · job ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse turns off clocking in and every post.
namestring'casino'Name of the job in your framework.
poststablesecurity 1, bartender 2, cashier 3, dealer 4Minimum grade of each post.
perms.expelnumber1Grade to escort out and expel.
perms.bannumber1Grade to ban up to banHours.short hours.
perms.banLongnumber5Grade to ban up to banHours.long hours or permanently, and to lift bans.
perms.managenumber5Grade to take the penthouse lift without a card and to use the boss office.
perms.tableControlnumber5Grade to close bets early when dealer.closePerm is 'tableControl'.
banHourstable{ short = 24, long = 720, permanent = true }Ban caps of ban and banLong. permanent lets banLong ban without an end.
dealerRatenumber0.005Dealer commission on what is bet at their table.
payAccountstring'bank'Account commissions and tips are paid into.
hourlyCapnumber6000Maximum an employee earns per hour in commissions and tips. -1 removes the cap, 0 pays nothing.
lockertable{ slots = 30, weight = 60000 }Size of the personal locker.

Expelling, banning, closing bets and the lift without a card also require being on duty. The boss office does not.

Player dealers · dealer ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse keeps the NPC dealer at every table.
gamestableblackjack, roulette, threecard trueGames a player dealer can take.
closePermstring or falsefalsePermission from job.perms needed to close bets early. false lets any dealer running the table do it.
rouletteCloseMsnumber5000Milliseconds until the roulette launches the ball after closing early.
notifyCommissionbooleantruetrue notifies the dealer of each commission.
keystableG, Xclose, leave.
tip.enabledbooleantruetrue lets players tip the dealer in chips.
tip.amountsnumber[]{ 10, 50, 100, 500 }Tip buttons.
tip.min, tip.maxnumber10, 5000Tip limits.

Bar · bar ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse closes the bar.
drinkstablesee filePer drink: price in money, chips price, drinks it adds and free (whether it counts for the free drinks of the membership).
beerItemstring'casino_beer'Item the player takes away when ordering a beer.
maxDrinksnumber9With more drinks than this, nothing is served.
champagneMaxnumber4From this many drinks, no champagne.
accountsstring[]{ 'chips', 'cash', 'bank' }Payment methods of the menu.
allowPromobooleanfalsetrue accepts promotional chips at the bar.
freePerHournumber6Free drinks per hour for tiers with freeDrinks.
queueMax, orderTtlMsnumber12, 180000Orders waiting for a player bartender, and milliseconds before an unprepared order is cancelled.
staffSharenumber0.2Share of the price the bartender earns, multiplied by the minigame result.

Drunkenness · drunk ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse makes drinks have no effect and never block playing.
maxDrinksnumber15Maximum drinks that add up.
secondsPerDrinknumber60Seconds of drunkenness each drink adds.
playLimitnumber9With more drinks than this, no sitting down to play and no cashier.
effects.timecycleFrom, effects.shakeFromnumber2, 2Drinks from which the drunk filter and the camera shake start.
effects.walkFromnumber3Drinks from which the drunk walk starts.
effects.shakeMaxnumber1.0Maximum camera shake.
items.enabledbooleantruetrue makes ox_inventory items with status = { drunk = X } use this system anywhere on the map.
items.perDrinknumber10drunk points that equal one drink. Negative values remove drinks.
items.maxPerChangenumber40Maximum points one item can add or remove.
passOut.enabledbooleanfalsetrue makes a player pass out at passOutAt drinks and wake up somewhere else, picked by the weights in wake.
passOutAtnumber10Drinks to pass out, with passOut.enabled.
deathBagstring'isDead'Player state bag that marks a dead or downed player. Change it to the one your medical script uses.

VIP rooms · vip ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse turns off VIP invitations.
gueststable{ gold = 1, diamond = 3 }Guests at once per tier.
guestHoursnumber3Hours an invitation lasts.
endWhenHostLeavesbooleantruetrue ends the invitation when the host leaves the casino.
inviteDistancenumber3.0Maximum distance to invite.
bossGradenumber5Minimum grade to enter the boss office.
diamondStaffPermstring'manage'Permission from job.perms that lets employees on duty into the penthouse.
adminBypassbooleanfalsetrue lets staff with the admin permission into every area.

Security · security ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse removes the security options.
poststring'security'Post that sees the security options on players.
distancenumber3.0Maximum distance to the target.
presetsnumber[]{ 1, 6, 24, 72, 168, 720 }Ban lengths offered, in hours, filtered by the grade's cap.
reasonMin, reasonMaxnumber3, 120Length of the ban reason.
throwout.enabledbooleantruetrue plays the bouncer scene at the main door when expelling or banning. false makes the player walk out.
adminBypassbooleantruetrue lets staff with the admin permission expel and ban without clocking in and without limits.

Penthouse lift · lift ​

OptionTypeDefaultWhat it does
enabledbooleantruefalse turns off the lift.
staffPermstring'manage'Permission from job.perms that rides without a card.
keystring'E'Key to use the lift panel.
holdMsnumber5000Milliseconds the doors stay open on arrival.

Boss office · office and bossApp ​

OptionTypeDefaultWhat it does
office.enabledbooleantruefalse turns off the office interactions.
office.permstring'manage'Permission from job.perms that uses the office, besides staff.
office.screentable or falseoffice monitorScreen of Cuxial Screens opened by Computer. false keeps only the animation.
office.whisky.drinksnumber1Drinks the office whisky adds.
bossApp.enabledbooleantruefalse removes the management app.
bossApp.fundtable{ accounts = { 'bank', 'cash' }, max = 5000000 }Accounts and maximum per deposit or withdrawal.
bossApp.paytable{ max = 50000, dailyCap = 150000, account = 'bank' }Maximum per manual payment, casino daily cap (-1 no cap, 0 no payments) and the account the employee is paid into.
bossApp.hiretable{ nearby = 8.0, offerSec = 20 }Distance for the nearby list and seconds a job offer lasts.
bossApp.banstable{ maxHours = 720, permanent = true }Ban cap of the boss.
bossApp.members.maxDaysnumber90Maximum days the boss can give or add to a membership.

Admin panel · admin ​

OptionTypeDefaultWhat it does
permissionstring'admin'Permission checked through Cuxial Bridge for the panel.
commands.admintable{ name = 'casinoadmin', restricted = 'group.admin' }Command name and the ACE group required.
alerts.fundLownumber250000Fund balance below which the summary shows an alert.
alerts.rtpDriftnumber0.05Deviation of the real return from the target that raises an alert.
alerts.minWagerednumber100000Amount wagered before the real return is shown.
alerts.bansHoursnumber24Hours of recent bans shown in the alerts.
pageSizenumber25Rows per page in lists and logs.
reasontable{ min = 3, max = 160 }Length of the reason required for sensitive changes.

Hints, NPCs and ambience ​

OptionTypeDefaultWhat it does
tips.enabledbooleantruetrue shows the first-visit hints on the right of the screen.
tips.positionstring'bottom''bottom' (bottom right) or 'center' (right, above the chip total).
tips.oncestring or false'character'Do not repeat a seen hint: 'character', 'session' or false.
tips.dismissKeystring'DELETE'Key that dismisses the visible hint.
tips.soundbooleantrueSoft chime when a hint appears.
staffnpc.enabledbooleantruefalse removes every staff and client NPC.
staffnpc.reception, guards, chief, waitress, clients, goldWaitressbooleantrueReceptionist, guards, head of security, floor waitress, groups of standing clients and Gold Room waitress.
staffnpc.tipsbooleantruetrue shows the hints on each character's first visit.
staffnpc.clientsMaxnumber12Maximum standing clients.
staffnpc.goldService.drinkstring'champ_silver'Drink served by the Gold Room waitress.
npcSlots.enabledbooleantruetrue seats NPCs at the bar and at some slot machines. They get up when a player wants the machine.
ambience.enabledbooleantruetrue plays the casino ambience on entering.
ambience.wallabooleantrueBackground crowd and machines.
ambience.video.enabledbooleantrueVideo wall with the casino playlist.
ambience.pa.enabledbooleantruePublic address announcements every pa.intervalMs (30 minutes) and on arrival after pa.welcomeMs.
lounge.enabledbooleantruetrue lets players sit on the sofas and armchairs of the floor and the penthouse.

Advanced tuning ​

The blocks presence, batch, limits, walkout, seat, target, zones and the distances, timings, cameras and sync radii inside each game are tuned for the casino map and for performance. Each one is commented in the file. Change them only if you know what you need.

Common changes ​

shared/config.lua
lua
-- Higher table limits
blackjack = {
    tables = {
        normal = { min = 100, max = 10000 },
        vip = { min = 1000, max = 100000, membership = true },
    },
},

-- No cash-out commission and higher daily caps without membership
cashier = {
    commission = 0,
    daily = { buy = 50000, sell = 50000 },
},

-- Another car on the lucky wheel
wheel = {
    car = { enabled = true, model = 'adder', garage = 'your_garage', fallback = { kind = 'cash', amount = 50000 }, props = false },
},

Edit only the keys you need inside the existing blocks; do not replace whole blocks with these examples.

© Cuxial