Server guide
Aircraft spawns
The mod places aircraft itself from RotorCraft_Spawns.json in your profile folder. No mission editing is needed. On Nasdara it works out of the box; on other maps you add the positions.
How it works
- The server writes
RotorCraft_Spawns.jsonto the profile folder (the-profilesdirectory) if it's missing. - About 20 seconds after mission start, after saved vehicles have loaded, it checks each position once.
- If no aircraft is near a position, it places the listed aircraft there.
On Nasdara the file starts with five apron positions. On any other map it starts with an empty list and logs a message asking for positions.
Nasdara defaults
The generated Nasdara file is "enabled": 1 with these five entries, all at yaw 0:
RotorCraft_Mosquito | x 11945, z 10845 |
RotorCraft_MH6 | x 11858, z 10912 |
RotorCraft_Gazelle | x 11876, z 10912 |
RotorCraft_BlackHawk | x 12012, z 10910 |
RotorCraft_Chinook | x 11980, z 11005 |
Each entry is one object in the entries list, for example:
{"className": "RotorCraft_Mosquito", "x": 11945, "z": 10845, "yaw": 0}
Editing the file
- Stop the server.
- Open
RotorCraft_Spawns.jsonin the profile folder. On a rented host, use its file manager. - Edit and save valid JSON as UTF-8.
- Start the server.
Use only the two top-level fields, enabled and entries. Both are required. No duplicate fields and no JSON comments.
Entry fields
className | Exact aircraft class name (below) |
x | Map x coordinate in metres. Must be above 0 and below the map size. |
z | Map z coordinate in metres. Same rule. |
yaw | Heading in degrees, -360 to 360. Omitted means 0. |
A missing coordinate reads as 0 and the entry is rejected.
Aircraft classes
RotorCraft_Mosquito | Mosquito XE, 1 seat |
RotorCraft_MH6 | MH-6 Little Bird, 6 seats |
RotorCraft_Gazelle | SA342M Gazelle, 4 seats |
RotorCraft_BlackHawk | UH-60M Black Hawk, 12 seats |
RotorCraft_Chinook | CH-47 Chinook (Experimental), 22 seats |
The armed versions, RotorCraft_AH6, RotorCraft_GazelleCannon and RotorCraft_BlackHawkArmed, are placed the same way. They spawn with their normal electrical parts but no ammunition containers; players find and load those.
Other maps
Replace the empty entries list with positions you've surveyed for your map. Don't copy Nasdara coordinates. Inspect every new position in a client before opening the server. The mod has been tested on Nasdara; on other maps, check your spawns and flights yourself.
Turning placement off
Set enabled to 0. This doesn't remove aircraft that are already saved. The smallest valid disabled file is { "enabled": 0, "entries": [] }.
What stops a spawn
- Another aircraft within 14 m. Any RotorCraft aircraft near the position blocks it, whatever its class or condition: saved aircraft, wrecks, or an aircraft placed by an earlier entry. This is a position check, not a fleet limit. If someone flies the aircraft away, another appears there on the next restart.
- Unsuitable ground. Placement rejects water, slopes over 20 degrees, terrain that varies by more than 0.5 m across the area, and anything in the way. It checks 5 / 7 / 10 / 16 m each side for the Mosquito / MH-6 / Gazelle / Black Hawk, turned with the yaw, and 50 m overhead for roofs. It's deliberately cautious and can reject a tight spot where an aircraft would actually fit.
- Bad entries. A bad row logs its row number and doesn't block later rows. Broken JSON or invalid top-level fields stop the whole pass and leave the file untouched.
Pick clear, level ground with room for the whole hull and rotor. Avoid buildings, roofs, rocks, slopes and overlapping aircraft, and keep positions well apart.
Reading the log
Lines starting [RCESPAWN] report each entry as placed, already there, skipped with a reason, or bad entry. [RCELIFE] ... created confirms an aircraft was created.
Respawning
Respawn happens at server start only. An aircraft that is destroyed and removed comes back at the next startup if its position is clear. A wreck still within 14 m blocks the replacement. There's no timed respawn during a session.
Wrecks stay for 30 minutes by default (wreckLifetime in RotorCraft_Damage.json). Healthy aircraft don't expire from neglect: their lifetime is renewed every 10 minutes.
What a fresh aircraft gets
An aircraft that spawns with no attachments receives its battery and plugs, plus a blowtorch with gas, about a second later. If anything is attached first, that whole step is skipped. Fuel always starts at 25%. No belt or blade set is supplied.
Upgrading from the version without the Chinook
If your server wrote RotorCraft_Spawns.json before the Chinook was added, add the Chinook line yourself. On Nasdara, use x 11980, z 11005. The older position at 12057, 10955 is uneven sand where the Chinook sits too tilted to load vehicles. Chinooks lost while that older version was running don't come back unless you restore storage from before it.
Admin tools and Central Economy (advanced)
You can also place aircraft by hand with an admin spawner. Spawn the exact class as a persistent vehicle and leave automatic attachments off so the aircraft gets its standard equipment.
For Central Economy spawning, the mod's release/server-config folder has example types.xml, events.xml and cfgeventspawns.xml fragments for the Nasdara apron. Merge them into your mission files; copying XML into the mod folder does nothing. They are map-specific examples, not a map-wide distribution.
- Use only one spawning system for each population. Set
enabledto0inRotorCraft_Spawns.jsonbefore you turn on aircraft events. - Keep vehicle persistence on in
db/economy.xml(init,load,respawnandsaveall1) and keep the existingCarScriptroot withact="car"incfgeconomycore.xml. - The aircraft
types.xmlentries use nominal and min 0, so they don't scatter aircraft as loot.
Something missing or wrong? Ask in the Discord.