# Configuration

Everything is in `lwk_mdt/config.lua`, except the charge list, which is in `lwk_mdt/charges.lua` (see [Reports and charges](/docs/lwk_mdt/reports-and-charges#charges)). Restart `lwk_mdt` after a change.

## Opening

**Config.OpenKey** `string` (default: `'F7'`)
Players rebind it in **Settings → Key Bindings → FiveM → lwk_mdt**.

**Config.OpenCommand** `string` (default: `'mdt'`)

**Config.DefaultStyle** `'modern' | 'command' | 'enterprise' | 'classic'` (default: `'modern'`)
The CAD's look for officers who haven't picked one.

## Access

**Config.AllowedServices** `string[]` (default: `{ 'police' }`)
c3r services that open the CAD.

**Config.AcePermission** `string | nil` (default: `nil`)
An ace needed to use the MDT at all. `nil` lets anyone on duty in an allowed service use it.

**Config.SupervisorAce** `string` (default: `'lwk_mdt.supervisor'`)
Can edit or delete anyone's report, and run `/mdtexport`. Authors can always edit their own.

**Config.Admins** `string[]`
Player identifiers (any type: `fivem:`, `license:`, `discord:`...) that get the **Delete All Drafts** button.

> [!WARNING]
> Put your own identifiers in `Config.Admins`. Anyone listed here can delete every draft on the server.

## Citizen Portal

**Config.CivFlags** `string[]`
Flags civilians may set on their own characters. Defaults: ACTIVE WARRANT, WANTED PERSON, ARMED AND DANGEROUS, GANG AFFILIATION, PROBATION, PAROLE, MENTAL HEALTH, DRUG RELATED, VIOLENT HISTORY.

**Config.Call911Radius** `number` (default: `180.0`)
Metres: the radius of the map circle officers see for a 911 call.

**Config.Call911Cooldown** `number` (default: `60`)
Seconds between one player's 911 calls.

**Config.Call911ExpireMinutes** `number` (default: `15`)
Minutes a 911 call waits for a unit before it drops off the board.

## Pop-out

**Config.PopoutBaseUrl** `string | nil` (default: `nil`)
`nil` uses the address the player's game is connected to, e.g. `http://203.0.113.5:30120`. Set it to use your own domain, e.g. `'https://mdt.example.com'`, proxied to the server's port 30120. See [Browser pop-out](/docs/lwk_mdt/pop-out).

## Records

**Config.KeepDays** `number` (default: `60`)
Records older than this are deleted on server start. `0` keeps everything forever.

**Config.MaxIncidents** `number` (default: `5000`)
Most incidents kept; the oldest go first.

**Config.IdleMinutes** `number` (default: `15`)
An incident with no c3r or radio activity for this long is closed and becomes a draft.

**Config.DateFormat** `string` (default: `'%m/%d/%Y'`)
`os.date` format for report dates. `'%d/%m/%Y'` for day first.

## Status bar

**Config.Quick** `table`
Buttons in the status bar that run voice dispatch commands. Dispatch answers by voice as usual. Each entry is `{ label, intent }`, where `intent` is a [voice dispatch command id](/docs/lwk_control/api#run).

```lua
Config.Quick = {
    { label = 'Tow',       intent = 'request_tow' },
    { label = 'EMS',       intent = 'request_ambulance' },
    { label = 'Transport', intent = 'request_police' },
    { label = 'Coroner',   intent = 'request_coroner' },
    { label = 'Hold traffic',    intent = 'hold_traffic' },
    { label = 'Release traffic', intent = 'release_traffic' },
    { label = '10-8',  intent = 'status_10-8' },
    { label = '10-97', intent = 'status_10-97' },
}
```

## Debug

**Config.Debug** `boolean` (default: `false`)
Extra logging. Leave it off on a live server.
