# Configuration

## 0r-Dispatch — Config Guide

This guide explains every option in **`shared/config.lua`**. You can change these values to match your server without touching the rest of the code. Each section describes what the setting does and what you can safely change.

***

### Table of Contents

* Commands
* Who Can Do What
* Language & Interface
* Notifications & Sounds
* Alert Popups & Map
* Alert Codes
* Map Blips (Icons)
* Character & Buttons
* Zone Editor Controls
* Notification System (Advanced)

***

### Commands

These are the **chat commands** players or admins type to open dispatch features.

| Setting                                | What it is                                                                                                                                     | Example                                     |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| **Config.DispatchAdminCommandName**    | Command to open the **Dispatch Admin Panel** (themes, alert types, zones, settings). Usually for admins only.                                  | `'disadmin'` → players type `/disadmin`     |
| **Config.CustomAlertCommand**          | Command for **civilian / 911-style reports**. When a player types this, they can send a custom alert (e.g. “suspicious person”) to police/EMS. | `'911'` → players type `/911`               |
| **Config.OpenDispatchMenuCommandName** | Command to open the **Dispatch List** (history of past alerts). Used by jobs that receive alerts (e.g. police) to see and manage calls.        | `'openedlist'` → players type `/openedlist` |

**In short:** Change these if you want different command names (e.g. `/dispatch` instead of `/disadmin`). Use names that are easy to remember and don’t conflict with other scripts.

***

### Who Can Do What

This section controls **which jobs** can use certain dispatch features.

#### Config.DispatchHistoryJobs

**What it does:** Defines which **jobs can open the Dispatch List** (the menu that shows past alerts). Usually police and ambulance need this; other jobs might not.

**Format:** A list of job names, exactly as they appear in your framework (QBCore, ESX, etc.).

```lua
Config.DispatchHistoryJobs = {
    'police',
    'ambulance',
}
```

**You can:** Add or remove job names. Use the **exact** job name from your server (e.g. `'sheriff'`, `'bcso'`). If a job is not in this list, players with that job cannot open the dispatch history menu (even if they receive alerts on screen).

***

### Language & Interface

#### Config.Languages

**What it does:** Lists the **languages available** in the dispatch admin panel. Players or admins can switch the UI language from the settings. Each entry is: `["code"] = "Display name"`.

**Example:**

```lua
Config.Languages = {
    ["en"] = 'English',
    ["tr"] = 'Türkçe',
    ["es"] = 'Español',
    -- add more as needed
}
```

**You can:** Add new languages (you must have a matching file in `locales/`, e.g. `locales/fr.json` for French). Remove entries you don’t use. Change the display name (right side) to whatever you want to show in the menu.

#### Config.Lang

**What it does:** This is the **default language** when someone hasn’t chosen one yet. It must match one of the keys in `Config.Languages` (e.g. `"en"` for English).

**You can:** Set it to your server’s main language, e.g. `Config.Lang = 'en'` or `Config.Lang = 'tr'`.

#### Config.DispatchUILocation

**What it does:** Where the **live dispatch popups** appear on screen (when a new alert comes in). Typical values: `'top-left'`, `'top-right'`, `'bottom-left'`, `'bottom-right'`.

**You can:** Change to any of those four corners so alerts don’t cover important parts of your HUD.

#### Config.DispatchListUILocation

**What it does:** Where the **Dispatch List window** (history of alerts) appears when a player opens it with the command.

**You can:** Same as above: `'top-left'`, `'top-right'`, `'bottom-left'`, `'bottom-right'`.

***

### Notifications & Sounds

#### Config.NotificationSystem

**What it does:** Chooses **which notification system** the script uses for small popups (e.g. “Settings saved”, “Coordinate set”). This way the script fits your server’s framework.

**Common values:**

* `'ox'` — ox\_lib notifications (default in this script).
* `'qb'` — QBCore notifications.
* `'esx'` — ESX notifications.
* `'0r'` — 0R Lib notifications.

**You can:** Set it to the system your server uses so messages look and behave like the rest of your server.

#### Config.NotifySound

**What it does:** When a **new dispatch alert** appears, should a **sound** play? `true` = yes, `false` = no.

**You can:** Set to `false` if you want alerts to be silent (visual only).

***

### Alert Popups & Map

#### Config.DispatchAlertLessDetail

**What it does:** If `true`, the **alert popup** shows **less information** (a simpler, shorter version). If `false`, it shows the full details (address, code, description, etc.).

**You can:** Set to `true` for a cleaner, minimal look; keep `false` for full detail.

#### Config.RemovalTimeOfAlertBlips

**What it does:** How long the **blip (map icon)** for an alert stays on the map, in **seconds**. After this time, the blip is removed automatically.

**Example:** `60` = blips disappear after 60 seconds (1 minute).

**You can:** Increase the number if you want blips to stay longer (e.g. `120` for 2 minutes), or decrease for a shorter time.

#### Config.AlertScreenTime

**What it does:** Used internally for how long the alert is treated as “on screen” (e.g. for timing or ordering). Value is in seconds.

**You can:** Usually leave as is unless the script or docs say otherwise.

#### Config.ShowVehiclePlate

**What it does:** When an alert involves a **vehicle** (e.g. vehicle theft, shooting from vehicle), should the **license plate** be included in the alert details? `true` = yes, `false` = no.

**You can:** Set to `false` if you don’t want plate numbers shown to units.

***

### Alert Codes

#### Config.AlertCodes

**What it does:** Each **alert type** can have a **code** (like “10-31”, “10-90”) that appears on the dispatch. This table maps alert type names to those codes. It’s the same idea as real police/EMS codes.

