> ## 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 Default Fleeca Bank Robbery resource

## config/config.lua

### Main Settings

<ParamField path="debug" type="boolean" default="false">
  Shows polyzones created inside the game. Useful for testing zone placement.
</ParamField>

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

<ParamField path="DrawtextButton" type="number" default="38">
  The key code used to trigger drawtext interactions. `38` is `[E]` by default.
</ParamField>

<ParamField path="DrawTextZoneSize" type="vector3" default="vec3(0.8, 0.8, 2)">
  The size of the drawtext interaction zone.
</ParamField>

<ParamField path="SpawnNetworkedPropsServerSide" type="boolean" default="true">
  Spawns networked props server side. Set to `false` to spawn them client side instead.
</ParamField>

<ParamField path="MinimumPolice" type="number" default="0">
  Minimum number of police required online before a robbery can be started. Set to `0` to disable.
</ParamField>

<ParamField path="PoliceJobs" type="table" default="{&#x22;police&#x22;}">
  The jobs that count as police for the `MinimumPolice` check and dispatch alerts.

  ```lua theme={null}
  PoliceJobs = {"police", "fbi"}
  ```
</ParamField>

<ParamField path="RequiredPlayersNearby" type="table">
  Requires a minimum number of players nearby to start a robbery.

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

  Set `amount` to `0` or `false` to disable.
</ParamField>

<ParamField path="TotalActiveRobberies" type="number" default="0">
  Maximum number of Fleeca robberies that can be active at the same time. Set to `0` to disable.
</ParamField>

<ParamField path="RequireBag" type="boolean" default="true">
  Requires players to have a `bag` item in order to loot the trolleys.
</ParamField>

<ParamField path="ListLength" type="number" default="100">
  Length of the employee list that appears on the board during the employee puzzle.
</ParamField>

<ParamField path="DisableEmployeePuzzle" type="boolean" default="true">
  Disables the employee puzzle. Defaults to `true` on the vanilla map variant.
</ParamField>

<ParamField path="DisableParticles" type="boolean" default="false">
  Disables all particle effects during the robbery.
</ParamField>

<ParamField path="DisableRemovingWeapons" type="boolean" default="false">
  Disables weapon removal during the robbery. Only enable this if you use a weapon wheel resource.
</ParamField>

<ParamField path="GruppeSechsJob17mov" type="boolean" default="false">
  Enables compatibility with the Gruppe Sechs Job by 17mov.
</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>

***

### Cooldowns & Limits

<ParamField path="Cooldown.Global" type="boolean" default="true">
  When `true`, robbing one Fleeca puts all Fleecas on cooldown. When `false`, each location has its own cooldown.
</ParamField>

<ParamField path="Cooldown.Timer" type="number" default="180">
  Cooldown duration in minutes.
</ParamField>

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

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

<ParamField path="Limits.RobberiesPerPlayer" type="number" default="0">
  Maximum number of robberies a single player can complete per server restart. Set to `0` to disable.
</ParamField>

***

### Strike System

<ParamField path="TotalTrolleys" type="number" default="4">
  Maximum number of trolleys that can spawn. Actual count depends on the strike system and approach used.
</ParamField>

<ParamField path="Strikes" type="number" default="2">
  Number of strikes players can accumulate before their reward is cut. Set to `false` to disable.
</ParamField>

<ParamField path="StrikeAmount" type="number" default="2">
  (Silent Approach only) Number of trolleys removed from the reward when the strike limit is reached.
</ParamField>

<ParamField path="StrikeLoud" type="number" default="3">
  (Loud Approach only) Number of trolleys that spawn during a loud approach.
</ParamField>

***

### Skill System

<ParamField path="SkillSystem" type="boolean" default="false">
  Requires players to meet a minimum level from an integrated XP/skill system before starting the heist. Must have an XP system configured in the bridge.
</ParamField>

<ParamField path="MinimumLevel" type="number" default="10">
  Minimum level required to initiate the heist. Only applies when `SkillSystem` is `true`.
</ParamField>

***

### Dispatch

<ParamField path="Dispatch.Title" type="string" default="&#x22;Fleeca bank Robbery&#x22;">
  Title shown in the dispatch alert.
</ParamField>

<ParamField path="Dispatch.Message" type="string" default="&#x22;Fleeca bank is being robbed&#x22;">
  Message body shown in the dispatch alert.
</ParamField>

<ParamField path="Dispatch.Code" type="string" default="&#x22;10-70&#x22;">
  Radio code shown in the dispatch alert.
</ParamField>

<ParamField path="Dispatch.Time" type="number" default="5">
  Time in seconds the dispatch alert remains visible. Not all dispatch systems support this.
</ParamField>

<ParamField path="Dispatch.Blip" type="table">
  Blip settings for the dispatch map marker.

  ```lua theme={null}
  Blip = {
      Text = 'Fleeca bank Robbery',
      Color = 1,
      Sprite = 41,
      Scale = 0.8
  }
  ```
</ParamField>

<ParamField path="DispatchLocation" type="table">
  Controls which step triggers the dispatch alert. Only one of the step keys should be enabled at a time (excluding Loud/Silent).

  ```lua theme={null}
  DispatchLocation = {
      ["Loud"] = true,
      ["Silent"] = false,
      ["KeypadOne"] = true,
      ["KeypadTwo"] = false,
      ["Vault"] = false,
  }
  ```
