Configuration Guide
Everything lives in config.lua and stays editable in the encrypted version. Framework, inventory and notification settings are not part of this script; they are handled by vns-core.
Core options
| Option | Default | What it does |
|---|---|---|
Config.Lang |
- | All player-facing strings: bet prompt, win message, "not enough credits", the seated help text and the currency label shown next to the bet |
Betting
Config.Play decides what a spin costs and what wins pay out in. Use exactly one of Item or Money:
| Option | Default | What it does |
|---|---|---|
Config.Play.Item |
true |
Bet and pay out with an inventory item |
Config.Play.Money |
false |
Bet and pay out with money instead |
Config.Play.ItemName |
'casinochips' |
The chips item (item mode) |
Config.Play.AccountType |
'cash' |
Money mode account: 'cash' (wallet) or 'bank', on every framework |
The bet amount itself is set per machine model (see below). The bet is checked and removed server-side before the reels are allowed to spin; a player who can't afford it gets the not_enough message. If both or neither of Item and Money are true, every spin is refused.
Payouts
The server rolls all three reels, and the payout is only granted when the client reports back exactly that result.
Three of a kind pays the symbol's multiplier from Config.Mult (payout = bet x multiplier):
| Symbol | Default multiplier |
|---|---|
1 |
25x |
2 |
50x |
3 |
75x |
4 |
100x |
5 |
250x |
6 |
500x |
7 |
1000x (jackpot) |
On top of that, the 6 symbol pays as a scatter:
- any two
6symbols: 5x the bet - a single
6: 2x the bet
The win sound scales with the result: no win, small win (2x), big win (5x), and the jackpot fanfare for any three-of-a-kind.
Win chance
| Option | Default | What it does |
|---|---|---|
Config.Offset |
true |
Lets reels stop between two symbols ("offset" stops), which count as a miss - this is the house edge |
Config.OffsetNum |
30 |
Percent chance for each reel to stop offset. Lower = more wins, 0 = every reel always lands on a symbol |
Warning
Config.Wins maps reel rotation indexes to symbols and matches the physical reel props. Do not change it.
Machines - Config.Casino
| Option | Default | What it does |
|---|---|---|
Config.K4MB1_Casino_Map |
true |
Use the built-in K4MB1 casino map coordinates for machine detection |
Config.Casino.Center |
vector3(973.9, 44.35, 81.62) |
Center of your casino floor (used when the K4MB1 preset is off) |
Config.Casino.Radius |
50.0 |
Detection radius around the center |
Config.Casino.SlotBets |
8 models, bet 500 | One entry per slot machine prop model |
Each SlotBets entry:
['vw_prop_casino_slot_01a'] = {
bet = 500, -- cost per spin on this machine model
prop1 = 'vw_prop_casino_slot_01a_reels', -- stopped reel model
prop2 = 'vw_prop_casino_slot_01b_reels', -- spinning (blurred) reel model
},
Every world object with a listed model becomes a playable machine. To make some machines high-stakes, raise the bet on that model - all props of the same model share the bet. Removing an entry makes that machine model non-interactive.
Sounds
The machines use GTA's native casino audio banks (loaded automatically): a welcome stinger when you sit down, bet placement, spinning, a stop clunk per reel, and no-win / small win / big win / jackpot results. Each of the eight machine models plays its own original sound set - there is nothing to configure and no custom audio to stream.
Prompt & UI
| Option | Default | What it does |
|---|---|---|
Config.UseDrawMarker |
false |
Draw a marker above the closest free chair, in addition to the floating bet prompt |
Config.HideUI |
true |
Intended to hide other UI while seated |
Config.HideUIEvent |
'pma-voice:toggleui' |
Event meant to hide the UI |
Config.ShowUIEvent |
'pma-voice:toggleui' |
Event meant to bring it back |
Note
In version 1.1.0 the three HideUI options are present in the config but not used by the script, so changing them has no effect.
Controls while seated
The controls that are blocked while a player sits at a machine (so they don't open menus, inventories or other scripts mid-spin) are listed in the DisableKeys() function in client/client_open.lua. Edit that list freely.