> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/resources/mango-mdt/configuration/config-files-overview.md).

# Config Files Overview

How the config folder is organised — one file per concern, all drop-in.

Everything configurable lives in `mango_mdt/config/` — **one file per concern**. You never need to touch core code, and you only ever open the file for the module you're changing.

| File                 | Owns                                                                                                     |
| -------------------- | -------------------------------------------------------------------------------------------------------- |
| `core.lua`           | Open command/keybind, theme accent, tablet prop and animation, debug logging, Fivemanage media key.      |
| `bridge.lua`         | **Which resources the MDT talks to** — framework, inventory, notifications, clothing, dispatch, billing. |
| `ranks.lua`          | Ranks per department and the baseline permissions each rank grants.                                      |
| `departments.lua`    | Department record scoping, uniform settings.                                                             |
| `dispatch.lua`       | Call lifecycle, /911, alert cards and sound, quick window, hotspots, officer map.                        |
| `bodycam.lua`        | Bodycam item, storage model, viewer, Discord webhook.                                                    |
| `warrants.lua`       | Warrant types, approval workflow, printing, Discord webhook.                                             |
| `evidence.lua`       | Evidence types, lifecycle statuses, tag prefix, item-taking behaviour.                                   |
| `fines.lua`          | Fine catalogue, billing account, currency.                                                               |
| `jail.lua`           | Sentence math (minutes per custody month), already-jailed policy, escape BOLO.                           |
| `persons.lua`        | Person database options.                                                                                 |
| `cctv.lua`           | Camera placement and viewing.                                                                            |
| `fto.lua`            | Field-training categories, phases, shifts, pass mark.                                                    |
| `applications.lua`   | Application types and questions.                                                                         |
| `resignations.lua`   | Resignation workflow options.                                                                            |
| `investigations.lua` | Investigation board options.                                                                             |
| `officers.lua`       | Officer profile options (certifications, …).                                                             |
| `reports.lua`        | Report writing options.                                                                                  |

## Why every file starts with `Config = Config or {}`

The manifest globs `config/*.lua` with **no guaranteed order**. Each file only ever writes its **own** key (`Config.Warrants`, `Config.Bodycam`, …), so load order can never matter, and adding a new plugin's config file is a pure drop-in — no manifest edit.

{% hint style="warning" %}
If you add your own config file, follow the same two rules: start with `Config = Config or {}`, and only write your own key. Never assign `Config = {}` — that wipes every sibling that happened to load first.
{% endhint %}

Shared tables follow the same pattern: `Config.DiscordWebhooks` is written by both `warrants.lua` and `bodycam.lua`, each starting with `Config.DiscordWebhooks = Config.DiscordWebhooks or {}` and adding only its own entry.