</ParamField>

***

### Bonus Items

<ParamField path="Bonus.Status" type="boolean" default="false">
  Enables or disables bonus item drops at the end of the heist.
</ParamField>

<ParamField path="Bonus.BonusChance" type="number" default="15">
  Percentage chance that any bonus item is given at all.
</ParamField>

<ParamField path="Bonus.ItemCount" type="number" default="1">
  Number of items that can be given from the bonus items table.
</ParamField>

<ParamField path="Bonus.Items" type="table">
  Table of possible bonus items. Each entry has a `Name`, `Chance` (%), and `Amount` range.
  The total chance across all items needs to add up to 100%.

  ```lua theme={null}
  Items = {
      {Name = "x_device", Chance = 30, Amount = {min = 1, max = 1}},
      {Name = "x_phone", Chance = 50, Amount = {min = 1, max = 1}},
      {Name = "x_stethoscope", Chance = 20, Amount = {min = 1, max = 1}},
  }
  ```
</ParamField>

***

### Evidence & Stress

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

<ParamField path="Evidence.Chance" type="number" default="50">
  Percentage chance that fingerprint evidence is left behind.
</ParamField>

<ParamField path="Stress.Status" type="boolean" default="true">
  Enables the stress system. Stress is only applied when a minigame is failed.
</ParamField>

<ParamField path="Stress.Chance" type="number" default="90">
  Percentage chance that stress is applied on a minigame fail.
</ParamField>

<ParamField path="Stress.Amount" type="table" default="{min = 1, max = 3}">
  The minimum and maximum amount of stress applied per failure.
</ParamField>

***

### Durations

Progressbar durations in milliseconds:

| Setting                  | Default |
| ------------------------ | ------- |
| `NotificationDuration`   | `2500`  |
| `FingerprintDuration`    | `6000`  |
| `FuseboxDuration`        | `6000`  |
| `ShelfDuration`          | `5000`  |
| `KeypadOneDuration`      | `6000`  |
| `KeypadTwoDuration`      | `6000`  |
| `SearchDuration`         | `6000`  |
| `PrinterDuration`        | `7500`  |
| `VaultDuration`          | `6000`  |
| `JailDoorDuration`       | `5000`  |
| `JailDoorKeypadDuration` | `6000`  |

***

### Items

<ParamField path="Config.Items" type="table">
  Maps logical item roles to inventory item names.

  ```lua theme={null}
  Config.Items = {
      ["Device"] = "x_device",
      ["Pliers"] = "pliers",
      ["Pictures"] = "employeepictures",
      ["Bag"] = "bag",
      ["Keys"] = "fleeca_key",
      ["Keycard"] = "fleecacard",
      ["Laptop"] = "x_laptop",
  }
  ```
</ParamField>

<ParamField path="Config.ItemsBreak" type="table">
  Percentage chance that an item breaks on use. Set to `0` to disable.

  ```lua theme={null}
  Config.ItemsBreak = {
      ["Device"] = 0,
      ["Pliers"] = 0,
      ["Laptop"] = 0,
  }
  ```
</ParamField>

***

### Locations

<ParamField path="Config.FleecaLocations" type="table">
  Enable or disable each of the 6 Fleeca banks.

  ```lua theme={null}
  Config.FleecaLocations = {
      ["RockfordHills"] = true,
      ["Legion"] = true,
      ["Burton"] = true,
      ["Alta"] = true,
      ["GrandSenoraDesert"] = true,
      ["BanhamCanyon"] = true,
  }
  ```
</ParamField>

<Info>
  Per-location interaction coordinates live in `Config.Fleecas` and trolley spawn/loot points in `Config.Trollys`. Edit those tables if you need to move targets — you do not need to copy every coordinate from the default config for normal setup.
</Info>

***

### Rewards

Rewards are split into three types: **cash**, **gold**, and **diamond** (`Config.Rewardcash`, `Config.Rewardgold`, `Config.Rewarddiamond`). Each follows the same format.

<ParamField path="ObtainPerPickup" type="boolean" default="true">
  If `true`, items are given per individual stack pickup from the trolley. If `false`, the reward is given at the end of the full trolley animation.
</ParamField>

<ParamField path="Cash" type="boolean" default="true">
  Set to `true` to give money directly. Set to `false` to give a cash item instead.
</ParamField>

<ParamField path="Item" type="string" default="'markedbills'">
  The item name used when `Cash` is `false`. Gold defaults to `goldbar`, diamond to `diamond`.
</ParamField>

<ParamField path="StackAmount" type="table" default="{min = 45, max = 110}">
  The minimum and maximum cash or item amount per pickup or per trolley completion. Gold and diamond use their own ranges.
</ParamField>

<ParamField path="ItemInfo" type="boolean | table" default="false">
  Optional item metadata. Used if `markedbills` or similar items carry random value data in their info table.
</ParamField>

***

### Logs

Configured in `config/logs.lua`.

<ParamField path="Enable" type="boolean" default="false">
  Enables or disables the logging system.
</ParamField>

<ParamField path="APIKey" type="string" default="&#x22;&#x22;">
  Your Discord webhook URL, or your Fivemerr/Fivemanage API key.
</ParamField>

<ParamField path="FivemanageDataset" type="string" default="&#x22;default&#x22;">
  The Fivemanage dataset to log activity to. Leave as `"default"` unless you have a specific dataset configured.
</ParamField>
