> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectx.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> Configuration reference for the Gabz Casino Heist resource

## config/config.lua

> [!NOTE]
>
> Use `debug = false` on production servers. Some shipped copies may show `debug = true` in source — change it before go-live.

### Main Settings

**debug** `boolean` (default: false)

Shows polyzones and debug zones in-game. Leave `false` on production servers.

**TestingMode** `boolean` (default: false)

Disables minigames so you can walk through the full heist flow for testing.

**ResetBank** `number` (default: 180)

Minutes until the casino resets after a completed robbery.

**DrawtextButton** `number` (default: 38)

Key code for drawtext interactions (`38` = `[E]`).

**DrawTextZoneSize** `vector3` (default: vec3(0.8, 0.8, 2))

Size of drawtext interaction zones.

**ComputerPasswordLength** `number` (default: 5)

Length of the office computer password (built from employee puzzle + office codes).

**ListLength** `number` (default: 100)

Number of names on the employee clipboard list.

**DisableEmployeePuzzle** `boolean` (default: false)

Skips the employee name puzzle.

**Disable2PlayerPuzzles** `boolean` (default: false)

Disables puzzles that require two players. Set `true` to test or run the heist solo.

**DisableAnimalPuzzle** `boolean` (default: false)

Disables the animal combination puzzle.

**DisablePenthouse** `boolean` (default: false)

Disables penthouse loot and related steps.

**DisableComputerInterface** `boolean` (default: false)

Disables the DUI on the manager office computer.

**DisableMetalDetectorProps** `boolean` (default: false)

Disables metal detector props.

**DisableParticles** `boolean` (default: false)

Disables particle effects during the robbery.

**DisableExplosions** `boolean` (default: true)

Disables client-side explosions. Set `false` only if your anticheat allows explosion events.

**C4ExplosionStagger** `number` (default: 2000)

Milliseconds between staggered C4 detonations.

**DisableLaserDamage** `boolean` (default: false)

Disables laser damage in vault areas (requires **mka-lasers**).

**DisableRemovingWeapons** `boolean` (default: false)

Prevents weapon removal during the heist. Enable only if you use a weapon wheel resource.

**UnlockAllEntrances** `table` (default: \{})

Door indices from `Config.DoorList` to unlock when the robbery starts.

```lua theme={null}
UnlockAllEntrances = {1, 2, 3}
```

**SmokeRepetition** `number` (default: 20)

How many times smoke grenades are thrown in sequence.

**SmokeTime** `number` (default: 10000)

Milliseconds between smoke throws.

**SpawnNetworkedPropsServerSide** `boolean` (default: true)

Spawn networked props on the server. Set `false` for client-side spawning.

**SpawnNetworkedPedsServerSide** `boolean` (default: true)

Spawn networked peds on the server. Set `false` for client-side spawning.

**PoliceJobs** `table` (default: \{"police"})

Jobs counted as police for dispatch and `MinimumPolice`.

```lua theme={null}
PoliceJobs = {"police", "fbi"}
```

**MinimumPolice** `number` (default: 0)

Minimum police online to start. Set `0` to disable.

**RequiredPlayersNearby** `table`

Minimum players within radius to start.

```lua theme={null}
RequiredPlayersNearby = {amount = 0, radius = 20.0}
```

Set `amount` to `0` to disable.

**RequireBag** `boolean` (default: true)

Requires a `bag` item to loot trolleys.

***

### Cooldowns & Limits

**Cooldown.PlayerCooldown** `number` (default: 0)

Per-player cooldown in minutes after completing the heist. `0` disables.

**Limits.TotalRobberiesPerRestart** `number` (default: 0)

Max heists per server restart. `0` disables.

**Limits.RobberiesPerPlayer** `number` (default: 0)

Max heists per player per restart. `0` disables.

***

### Strike System

**TotalTrollys** `number` (default: 12)

Maximum trolleys that can spawn (actual count depends on approach and strikes).

**Strikes** `number` (default: 8)

Strike limit before silent-approach rewards are reduced.

**StrikeAmount** `number` (default: 4)

(Silent only) Trolleys removed when the strike limit is reached.

**StrikeLoud** `number` (default: 8)

(Loud only) Fixed number of trolleys that spawn.

***

### Skill System

**SkillSystem** `boolean` (default: false)

Requires a minimum criminal level from a bridge-integrated XP system before starting.

**MinimumLevel** `number` (default: 20)

Minimum level when `SkillSystem` is `true`.

***

### Dispatch

**Dispatch.Title** `string` (default: "Casino Heist")

Dispatch alert title.

**Dispatch.Message** `string` (default: "The casino is being robbed")

Dispatch message body.

**Dispatch.Code** `string` (default: "10-70")

Dispatch radio code.

**Dispatch.Time** `number` (default: 5)

Alert duration in seconds (not all dispatch systems support this).

**Dispatch.Blip** `table`

Map blip for the alert.

```lua theme={null}
Blip = {
    Text = 'Casino Heist',
    Color = 1,
    Sprite = 41,
    Scale = 0.8
}
```

**DispatchLocation** `table`

When dispatch fires (enable **one** step flag besides `Loud` / `Silent` as documented in config comments).

