Create random custom missions for Aerofly FS 4.
This nice little project generates custom_missions_user.tmc
to use with Aerofly FS 4. The HEMS version of this tool generates random Helicopter Emergency Medical Services (HEMS) missions.
- The Landegerät reads a GeoJSON file (see below)
- …which contains heliports (to start from)
- …emergency locations (to fly to).
- …and hospitals (to end your mission).
- The Landegerät will create multiple missions,
- …set on different days and at a different time
- …with randomly selected heliports, emergency sites, and a hospitals.
- Finally it will fetch METAR weather data for the given location and date,
- …and export these missions to a
custom_missions_user.tmc
which you then can use in Aerofly FS 4. - …as well as Point of Interest (POI) files, which will contain cars and persons for every emergency site.
This tool requires Node.js (at least version 20) to be installed on your local computer.
The Landegerät is a Command Line Interface (CLI) tool, which means you need to open a terminal to run it. The tool itself does not need to be installed, as the Node.js tool npx
will take care of downloading as well as executing the Landegerät.
Usage: npx -p @fboes/aerofly-patterns@latest aerofly-hems GEOJSON_FILE [AFS_AIRCRAFT_CODE] [AFS_LIVERY_CODE] [...options]
Create landing pattern lessons for Aerofly FS 4.
Arguments:
GEOJSON_FILE GeoJSON file containing possible mission locations.
AFS_AIRCRAFT_CODE Internal aircraft code in Aerofly FS 4. Defaults to "ec135".
AFS_LIVERY_CODE Internal aircraft code in Aerofly FS 4. Defaults to "adac".
Options:
--metar-icao=.., -m=.. Use this ICAO station code to find weather reports
Example value: EHAM
--missions=.. Number of missions in file.
Default value: 10
--callsign=.. Optional callsign, else default callsign will be used.
--no-guides Try to remove virtual guides from missions.
--cold-dark Start cold & dark.
--transfer, -t Mission types can also be transfers.
--no-poi, -p Do not generate POI files.
--directory, -d Create files in another directory instead of current directory.
--help, -h Will output the help.
Example:
npx -p @fboes/aerofly-patterns@latest aerofly-hems C:\User\example\Downloads\hamptons.geojson ec135 --metar-icao=KISP --callsign=MEDEVAC11
As of present there are three helicopters in Aerofly FS 4:
AEROFLY_AIRCRAFT_CODE |
Type |
---|---|
ec135 |
Eurocopter EC135 |
uh60 |
Sikorsky UH-60 Black Hawk |
r22 |
Robinson R22 |
There are already multiple mission files generated in /data
. They are stored in directories with the pattern data/HEMS-[LOCATION_NAME]-[AEROFLY_AIRCRAFT_CODE]/
. These files are in each directory:
missions/custom_missions_user.tmc
: Mission file with multiple emissionsscenery/poi
directory with the POI files (see below)
See the installation instructions on how to import the missions into Aerofly FS 4.
The "Landegerät: HEMS" can generate POI files for you. These file contain positions for cars, persons and other objects to be present at every emergency site.
You will need to copy the generated POI folder to your Aerofly FS 4 user directory, and there to scenery/poi
.
Idea donated by ApfelFlieger.
The mission generator needs a GeoJSON file which contains all possible locations to be used in the missions.
This project contains example GeoJSON files, which will help you build your own missions source file.
- Lüneburg, Germany (open in geojson.io)
- San Francisco, USA (open in geojson.io)
- Oban, Scotland (open in geojson.io)
At the base of this file it needs a FeatureCollection
, in which a list of Feature
locations need to be put. There are three types of Feature
locations:
- Heliports as a possible starting point for your helicopter; at least one is required.
- Hospitals as a possible end point to return at the end of your mission. If no hospital is given, the heliport will be used as hospital instead.
- All other locations are considered to be emergency sites.
geojson.io is a free online editor for creating and modifying GeoJSON files. It allows for adding, editing and deleting GeoJson
Feature
locations on an interactive map, as well as editing the properties of eachFeature
. It also will display icons matching themarker-symbol
.
To create the different types of locations, you will need to add properties to every GeoJSON Feature
. Find the list of properties below:
Property | Type | Description |
---|---|---|
properties.marker-symbol |
string |
heliport |
properties.title |
string |
Name of location |
properties.icaoCode |
string |
ICAO code |
properties.direction |
number |
Optional orientation of helicopter |
Property | Type | Description |
---|---|---|
properties.marker-symbol |
string |
hospital or hospital-JP |
properties.title |
string |
Name of location |
properties.icaoCode |
string |
Optional ICAO code |
properties.direction |
number |
Optional orientation of landing pad |
Property | Type | Description |
---|---|---|
properties.marker-symbol |
string |
Optional, see below |
properties.title |
string |
Name of location¹ |
properties.direction |
number |
Optional orientation of POI |
¹) If the location does not have a unique name, use "location near …" to describe the location.
There are special properties.marker-symbol
values for emergency sites, which will create different types of emergency sites:
properties.marker-symbol |
Missions |
---|---|
default | Patient recovery |
car , road-accident |
Car accident |
person ², cricket |
Lost person |
ship ², ferry |
Ship SAR |
bicycle |
Bicycle accident (not yet fully implemented) |
bus |
Bus accident (not yet fully implemented) |
farm |
Farming accident (not yet fully implemented) |
fire-station |
Fire (not yet fully implemented) |
logging |
Logging accident (not yet fully implemented) |
mountain |
Lost person in mountain area accident (not yet fully implemented) |
rail-light |
Tram accident (not yet fully implemented) |
rail-metro |
Metro train accident (not yet fully implemented) |
rail |
Train accident (not yet fully implemented) |
swimming |
Lost person in open water (not yet fully implemented) |
²) Some marker symbols will not spawn the correct icon in geojson.io, but are still valid mission types.
For more information see the main documentation.