Skip to content

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 6 symbols: 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.