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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.0resmon.org/0resmon/0r-resources/0r-illegalpack/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
