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

# Configuration

All supported user configuration lives in `config.lua`.

## General

| Option          | Type    | Description          |
| --------------- | ------- | -------------------- |
| `Config.Debug`  | boolean | Enables debug output |
| `Config.Locale` | string  | `en` or `hr`         |

Current shipped default is `hr`.

## Controls

| Option                | Type    | Description                                  |
| --------------------- | ------- | -------------------------------------------- |
| `Config.UseCommand`   | boolean | Enables `/lock`                              |
| `Config.UseKeybind`   | boolean | Enables the keyboard bind                    |
| `Config.KeybindKey`   | string  | Default lock key                             |
| `Config.UseTarget`    | boolean | Adds target interaction through `zloma_core` |
| `Config.LockDistance` | number  | Max distance for lock interactions           |

If `Config.UseTarget = true`, the target option label is localized through the locale files.

## Lock Feedback

| Option                   | Type    | Description                     |
| ------------------------ | ------- | ------------------------------- |
| `Config.UseAnimations`   | boolean | Plays key fob animation         |
| `Config.UseSoundEffects` | boolean | Plays GTA door lock sounds      |
| `Config.UseLightEffects` | boolean | Flashes vehicle lights          |
| `Config.UseHornSound`    | boolean | Plays a short horn confirmation |

Lock feedback is client-side, but lock state sync itself is still validated and broadcast through the server.

## Features

| Option                         | Type    | Description                                                               |
| ------------------------------ | ------- | ------------------------------------------------------------------------- |
| `Config.EnableHotwire`         | boolean | Enables hotwire checks and minigame                                       |
| `Config.EnableCarjack`         | boolean | Enables NPC carjacking flow                                               |
| `Config.OwnedVehiclesNeedKeys` | boolean | If `false`, vehicles found in owned vehicle tables can start without keys |

When `Config.OwnedVehiclesNeedKeys = false`:

* vehicles found in supported owned-vehicle tables can start without keys
* vehicles not found in the database still require a hotwire attempt

## Hotwire

| Option                      | Type    | Description                                          |
| --------------------------- | ------- | ---------------------------------------------------- |
| `Config.HotwireDifficulty`  | number  | `1` to `5`, used by both supported hotwire minigames |
| `Config.HotwireAlarmChance` | number  | Alarm chance on failed hotwire attempt               |
| `Config.HotwirePoliceAlert` | boolean | Sends police alert data for hotwire attempts         |

Behavior notes:

* failed hotwire attempts keep the engine off and the vehicle undriveable
* hotwire ownership checks are cached client-side and can be cleared by script events when state changes
* hotwired vehicles cannot be locked by a player who still does not hold a real key item

Hotwire priority order:

1. `ez_electricminigame`
2. `ox_lib` skillCheck fallback

## Carjack

| Option                           | Type    | Description                                |
| -------------------------------- | ------- | ------------------------------------------ |
| `Config.CarjackDistance`         | number  | Max distance to initiate the NPC stop      |
| `Config.CarjackApproachDistance` | number  | Distance required to steal keys            |
| `Config.CarjackStealTime`        | number  | Progress bar duration in milliseconds      |
| `Config.CarjackTimeout`          | number  | Time before the NPC flees                  |
| `Config.CarjackPoliceAlert`      | boolean | Sends police alert data for carjack events |
| `Config.CarjackWeapons`          | table   | Allowed weapon hashes                      |

Behavior notes:

* only NPC drivers are valid carjack targets
* the target exit wait is bounded, so the loop will not sit forever on a broken ped state
* police alerts are still routed through `zloma_core`

## Admin

| Option               | Type  | Description                         |
| -------------------- | ----- | ----------------------------------- |
| `Config.AdminGroups` | table | Groups allowed to use `/createkeys` |

These groups are also used for other server-side key administration checks.

## Locale Files

User-facing text can be changed in:

* `locales/en.lua`
* `locales/hr.lua`

The shipped locale files cover lock/unlock, hotwire, carjack, admin, progress bar, target, and police alert messages.

## Dispatch

zloma\_keys no longer has its own dispatch integration file.

Dispatch routing is handled by `zloma_core`, which auto-detects supported systems or can be forced manually in `zloma_core/shared/config.lua` with `ZlomaCore.Config.Manual.Dispatch`.

This keeps alert routing consistent across ZLOMA resources and removes per-script dispatch maintenance.


---

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

```
GET https://zloma-scripts.gitbook.io/zloma-scripts/zloma_keys-free-escrow/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.
