# Configuration and Job Settings

This script has three real configuration layers:

* `config.lua`
* `escrow/market/config.lua`
* `escrow/jobs/<job_name>/config.lua`

If you remember only one rule, remember this:

* `config.lua` = global menu, level, money, police, drone, and market behavior
* `escrow/market/config.lua` = which items the illegal market sells
* `escrow/jobs/<job>/config.lua` = the actual job you want to enable, disable, or rebalance

## Quick Answers

* Menu command, key, or tablet item: `config.lua` -> `Config.IllegalMenu`
* Change police jobs: `config.lua` -> `Config.PoliceJobName`
* Change dirty or clean money handling: `config.lua` -> `Config.DirtyMoney` and `Config.CleanMoney`
* Change drone delivery or market payment methods: `config.lua` -> `Config.IllegalMarket`
* Change image path: `config.lua` -> `Config.InventoryImagesFolder`
* Disable a whole job: `escrow/jobs/<job>/config.lua` -> `active = false`
* Change level, reward, or description for one job: `escrow/jobs/<job>/config.lua`
* Change team size: `escrow/jobs/<job>/config.lua` -> `teamSize`
* Change required items: sometimes top-level `requiredItems`, sometimes inside job-specific `game.*.requiredItems`
* Limit a step so it does not run forever: `steps` -> `progress.target`
* Change market items or prices: `escrow/market/config.lua`

## What Is Inside config.lua?

The real source file controls:

* `Config.InventoryImagesFolder`
* `Config.IllegalMenu`
* `Config.PoliceJobName`
* `Config.Levels`
* `Config.DroneDelivery`
* `Config.JobInfoBoxAlign`
* `Config.ExpandJobInfoBoxKey`
* `Config.DirtyMoney`
* `Config.CleanMoney`
* `Config.IllegalMarket`
* `Config.DefaultRoutingBucket`
* `Config.debug`

Default item-based menu access uses:

```lua
itemName = 'illegal_tablet'
```

The same file also includes:

```lua
switchToHeistPack
```

So if you are changing main menu behavior, do not look inside individual job folders first. Start with `config.lua`.

## What Is Inside escrow/market/config.lua?

This file is only for the illegal market list.

Each entry controls:

* `itemName`
* `label`
* `price`
* `job`

Real source examples include:

* `weapon_crowbar`
* `lockpick`
* `weapon_digiscanner`
* `powdered_milk`
* `money_sheet`
* `anchor`
* `plant_spray`
* `ammonia`
* `sacid`
* `atm_hack_device`
* `blank_card`
* `moonshine_still`
* `moonshine_pack`

If the player can open the menu but cannot buy the item you expect, this is the first file to check.

## What Is Inside Each Job Config?

Every job file under `escrow/jobs/<job_name>/config.lua` is the real job definition.

Common fields found in the real source include:

* `active`
* `level`
* `label`
* `description`
* `image`
* `reward`
* `information`
* `steps`
* `requiredItems`
* `teamSize`
* `requiredJobName`
* `requiredGangName`

That means most job-specific edits happen in the job's own config file, not in `config.lua`.

## How Do I Disable One Job?

Open the job you want to remove, for example:

```lua
escrow/jobs/weed_job/config.lua
```

Then set:

```lua
active = false
```

If the job still appears, make sure you edited the correct job folder. This pack contains many jobs and each one has its own file.

## How Do I Change Level, Reward, Or Team Size?

Use the same job config file.

The most common fields are:

* `level`
* `reward = { ... }`
* `teamSize = { min = 1, max = 2 }`

Examples from the real source:

* some jobs are single-player only
* some jobs expose `teamSize.max`
* some jobs use fixed money, others use `'Random'`

## How Do I Add Required Items?

This is the important part many server owners miss:

* some jobs use top-level `requiredItems`
* some jobs also use scene-specific `game.*.requiredItems`

Examples from the real source:

* `bag_snatch` uses top-level `requiredItems` for `weapon_crowbar`
* `car_theft` uses top-level `requiredItems` for `lockpick`
* `moonshine` uses top-level `requiredItems` for still and ingredient items
* `weed_job`, `meth_job`, `cocaine_job`, and `counterfeit_money` also use scene-level `requiredItems` inside their production stages

So if you changed one required item and nothing changed in game, check whether the real requirement is inside a nested `game` section instead of the top of the file.

## How Do I Stop A Production Step After X Actions?

Use `progress.target` inside the `steps` array.

Real source examples use this for jobs such as:

* `bag_snatch`
* `car_theft`
* `diving`
* `fraud`
* `illegal_delivery`
* `moonshine`
* `plane_drug_delivery`

If a production-style job feels endless, this is the first thing to inspect.

## How Do I Change Police Alert Chances?

Many jobs store police alert logic inside their `game` section.

Real source examples include:

* `bag_snatch`
* `car_theft`
* `chicken_kidnapping`
* `chop_shop`
* `cocaine_job`
* `container_heli`
* `counterfeit_money`
* `diving`
* `fraud`
* `gun_smuggling`
* `illegal_delivery`
* `meth_job`
* `money_laundering`
* `moonshine`

Look for:

```lua
police_alert_chance
```

inside the job file you are editing.

## Special Cases You Should Know

These jobs are not all identical:

* `moonshine` references `object_gizmo_resource_name` and extra object placement logic
* `money_laundering` has scene-specific required items logic instead of a normal job-start item gate
* `corner_deal` uses custom sellable item tables and area risk settings
* some jobs use `requiredJobName`
* some jobs use `requiredGangName`

So if a job behaves differently from the others, that is normal. Open the exact job file and read its own `game` section.

## If Your Changes Do Not Apply

Check these in order:

1. Did you edit `config.lua`, `escrow/market/config.lua`, or the exact job file you are testing?
2. Did you edit the correct job folder?
3. Did you restart `0r-illegalpack` after the change?
4. Did you change top-level `requiredItems` when the real requirement lives inside `game.*.requiredItems`?
5. Did you change market settings when the real problem is in the job file, or the reverse?
