Server guide
Aircraft settings
RotorCraft_Aircraft.json in the profile folder controls required parts, the HUD part rows and debug logging, plus one row per aircraft for handling, recovery, wind, pushing and flipping. The defaults are a good starting point; change only what you mean to.
[RCEDATA] lines in the server log show what was loaded and anything rejected.Top-level settings
partsBeltRequired (0) | 1: the Mosquito needs a healthy drive belt to start. No other aircraft has a belt. |
partsBladesRequired (0) | 1: every aircraft needs a healthy matching blade set to start, and players can fit and remove healthy sets. With 0, the blade slot only accepts a set while a rotor is destroyed. |
partsUniversalBlades (0) | 1: the universal blade set fits every aircraft. With 0 it does nothing. |
conditionRows (1) | Engine, fuel tank and rotor condition icons in the aircraft inventory and above the pilot's flight gauges. 0 hides both. |
debugLogging (false) | true turns on diagnostic logs. See Logs and troubleshooting. |
Required parts only block starting. They never stop an engine that's already running in flight. Missing, wrong or ruined required parts all count as missing.
Per-aircraft rows
The aircraft list has one row each for RotorCraft_Mosquito, RotorCraft_MH6, RotorCraft_Gazelle and RotorCraft_BlackHawk. The armed versions use the settings of the aircraft they're based on: the AH-6 follows the MH-6, the cannon Gazelle the Gazelle, and the door-gun Black Hawk the Black Hawk. Keep each row complete. Out-of-range values fall back to that aircraft's default.
Powered recovery
recoveryEnabled (1) | 0 turns off powered recovery on the Left arrow. |
recoveryCooldown (0) | Seconds between full recoveries, 0 to 86400. During the cooldown the key only levels the aircraft and centres the lever. Raise it to make landings harder. |
Files written by older versions keep whatever cooldown they saved. To get the current default, set "recoveryCooldown": 0 in each row and restart.
Wind
windEffect (0.5) | 0 to 2. Scales the whole wind effect, including gusts, drift and autorotation airflow. 0 means no wind; 1 is the stronger wind of earlier versions. |
A row from an older file without windEffect gets 0.5.
Pushing
canPush | 1 lets players push the aircraft by hand. Default on for the Mosquito and MH-6, off for the Gazelle and Black Hawk. |
pushCoef | How hard a push moves it, 0 to 20 times a vanilla shove. Mosquito 0.35, others 1. |
pushText | The prompt text, Push helicopter by default. |
Flipping
canFlip (1) | 0 turns off flipping an overturned aircraft upright. |
flipSeconds | How long the flip takes, 0.5 to 600. Use whole seconds. Defaults: 5 / 8 / 10 / 15 for Mosquito / MH-6 / Gazelle / Black Hawk. |
flipNeedsTool (1) | 1 needs a wrench or lug wrench in hand. 0 offers an empty-hands action instead. |
A flip needs at least 60 degrees of tilt, the aircraft standing still with no living occupant, the engine off or rotor almost stopped, fairly level ground and room for the upright hull. Each flip costs the tool 8 health and repairs nothing. The aircraft must be unlocked.
Co-pilot takeover (experimental)
copilotTakeover (0) | 1 lets a living co-pilot (seat 1) fly the MH-6, Gazelle or Black Hawk while a dead body stays in the pilot seat. |
An empty, unconscious or disconnected pilot doesn't trigger it, and removing the dead pilot ends it. Leave it at 0 unless you need it.
Fuel
burnPerHour | Fuel use in L/h before the fixed 3x game pacing. 0 turns off scripted fuel burn. Defaults: 20 / 120 / 180 / 550. |
With the defaults, full lever burns 60 / 360 / 540 / 1650 L/h and idle about a third of that. Fresh aircraft always start with 25% fuel, and an engine left running without a living pilot shuts down after 120 seconds. Those two are fixed.
Camera
cameraDistance | Third-person distance, 1 to 40 m. Defaults: 7 / 9 / 11 / 16. |
cameraHeight | -5 to 15 m above the aircraft origin. |
cameraAft | -5 to 20 m behind the aircraft origin. |
Handling fields
These shape how each aircraft flies. Small changes go a long way, and the defaults were tuned per aircraft. Change one thing at a time and test-fly it.
maxTiltSin (0) | Tilt limit as the sine of the angle, 0 to 0.95. 0 means no limit. |
ceiling | Ceiling in metres above sea level, 500 to 15000. |
pitchRate, rollRate, yawRate | Turn rates in rad/s, 0.05 to 5. |
rateResponse | Rate response, 0.1 to 30 per second. |
levelGain | How strongly recovery levels the aircraft, 0.1 to 10. |
climbAccel | Climb acceleration, 0.5 to 30 m/s². |
neverExceed | Speed in m/s above which rotor drag rises sharply, 5 to 300. |
rotorInertia | Rotor inertia, 0.5 to 60 s. |
autoSink | Autorotation airflow reference, 1 to 40 m/s. |
bodyMass | Mass in kg. 0 keeps the model's own mass. |
heaveDamping, sinkDamping | Vertical damping. sinkDamping also feeds the default hard-landing limit. |
dragForward, dragBack, dragSide, dragTop, dragDisc | Drag in each direction, 0 to 0.1. |
rotorDiameter | Scales ground effect, 1 to 40 m. |
knockoutBleed (1) | Lever notches per second lost while the pilot is unconscious in the air, 0.1 to 20. |
The full list of defaults and ranges is in ADMIN_GUIDE.md in the mod's release folder.
After a mod update
The loader doesn't rewrite your file to add new fields, and in an older file a missing number often reads as 0 rather than the default. Some fields accept 0 and behave very differently with it. After an update:
- Stop the server and keep a copy of your files.
- Rename or remove the old
RotorCraft_Aircraft.json. - Start the server once so it writes a fresh, complete file.
- Stop it again and copy your changes back in.
A missing whole aircraft row keeps that aircraft's defaults. Listen servers always use the defaults.
Something missing or wrong? Ask in the Discord.