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

# Introduction

> Heist module: registers the Paleto Bank contract with cc_heistcontracts.

`cc_paletoheist` is a heist module that plugs into [cc\_heistcontracts](/cc_heistcontracts/index). It registers a single contract — **Paleto Bank Heist** — at the Blaine County Savings Bank and hands runtime control of the run to cc\_heistcontracts.

Everything in this page is a **default**. All of it lives in plain Lua files in `shared/` and is meant to be edited.

## Required items

Players need these in their inventory before the dashboard will let them press **Start**. The list lives in `shared/contract.lua` under `itemsRequired` — add, remove, or change quantities freely.

| Item id               | Inventory label  | Default role in the run             |
| --------------------- | ---------------- | ----------------------------------- |
| `hacking_device`      | DataJack         | Security backdoor, office computers |
| `laptop_pro`          | Jackbox Pro      | Vault panel                         |
| `frequency_tuner`     | Signal Modulator | Outdoor frequency control           |
| `electric_drill`      | Cordless Drill   | Lockers & safe                      |
| `weapon_smg` (weapon) | SMG              | Required loadout                    |

These items all need to exist in your ox\_inventory (or equivalent) items list — see the [installation guide](/cc_paletoheist/installation).

## Contract defaults

Defined in `shared/contract.lua`. Every field is editable.

| Field           | Default                     | What it does                                   |
| --------------- | --------------------------- | ---------------------------------------------- |
| `id`            | `paleto_heist`              | Internal contract id                           |
| `difficulty`    | `medium`                    | Display tag in the dashboard                   |
| `weight`        | `0.5`                       | Rarity weight for marketplace drips            |
| `levelRequired` | `3`                         | Minimum heist level to purchase                |
| `price`         | `2500`                      | VICE cost to buy the slot                      |
| `crewSize`      | `{ min = 2, max = 4 }`      | Crew size bounds                               |
| `duration`      | `1200`                      | Soft cap in seconds before the slot auto-fails |
| `cooldown`      | `1800`                      | Server-wide cooldown after each completion     |
| `reward`        | `{ vice = 1500, xp = 250 }` | Credited automatically on success              |
| `locations`     | 1                           | `paleto` — Blaine County Savings Bank          |

Coordinates, doors, cameras, and task points live in `shared/location.lua` and are all editable.

## Loot table

`shared/rewards.lua` defines the global loot. When `cfg.use_global_loot_table = true` (default), each category's rolled total is split across every unit in that category.

```lua theme={null}
return {
    lockers = {
        { type = 'item', item = 'black_money', amount = { min = 1000, max = 2000 } },
        { type = 'money',                       amount = { min = 1000, max = 2000 } },
    },
    trolleys = {
        { type = 'item', item = 'black_money', amount = { min = 1000, max = 2000 } },
        { type = 'money',                       amount = { min = 1000, max = 2000 } },
    },
}
```

Set `cfg.use_global_loot_table = false` to define loot per-unit inside `shared/location.lua`.

## Other tunables

`shared/config.lua`:

| Field                       | Default                      | What it does                                                            |
| --------------------------- | ---------------------------- | ----------------------------------------------------------------------- |
| `cfg.use_global_loot_table` | `true`                       | If `false`, expects per-unit `rewards` on each loot point               |
| `cfg.enable_task_list`      | `true`                       | Show the TaskUI panel during the run                                    |
| `cfg.vault_timer`           | `60`                         | Vault open delay in seconds                                             |
| `cfg.debug`                 | `false`                      | Bypasses gates and logs verbosely                                       |
| `cfg.dispatch`              | `function(location) ... end` | Police alert payload — replace to integrate with your dispatch resource |

## Dependencies

* [`cc_heistcontracts`](/cc_heistcontracts/index)
* [`cc_lib`](/cc_lib/index) — TaskUI, Groups, Inventory, Target, Notification, Dispatch wrappers
* `ox_lib`, `oxmysql`
* A police job framework that responds to `cc.Dispatch.Alert`
