# Configuration générale

Fichier `config/config.lua`. Il reste lisible après l'escrow.

## Licence et langue
- `Config.MasterModsKey` : votre MasterKey. Préférez `set mastermods_key "…"` dans `server.cfg`, prioritaire et jamais envoyé aux joueurs.
- `Config.Locale` : `fr` ou `en`.

## Framework et permissions
- `Config.FrameworkMetier` : `esx`, `qb`, `qbx`, `ox`, `standalone`.
- `Config.NotifySystem` : `ox`, `esx`, `qb`, `qbx`, `okok`, `gta`. Si le système choisi est absent, la notification native GTA prend le relais.
- `Config.JobRestriction`, `Config.AuthorizedJobs`, `Config.RequireOnDuty`, `Config.AdminAce`, `Config.FirefighterAce` : voir [Permissions & administration](permissions-administration).

## Gameplay
| Option | Défaut | Rôle |
|---|---|---|
| `MaxFires` | 20 | Foyers actifs simultanés sur le serveur |
| `MaxFlamesPerFire` | 60 | Plafond de flammes par foyer |
| `DefaultSize` | 15 | Flammes visées si la taille n'est pas précisée |
| `SpreadInterval` | 4000 | ms entre deux tentatives de propagation |
| `SpreadChance` | 35 | % de chance de propagation à chaque tentative (avant phase, surface et météo) |
| `SpreadMinDistance` / `SpreadMaxDistance` | 1,5 / 3,5 | Distance (m) entre une flamme et la suivante |
| `SpreadMaxHeightGap` | 3,0 | Dénivelé maximal accepté |
| `SpreadInitialBurst` | 0,4 | Part de la taille créée dès le départ |
| `RegenPerSecond` | 1,5 | Points de vie regagnés par une flamme non arrosée |

## Fumée
| Option | Défaut | Rôle |
|---|---|---|
| `EnableSmokeDamage` | true | Dégâts de fumée sans ARI |
| `SmokeRadius` / `SmokeDamage` / `SmokeTick` | 5 m / 2 / 2000 ms | Zone, dégâts et fréquence |
| `SmokeMinFlames` | 4 | Taille de foyer à partir de laquelle la fumée blesse |
| `SmokeVision` | true | Visibilité réduite dans la fumée |
| `SmokeVisionRadius` / `SmokeVisionStrength` | 9 m / 0,85 | Distance et intensité du voile |
| `SmokeVisionModifier` | `BarryFadeOut` | Timecycle GTA utilisé |

## Dispatch
- `Config.DispatchSystem` : `builtin`, `ps-dispatch`, `cd_dispatch`, `none`. Pour un autre système, écoutez l'événement serveur `masterfire:server:dispatch` (voir [Exports et événements](exports-et-evenements)).
- `DispatchDelay` (15 s) : délai entre l'apparition du feu et l'appel.
- `DispatchBlip`, `DispatchBlipTime`, `DispatchSound`, `DispatchKeepLast` (appels mémorisés pour `/firegps`).
- `NotifyEndOfIntervention` : message de fin d'intervention.

## Générateur aléatoire
`SpawnerOnStart`, `SpawnerInterval` (minutes), `SpawnerChance` (%), `SpawnerMinFirefighters`.

## Sécurité réseau
- `MaxAgentReportsPerSecond`, `MaxScoutRepliesPerSecond` : anti-spam par joueur.
- `ScoutRange` (150 m) : un feu ne se propage que si un joueur est à cette distance.
- `InterventionReport` : rapport Discord en fin d'intervention, sur le webhook `set masterfire_webhook "…"` de `server.cfg`.

## Rendu
`StreamInDistance` / `StreamOutDistance` (160 / 190 m), `RenderTick`, `NativeFire` (feux natifs GTA sous les effets : ils brûlent les joueurs et réagissent à l'eau du jeu), `FireSound`.

## Commandes et placement
`Command` (`fire`), `GpsCommand` (`firegps`), `MenuCommand` (`mfire`), `PlacementRange` (120 m), `MaxOriginsPerIncident` (8 foyers).

## Debug
- `Config.Debug` : journal détaillé dans la console, commandes `/mfsurface` et `mfireHeartbeat`.
- `Config.BypassPermissions` : **développement uniquement**, tous les joueurs ont tous les droits. Bandeau rouge dans le menu et avertissement dans la console. Laissez `false` en production.