> ## 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

> Full reference for all configuration options in the K4MB1 Cash Exchange Robbery resource

## config/config.lua

### Main Settings

<ParamField path="debug" type="boolean" default="false">
  Shows polyzones created inside the game.
</ParamField>

<ParamField path="TestingMode" type="boolean" default="false">
  Disables all minigames. Useful for testing the full robbery flow.
</ParamField>

<ParamField path="ResetHeist" type="number" default="180">
  Time in minutes before the heist resets after a completed robbery.
</ParamField>

<ParamField path="DisableLoudApproach" type="boolean" default="false">
  Disables the loud approach path entirely.
</ParamField>

<ParamField path="DisableSilentApproach" type="boolean" default="false">
  Disables the silent approach path entirely.
</ParamField>

<ParamField path="DisableExplosions" type="boolean" default="true">
  Disables client-side explosions.
</ParamField>

<ParamField path="ParticleTimer" type="number" default="10">
  How long smoke particles last, in minutes.
</ParamField>

<ParamField path="RequireBag" type="boolean" default="true">
  Requires a `bag` item to collect loot.
</ParamField>

<ParamField path="MinimumPolice" type="number" default="0">
  Minimum police required online. Set to `0` to disable.
</ParamField>

<ParamField path="PoliceJobs" type="table" default="{&#x22;police&#x22;}">
  Jobs that count as police for dispatch and minimum police checks.
</ParamField>

***

### Cooldowns & Limits

<ParamField path="Cooldown.PlayerCooldown" type="number" default="0">
  Per-player cooldown in minutes after completing a robbery.
</ParamField>

<ParamField path="Limits.TotalRobberiesPerRestart" type="number" default="0">
  Maximum total robberies per server restart. Set to `0` to disable.
</ParamField>

<ParamField path="Limits.RobberiesPerPlayer" type="number" default="0">
  Maximum robberies per player per restart. Set to `0` to disable.
</ParamField>

***

### Skill System

<ParamField path="SkillSystem" type="boolean" default="false">
  Requires a minimum criminal level before starting the heist.
</ParamField>

<ParamField path="MinimumLevel" type="number" default="20">
  Minimum level required when `SkillSystem` is enabled.
</ParamField>

***

### Dispatch

<ParamField path="DispatchLocation" type="table">
  Controls which step triggers the dispatch alert.

  ```lua theme={null}
  DispatchLocation = {
      ["Loud"] = true,
      ["Silent"] = false,
      ["Security"] = false,
      ["Search"] = false,
      ["Computer"] = true,
  }
  ```
</ParamField>

***

### Keypad Code

<ParamField path="Code.Password" type="table" default="{min = 10000, max = 99999}">
  Random code range for the keypad password prompt.
</ParamField>

***

### Starting Point & NPCs

<ParamField path="StartingPoint" type="table">
  NPC contact that initiates the robbery (`Npc`, `Model`, `Animation`).
</ParamField>

<ParamField path="NPCs" type="table">
  Interior NPCs including security and employees (`Security`, `Employee1`, `Employee2`, `Employee3`).
</ParamField>

***

### Rewards

<ParamField path="SafeReward" type="table">
  Reward from the safe when data is not corrupted. Supports direct cash or item payout via `Cash`, `Item`, and `StackAmount`.
</ParamField>

<ParamField path="CashPileReward" type="table">
  Reward from the cash pile pickup area.
</ParamField>

<ParamField path="PropsRewards" type="table">
  Per-prop rewards (`Prop1`, `Prop2`, `Prop3`). Set `CashReward = true` for cash or configure an `Item` and `Amount` range.
</ParamField>

***

### Items

```lua theme={null}
Config.Items = {
    ["USB"] = "x_device",
    ["USB2"] = "x_device_pin",
    ["Key"] = "cashexchangekey",
    ["Bag"] = "bag",
    ["Circuit"] = "x_circuittester",
    ["FadedCode"] = "x_code_faded",
    ["Code"] = "x_code",
}
```

***

### Evidence, Stress & Logs

<ParamField path="Evidence.Status" type="boolean" default="true">
  Enables fingerprint evidence drops.
</ParamField>

<ParamField path="Stress.Status" type="boolean" default="true">
  Enables stress on minigame failure.
</ParamField>

Logging is configured in `config/logs.lua` (`Enable`, `APIKey`, `FivemanageDataset`).
