> For the complete documentation index, see [llms.txt](https://rayn-scripts.gitbook.io/rayn-scripts-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rayn-scripts.gitbook.io/rayn-scripts-docs/configuration.md).

# Configuration

Full reference for every section of config.lua.

All settings live in `config.lua`:

| Section                                                            | Description                                                                                                                                               |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Config.Language`                                                  | Active language: `'pl'`, `'en'`, `'de'`, `'fr'`, or `'ru'`.                                                                                               |
| `Config.Framework` / `Target` / `Inventory` / `Dispatch` / `Phone` | `'auto'` = automatic detection, or force a specific system.                                                                                               |
| `Config.Permissions` / `Commands`                                  | ACE permission and admin command names.                                                                                                                   |
| `Config.DealerNPC` / `Crusher` / `PaintShop` / `PartsDropoff`      | Locations of the contract-giver NPC, the crusher, the paint shop, and the generic parts buy-back point.                                                   |
| `Config.Reputation`                                                | Starting value, per-contract gain, penalties on failure/vehicle loss, minimum floor.                                                                      |
| `Config.Tiers`                                                     | The 4 access tiers — reputation threshold, guard count, reward multiplier, and dispatch alert chance per tier.                                            |
| `Config.ContractTypes`                                             | The 6 [contract types](/rayn-scripts-docs/contract-types.md) — label/description keys, delivery type, hotwire requirement, time limit, reward multiplier. |
| `Config.VehiclePools` / `TruckPools`                               | Vehicle model pools per tier (trucks are used only for Trailer Heist contracts).                                                                          |
| `Config.SpawnLocations` / `DropoffLocations`                       | Random vehicle spawn points and delivery points.                                                                                                          |
| `Config.Materials`                                                 | Crusher materials — drop chance, quantity range, sell price.                                                                                              |
| `Config.VehicleParts` / `PartsRemovalAnim` / `PartsCarryAnim`      | Removable parts (used by Parts-to-Order and Engine Theft), removal animation, and carry animation/prop offsets.                                           |
| `Config.EngineTheftVehicles` / `EngineTheftSpawnLocations`         | The Engine Theft contract's own vehicle pool and spawn points, independent of tier.                                                                       |
| `Config.GpsTracking` / `GpsHack`                                   | Which jobs see the stolen-vehicle GPS blip, and the parameters for hacking it.                                                                            |
| `Config.BlacklistedJobs`                                           | Jobs completely blocked from starting boosting contracts.                                                                                                 |
| `Config.Minigame`                                                  | Hotwiring minigame parameters (duration, required hits, pointer speed, fail penalty).                                                                     |
| `Config.Guards`                                                    | NPC guard model, weapon, health, and combat behavior.                                                                                                     |
| `Config.DispatchAlert`                                             | Alert title/text keys, code, blip appearance, and the job list that receives it.                                                                          |
| `Config.RequiredOnDuty`                                            | Optional gate requiring a minimum number of on-duty police/sheriffs before any contract can start.                                                        |
| `Config.Rewards` / `Cooldowns`                                     | Money reward range and the cooldown between contracts for a player.                                                                                       |
| `Config.Shop`                                                      | Tools purchasable from the tablet.                                                                                                                        |
| `Config.SafeVehicleSpawn`                                          | Safety net that prevents the contract vehicle from spawning stuck inside building geometry.                                                               |

## Multi-language

Set the active language with one line at the top of `config.lua`:

```lua
Config.Language = 'en' -- 'pl' | 'en' | 'de' | 'fr' | 'ru'
```

This covers both the Lua-side messages and the entire tablet UI. It does **not** translate content you write yourself elsewhere in `config.lua` (coordinates, prices, etc. are unaffected — only the display text tied to labels is looked up per language). All 5 shipped languages carry a complete, matching set of translation keys, so switching `Config.Language` is always safe.

## Vehicle GPS and 2-player mode

Stolen vehicles periodically report their position to the server, which relays it as a map blip to online players whose job is on the `Config.GpsTracking.jobs` list. A thief can hack the GPS to go dark for the rest of the contract — solo, or as a 2-player job where a passenger hacks it while the driver keeps moving (the hacking option is visible to any nearby player, not just the contract owner). Set `Config.GpsTracking.enabled = false` to disable vehicle GPS entirely.

## Required Police/Sheriffs On Duty

An optional, global gate (`Config.RequiredOnDuty`, disabled by default) blocks starting any boosting contract unless enough players are currently on duty in the configured jobs. On-duty status is read directly from the detected framework (QBCore/QBox's `job.onduty`, ESX Legacy's `job.onDuty` where available); in Standalone mode, or on frameworks with no on-duty concept, the gate is ignored.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://rayn-scripts.gitbook.io/rayn-scripts-docs/configuration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
