> ## Documentation Index
> Fetch the complete documentation index at: https://docs.czautoz.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Per-Helicopter Settings

> Every tunable parameter in the per-helicopter JSON config files — flight handling, control response, aerodynamics, damage, fuel, camera, audio, and battery.

Each helicopter variant has its own JSON config file at `$profile:\CZAutoz_Heli\`. Settings are applied per-file, so each variant can be tuned independently.

As of v0.2 each file is organised into clear **sections** — `flight`, `altitude`, `aerodynamics`, `control` (with a nested `response` block), `autorotation`, `tailRotorFailure`, `damage` (with `zones` and `burn`), `fuel`, `battery`, `audio` and `camera`. Each setting below is shown by its full path (for example `control.response.rollAccelTau`).

## Config Files

| Helicopter       | Config File(s)                                                                                                                                                                    |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MD500 Civilian   | `CZ_MD500_Civilian_config.json` · `CZ_MD500_Civilian_ClassicRedSilver_config.json` · `CZ_MD500_Civilian_BlueCharter_config.json` · `CZ_MD500_Civilian_GreenTour_config.json`      |
| MH-6 Little Bird | `CZ_MH6_config.json` · `CZ_MH6_SWAT_config.json`                                                                                                                                  |
| SA342M Gazelle   | `CZ_SA342M_config.json` · `CZ_SA342M_GreenBrownBlackWoodland_config.json` · `CZ_SA342M_TigerMeet_config.json`                                                                     |
| UH-1H Iroquois   | `CZ_UH1H_Nasa_config.json` · `CZ_UH1H_MilitaryPolice_config.json` · `CZ_UH1H_StealthBlack_config.json` · `CZ_UH1H_White_config.json`                                              |
| MH-60L Blackhawk | `CZ_MH60LBlackhawk_config.json` · `CZ_MH60LBlackhawk_Desert_config.json`                                                                                                          |
| AW101 Merlin     | `CZ_AW101Merlin_RoyalAirForce_config.json` · `CZ_AW101Merlin_RoyalNavy_config.json` · `CZ_AW101Merlin_CanadaRescue_config.json` · `CZ_AW101Merlin_PortugueseAirForce_config.json` |

Delete any file and restart to regenerate it with all defaults. Each file is independent — changing one variant does not affect others of the same type.

<Warning>
  **Modify these values at your own risk.** The defaults for every helicopter have been carefully tuned by the development team for the best flight experience. Changing flight parameters (lift, control strengths, response, drag, etc.) can result in helicopters that feel broken or are impossible to fly. If you do make changes, keep a note of the original defaults so you can revert.

  **If in doubt, leave these at their defaults.** The global settings in [mod\_config.json](/server-config/global-settings) (cargo, repair, toggles, logging) are safe to adjust freely.
</Warning>

<Note>
  The per-helicopter defaults listed below (lift, control strengths, response, drag, etc.) are indicative dev-tuned values and can change between builds — the in-game **Admin Panel** always shows the live per-helicopter values.
</Note>

<Note>
  **Admin Panel labels vs. JSON paths.** The Admin Panel edits these exact settings, but shows them under friendly names. Most map obviously (`control.pitchStrength` → **Pitch Strength**, `fuel.burnLPH` → **Fuel Burn (L/hr)**). The less‑obvious ones, in case you're looking at the panel and want the detail here:

  * **Roll / Pitch / Yaw Accel Smoothing** → `control.response.rollAccelTau` / `pitchAccelTau` / `yawAccelTau`
  * **Roll / Pitch / Yaw Decay Smoothing** → `control.response.rollDecayTau` / `pitchDecayTau` / `yawDecayTau`
  * **Bank-to-Turn Strength** / **Ramp Rate** → `control.b2tStrength` / `control.b2tRampRate`
  * **Tilt Lift Compensation** → `control.tiltLiftComp`
  * **ETL Lift Bonus** / **Speed Threshold** → `aerodynamics.etlBonus` / `aerodynamics.etlSpeed`
  * **Envelope Threshold** / **Drag Scale** → `aerodynamics.envelopeThreshold` / `aerodynamics.envelopeDragScale`
  * **Tail Rotor Spin Rate** / **Descent Rate** → `tailRotorFailure.spinRate` / `tailRotorFailure.descentRate`
  * **Max Fuel** → `fuel.maxCapacity`  ·  **Camera Distance** → `camera.distance`

  Panel and JSON change the identical value — the panel just applies it live (no restart).
</Note>

***

## flight

| Setting                   | What it does                                                         | Defaults (MD500 · MH-6 · SA342M · UH-1H · MH-60L · AW101) |
| ------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------- |
| `flight.liftMultiplier`   | Overall lift force. Higher = lifts off easier; lower = heavier feel. | 2.60 · 2.80 · 2.70 · 3.30 · 4.30 · 4.30                   |
| `flight.rotorSpoolRate`   | How fast the rotor spins up on engine start (higher = faster spool). | 0.08 · 0.08 · 0.07 · 0.06 · 0.05 · 0.045                  |
| `flight.maxAirspeed`      | Top speed (VNE) in **knots**.                                        | 152 · 152 · 167 · 120 · 159 · 167                         |
| `flight.maxVerticalSpeed` | Maximum climb/descent rate (knots).                                  | 19 · 19 · 19 · 16 · 16 · 16                               |
| `flight.dragForward`      | Forward air resistance — higher = more drag, slower feel.            | 0.32 · 0.30 · 0.28 · 0.32 · 0.26 · 0.23                   |

***

## control

The `control` section governs how the helicopter responds to input. The nested `control.response` block uses **time constants (Tau, in seconds)** — lower values make a control snappier, higher values make it smoother/heavier.

In the **Admin Panel** these six show as **Roll / Pitch / Yaw Accel Smoothing** (the `*AccelTau` — how fast the control *winds up* when you push the stick) and **Decay Smoothing** (the `*DecayTau` — how fast it *settles back* when you ease off). It's purely control *feel* — it has no effect on lift, speed, or anything performance‑related, so it's safe to tune to taste. Lower ≈ sharp/responsive; higher ≈ heavy/cinematic.

| Setting                          | What it does                                                                                                                                                                                                                                                                                                                                                       | Defaults (MD500 · MH-6 · SA342M · UH-1H · MH-60L · AW101) |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- |
| `control.pitchStrength`          | Forward/back (cyclic) response strength.                                                                                                                                                                                                                                                                                                                           | 1.35 · 1.45 · 1.30 · 1.05 · 0.95 · 0.85                   |
| `control.bankStrength`           | Roll (cyclic) response strength.                                                                                                                                                                                                                                                                                                                                   | 1.50 · 1.55 · 1.45 · 1.10 · 1.00 · 0.90                   |
| `control.yawStrength`            | Pedal (rudder) rotation rate.                                                                                                                                                                                                                                                                                                                                      | 1.35 · 1.55 · 1.50 · 0.95 · 0.90 · 0.80                   |
| `control.weathervaneStrength`    | Automatic nose alignment to travel direction. `0` = off.                                                                                                                                                                                                                                                                                                           | 0.85 · 0.85 · 0.85 · 0.55 · 0.50 · 0.30                   |
| `control.b2tStrength`            | Bank-to-turn strength — how much banking coordinates into a turn.                                                                                                                                                                                                                                                                                                  | 0.80 · 0.85 · 0.80 · 0.70 · 0.65 · 0.50                   |
| `control.b2tRampRate`            | Bank-to-turn ramp rate — how quickly bank-to-turn coordination eases in/out as you roll (higher = the turn engages more immediately). Attitude, collective and yaw smoothing use the `response.*Tau` values below, not this. *(Renamed from `inputSmoothRate` in v0.2.1.)*                                                                                         | 7.0 · 7.5 · 6.5 · 5.0 · 4.0 · 3.0                         |
| `control.tiltLiftComp`           | Tilt lift compensation — how much lift the rotor keeps as the aircraft tilts toward vertical (caps the gravity-tilt boost). Higher holds a nose-down/steeply-banked hover longer; lower drops you sooner. Past \~90° (inverted) lift is lost regardless and the helicopter falls under its own weight, recoverable by rolling/pitching upright. *(New in v0.2.2.)* | 1.7 · 1.7 · 1.7 · 1.7 · 1.7 · 1.7                         |
| `control.response.rollAccelTau`  | Roll spin-up time constant (s).                                                                                                                                                                                                                                                                                                                                    | 0.10 · 0.09 · 0.10 · 0.13 · 0.14 · 0.16                   |
| `control.response.rollDecayTau`  | Roll settle time constant (s).                                                                                                                                                                                                                                                                                                                                     | 0.12 · 0.11 · 0.12 · 0.16 · 0.18 · 0.20                   |
| `control.response.pitchAccelTau` | Pitch spin-up time constant (s).                                                                                                                                                                                                                                                                                                                                   | 0.08 · 0.07 · 0.08 · 0.11 · 0.12 · 0.14                   |
| `control.response.pitchDecayTau` | Pitch settle time constant (s).                                                                                                                                                                                                                                                                                                                                    | 0.12 · 0.11 · 0.12 · 0.16 · 0.18 · 0.20                   |
| `control.response.yawAccelTau`   | Yaw spin-up time constant (s).                                                                                                                                                                                                                                                                                                                                     | 0.07 · 0.06 · 0.06 · 0.09 · 0.10 · 0.12                   |
| `control.response.yawDecayTau`   | Yaw settle time constant (s).                                                                                                                                                                                                                                                                                                                                      | 0.10 · 0.09 · 0.09 · 0.13 · 0.15 · 0.18                   |

***

## altitude

Altitude values are entered in **feet**.

| Setting              | What it does                                                                      | Defaults (MD500 · MH-6 · SA342M · UH-1H · MH-60L · AW101) |
| -------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------- |
| `altitude.liftStart` | Altitude (ft) where lift begins to fall off.                                      | 13000 · 11000 · 11500 · 10500 · 16000 · 13000             |
| `altitude.ceiling`   | Service ceiling (ft) — lift reaches zero; the helicopter cannot climb above this. | 15000 · 13000 · 13500 · 12600 · 19000 · 15000             |

***

## aerodynamics

| Setting                          | What it does                                                                       | Defaults (MD500 · MH-6 · SA342M · UH-1H · MH-60L · AW101) |
| -------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------- |
| `aerodynamics.groundEffectBonus` | Extra lift near the ground (0.12 = +12%). Fades with altitude.                     | 0.10 · 0.10 · 0.10 · 0.12 · 0.12 · 0.12                   |
| `aerodynamics.groundEffectAlt`   | Height (m) over which ground effect fades out.                                     | 8 · 8 · 9 · 11 · 12 · 14                                  |
| `aerodynamics.etlBonus`          | Extra lift in forward flight (ETL).                                                | 0.12 · 0.13 · 0.11 · 0.09 · 0.08 · 0.07                   |
| `aerodynamics.etlSpeed`          | Forward speed at which the ETL bonus reaches full strength.                        | 65 · 60 · 62 · 75 · 78 · 82                               |
| `aerodynamics.envelopeThreshold` | Fraction of top speed at which the VNE drag penalty begins (0.80 = at 80% of max). | `0.80` (all)                                              |
| `aerodynamics.envelopeDragScale` | Drag multiplier above the VNE threshold — higher = harder speed cap.               | `6.5` (all)                                               |

***

## autorotation

These values are the same across all six helicopters by default.

| Setting                      | What it does                                                                                                                            | Default |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `autorotation.gravityFactor` | Gravity cancelled during engine-off autorotation. Higher = slower descent.                                                              | `0.60`  |
| `autorotation.flareStrength` | Pitch-up flare force applied near the ground during autorotation.                                                                       | `6.0`   |
| `autorotation.descentCap`    | Maximum descent rate during autorotation (knots).                                                                                       | `20`    |
| `autorotation.coastMinutes`  | How long the rotor coasts (visually and audibly) after a mid-air engine cut, before fully spinning down. Minimum enforced at 6 seconds. | `4.0`   |

***

## tailRotorFailure

Behaviour when the tail rotor is destroyed. Same across all variants by default.

| Setting                        | What it does                                                         | Default |
| ------------------------------ | -------------------------------------------------------------------- | ------- |
| `tailRotorFailure.spinRate`    | Uncontrolled yaw spin rate when the tail rotor is destroyed (deg/s). | `120.0` |
| `tailRotorFailure.descentRate` | Forced descent rate when the tail rotor is destroyed (m/s²).         | `2.5`   |

***

## damage

Each zone is an independent on/off toggle. As of **v0.2.2** a disabled zone (`0`) takes **no damage from any source** — gunfire, explosions **and** collisions (previously the toggles only gated collision damage, so a heli with zones off could still be shot to a wreck). Setting **all zones to 0** makes the helicopter fully invincible:

```json theme={null}
"damage": { "zones": { "chassis": 0, "body": 0, "engine": 0, "fuel": 0, "rotor1": 0, "rotor2": 0 } }
```

**Rotors-only mode:** enable **only** `rotor1`/`rotor2` (everything else `0`) and the rotors can be shot or damaged (they degrade and shear) while the **hull stays invulnerable** — ideal for servers running AI that fire on helicopters. Rotor damage never destroys the airframe; it only costs you lift and control.

| Setting                | What it covers                                 | Default                                                    |
| ---------------------- | ---------------------------------------------- | ---------------------------------------------------------- |
| `damage.zones.chassis` | Landing gear / skids                           | `0` (MD500 · MH-6 · SA342M · UH-1H) · `1` (MH-60L · AW101) |
| `damage.zones.body`    | Fuselage / airframe                            | `1`                                                        |
| `damage.zones.engine`  | Engine                                         | `1`                                                        |
| `damage.zones.fuel`    | Fuel tank (a damaged tank leaks faster)        | `1`                                                        |
| `damage.zones.rotor1`  | Main rotor — destroyed = helicopter falls      | `1`                                                        |
| `damage.zones.rotor2`  | Tail rotor — destroyed = uncontrolled yaw spin | `1`                                                        |

| Setting                           | What it does                                                                                                                                                     | Default |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `damage.contactCoef`              | Impact damage multiplier — lower = tougher airframe.                                                                                                             | `0.05`  |
| `damage.crashThreshold`           | Impact sensitivity — higher = harder hits needed for heavy damage.                                                                                               | `15.0`  |
| `damage.playerCrashDamageEnabled` | Crew take HP damage on hard impacts. `0` = off, `1` = on (max HP capped by `gameplay.playerCrashDamageMax`). *(Renamed from `playerCrashDamage` in v0.2.1.)*     | `0`     |
| `damage.detachRuinedParts`        | When a door or any attachment is ruined, it detaches and drops off the helicopter instead of staying ruined in its slot. `0` = off, `1` = on. *(New in v0.2.2.)* | `0`     |
| `damage.pushForceMultiplier`      | Force applied when the helicopter contacts players or objects.                                                                                                   | `1.0`   |
| `damage.burn.duration`            | How long a destroyed helicopter burns, in seconds.                                                                                                               | `120.0` |
| `damage.burn.radius`              | Radius (m) of the fire-damage area around a burning wreck.                                                                                                       | `8.0`   |

***

## fuel

| Setting                | What it does                                               | Defaults (MD500 · MH-6 · SA342M · UH-1H · MH-60L · AW101) |
| ---------------------- | ---------------------------------------------------------- | --------------------------------------------------------- |
| `fuel.burnLPH`         | Fuel consumption in litres per hour. `0` = unlimited fuel. | 120 · 150 · 280 · 300 · 1100 · 900                        |
| `fuel.maxCapacity`     | Tank capacity in litres.                                   | 242 · 245 · 455 · 840 · 1360 · 4100                       |
| `fuel.refuelOnRestart` | Refuel to full on server restart. `0` = no, `1` = yes.     | `1` (all)                                                 |
| `fuel.refuelDistance`  | Max distance (m) for the refuel action to appear.          | `5.0` (all)                                               |

***

## battery

Same across all variants by default.

| Setting              | What it does                                                               | Default |
| -------------------- | -------------------------------------------------------------------------- | ------- |
| `battery.startDrain` | Battery drained per engine start and stop (max 500 units). `0` = disabled. | `10.0`  |
| `battery.chargeRate` | Battery recharged per second while the engine is running. `0` = disabled.  | `5.0`   |
| `battery.lightDrain` | Battery drained per second while lights are on. `0` = disabled.            | `2.0`   |

***

## audio

Audio lives in each variant's own file, so volumes can be tuned independently per variant. All default to `1.0`.

| Setting               | What it does                                                | Default |
| --------------------- | ----------------------------------------------------------- | ------- |
| `audio.engineVolume`  | Engine sound volume multiplier (0.0–2.0+).                  | `1.0`   |
| `audio.rotorVolume`   | Rotor sound volume multiplier (0.0–2.0+).                   | `1.0`   |
| `audio.warningVolume` | Volume for the rotor emergency alarm and fuel-warning beep. | `1.0`   |
| `audio.crashVolume`   | Crash sound volume multiplier.                              | `1.0`   |

***

## camera

| Setting           | What it does                             | Defaults (MD500 · MH-6 · SA342M · UH-1H · MH-60L · AW101) |
| ----------------- | ---------------------------------------- | --------------------------------------------------------- |
| `camera.distance` | Third-person camera follow distance (m). | 12 · 11 · 13 · 16 · 18 · 22                               |