```lua theme={null}
DispatchLocation = {
    ["Loud"] = true,
    ["Silent"] = false,
    ["Electrician"] = false,
    ["Cashier"] = false,
    ["MainOffice"] = true,
    ["SecurityKeypad"] = false,
    ["Staircase"] = false,
    ["SecurityButton"] = false,
    ["VaultFusebox"] = false,
}
```

***

### Codes & Labels

**Codes.ComputerSideOffice** `table` (default: \{min = 10000, max = 99999})

Random code range for the side office computer.

**Codes.ComputerMainOffice** `table` (default: \{min = 10000, max = 99999})

Random code range for the main office computer.

**Labels** `table`

UI strings for password prompts, animal puzzle, and hidden word combination inputs. Edit in `config/config.lua` under `Labels`.

***

### Puzzle Settings

**PuzzleSettings.ShowFirstLetter.Status** `boolean` (default: true)

Shows the first letter of each hidden puzzle word.

**PuzzleSettings.ShowLastLetter.Status** `boolean` (default: false)

Shows the last letter of each hidden puzzle word.

**PuzzleSettings.HideOneClue.Status** `boolean` (default: true)

Hides one clue in the secret combination puzzle.

***

### Bonus Items

**Bonus.Status** `boolean` (default: false)

Enables bonus item drops at the end of the heist.

**Bonus.BonusChance** `number` (default: 15)

Percent chance any bonus item is awarded.

**Bonus.ItemCount** `number` (default: 1)

Number of items rolled from `Bonus.Items`.

**Bonus.Items** `table`

Possible bonus items with `Name`, `Chance`, and `Amount` range.

***

### Evidence & Stress

**Evidence.Status** `boolean` (default: true)

Enables fingerprint evidence at the scene.

**Evidence.Chance** `number` (default: 50)

Chance (%) to drop fingerprint evidence.

**Stress.Status** `boolean` (default: true)

Applies stress when a minigame fails.

**Stress.Chance** `number` (default: 90)

Chance (%) to apply stress on fail.

**Stress.Amount** `table` (default: \{min = 1, max = 3})

Stress amount range per failure.

***

### Durations

Animation and progress timings (milliseconds unless noted):

**MultiPlayerFuseboxDuration** `number` (default: 5)

Seconds for multi-player fusebox sync.

**NotificationDuration** `number` (default: 2500)

Default notification duration.

**StaircaseDuration** `number` (default: 6000)

Staircase interaction duration.

**DeskDuration** `number` (default: 6000)

Desk search duration.

**KeypadDuration** `number` (default: 6000)

Keypad interaction duration.

**ComputerDuration** `number` (default: 6000)

Computer interaction duration.

**SafeDuration** `number` (default: 6000)

Safe interaction duration.

**SmokeDuration** `number` (default: 6000)

Smoke grenade step duration.

**FuseboxDuration** `number` (default: 6000)

Fusebox interaction duration.

**DrillingDuration** `number` (default: 6000)

Drilling step duration.

**LaptopDuration** `number` (default: 3000)

Laptop placement duration.

**ComputerPuzzleDuration** `number` (default: 6000)

Vault computer puzzle duration.

**PropDuration** `number` (default: 2000)

Generic prop interaction duration.

***

### Config.Items

Maps logical item keys to inventory item names. Change values here if your server uses different item names.

```lua theme={null}
Config.Items = {
    ["Phone"] = "x_phone",
    ["Laptop"] = "x_laptop",
    ["Device"] = "x_device",
    ["Wrench"] = "x_wrench",
    ["Jammer"] = "x_cratejammer",
    ["Stethoscope"] = "x_stethoscope",
    ["Circuit"] = "x_circuittester",
    ["ManagerLaptop"] = "managerlaptop",
    ["MoneySuitcase"] = "x_moneysuitcase",
    ["MaintenanceCard"] = "casinomaintenancecard",
    ["ManagerCard"] = "casinomanagercard",
    ["PenthouseCard"] = "casinopenthousecard",
    ["VaultCard"] = "casinovaultcard",
    ["KeycardSecurity"] = "casinosecuritycard",
    ["Drill"] = "laserdrill",
    ["FingerprintBag"] = "x_fingerprintbag",
    ["FingerprintTape"] = "x_fingerprinttape",
    ["SmokeGrenade"] = "weapon_smokegrenade",
    ["C4"] = "weapon_stickybomb",
    ["Bag"] = "bag",
    ["ElectricCutter"] = "glass_cutter",
}
```

Break chances on use are set in `Config.ItemsBreak`.

***

### Rewards

Trolley payouts use `Config.Rewardcash`, `Config.Rewardgold`, and `Config.Rewarddiamond`. Each table supports `ObtainPerPickup`, `Cash`, `Item`, `StackAmount`, and optional `ItemInfo` — same pattern as other Project X heists. Painting and gem loot use separate reward tables in config; trolley coordinates are defined in config and do not need to be duplicated in docs.

***

### Logs

Configured in `config/logs.lua`.

**Enable** `boolean` (default: false)

Enables Discord / Fivemanage logging.

**APIKey** `string` (default: "")

Webhook URL or Fivemanage / Fivemerr API key.

**FivemanageDataset** `string` (default: "default")

Fivemanage dataset name.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.