**Example:**

```lua
Config.AlertCodes = {
    ["shooting"]       = "10-31",
    ["vehicletheft"]   = "10-71",
    ["fighting"]       = "10-10",
    ["houseRobbery"]   = "10-62",
    ["ShopRobbery"]    = "10-90",
    ["atmRobbery"]     = "10-62T",
    -- ... etc.
}
```

**You can:** Change the **right-hand side** (the code string) to match your server’s code system. Don’t remove entries unless you also remove that alert type from the script. You can add new entries if you add custom alert types that use this config.

***

### Map Blips (Icons)

#### Config.DispatchBlip

**What it does:** For each **alert type**, this sets how the alert looks on the **map**: which **icon** (sprite), which **color**, and how **big** it is.

Each alert type has three values:

* **Id** — The **blip sprite ID** (GTA’s internal icon number). Different numbers = different icons (car, person, explosion, etc.).
* **Color** — The **blip color** (number). Changes the color of the icon on the map.
* **Scale** — How **large** the blip appears. `1.0` = normal, `2.0` = twice as big.

**Example:**

```lua
Config.DispatchBlip = {
    ['shooting'] = {
        Id = 110,
        Color = 37,
        Scale = 2.0
    },
    ['vehicletheft'] = {
        Id = 530,
        Color = 37,
        Scale = 2.0
    },
    -- ...
}
```

**You can:** Change `Id` to use a different map icon (you can find GTA blip IDs in lists online). Change `Color` to match your faction colors. Change `Scale` to make blips bigger or smaller. Add entries for custom alert types if the script supports them.

***

### Character & Buttons

#### Config.PedModelsGender

**What it does:** The script sometimes needs to know if the **player’s character** is male or female (e.g. for display text). These are the **ped model hashes** the script uses to detect that. They are the default GTA Online male/female multiplayer models.

**You can:** Usually leave as is. Only change if you use different base models and want correct “male/female” detection.

#### Config.RespondeButton

**What it does:** The **key** shown and used to **respond** to an alert (e.g. “Press E to respond”). This is both the label on the screen and the key that is registered.

**Example:** `'E'` → “Press E to respond”.

**You can:** Change to another key (e.g. `'F'` or `'G'`). Use a single character or the key name your game uses. Make sure it doesn’t conflict with other important keys.

#### Config.NextAlertButton

**What it does:** When several alerts are on screen, this is the **key** used to **cycle to the next alert** (e.g. next call in the list).

**Example:** `'GRAVE'` is usually the key above Tab (`` ` ``).

**You can:** Change to another key name if you want a different “next alert” button.

***

### Zone Editor Controls

#### Config.Controls

**What it does:** When an admin uses the **zone editor** (to add or edit dispatch exclusion zones), these are the **keys** for:

* **setCoord** — Set the coordinate / confirm the zone center. Example: `{"[E]", "e"}` (label and key).
* **increaseRadius** — Make the zone **bigger**. Example: `{"[I]", "i"}`.
* **decreaseRadius** — Make the zone **smaller**. Example: `{"[K]", "k"}`.
* **cancel** — **Close** the zone editor or cancel the action. Example: `{"[DELETE]", "delete"}`.

**You can:** Change the second part of each pair (e.g. `"e"`, `"i"`, `"k"`, `"delete"`) to different keys if you prefer. The first part is the label shown in the UI; you can change it to match.

***

### Notification System (Advanced)

#### Config.Notification (function)

**What it does:** This is the **function** that actually **shows** the small notifications (e.g. “Settings saved”, “Zone added”). The script passes the notification type, text, and optional time/title; this function sends them to ox\_lib, QBCore, ESX, or 0R Lib depending on **Config.NotificationSystem**.

**You can:** Usually you **don’t need to change** this. Only edit if you want to use a different notification system or a custom one; in that case you’d change the logic inside the function so it calls your preferred notification script.

***

### Quick Reference Table

| What you want to do                      | Setting to change                                  |
| ---------------------------------------- | -------------------------------------------------- |
| Change admin panel command               | **Config.DispatchAdminCommandName**                |
| Change 911 / civil report command        | **Config.CustomAlertCommand**                      |
| Change dispatch list command             | **Config.OpenDispatchMenuCommandName**             |
| Allow more jobs to open dispatch history | **Config.DispatchHistoryJobs** (add job names)     |
| Add or remove UI languages               | **Config.Languages** (+ locale file in `locales/`) |
| Set default language                     | **Config.Lang**                                    |
| Move alert popup position                | **Config.DispatchUILocation**                      |
| Move dispatch list position              | **Config.DispatchListUILocation**                  |
| Use QBCore/ESX/ox notifications          | **Config.NotificationSystem**                      |
| Mute alert sound                         | **Config.NotifySound** = false                     |
| Simpler alert popups                     | **Config.DispatchAlertLessDetail** = true          |
| How long blips stay on map               | **Config.RemovalTimeOfAlertBlips** (seconds)       |
| Hide vehicle plates in alerts            | **Config.ShowVehiclePlate** = false                |
| Change codes (10-31, etc.)               | **Config.AlertCodes**                              |
| Change map icon/color/size per alert     | **Config.DispatchBlip**                            |
| Change “Respond” key                     | **Config.RespondeButton**                          |
| Change “Next alert” key                  | **Config.NextAlertButton**                         |
| Change zone editor keys                  | **Config.Controls**                                |

***

*All options are in `shared/config.lua`. After editing, restart the resource or the server for changes to apply. If you use a custom framework or notification system, check the script’s documentation for supported values.*
