FLIGHT PLAN XML (PLN FILE) PROPERTIES
This section refers to the PLN
format which is used by missions, activities, and bushtrips. However, it should be noted that the EFB uses a slightly more advanced format for saving and loading flight plans, which is described on the following page:
The <mission_name>.pln
file goes in the main mission folder beside the other files and folders required for the mission type, and is used to define a flight plan. This file is formatted using XML and can be edited by using any text editor. The general format for the file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<SimBase.Document Type="AceXML" version="1,0">
<Descr>AceXML Document</Descr>
<FlightPlan.FlightPlan>
<Title> to </Title> <!-- Title of the flight plan, generally "ICAO1 to ICAO2".-->
<FPType>VFR</FPType> <!-- Flight plan type -->
<CruisingAlt>00000</CruisingAlt> <!-- Desired cruising altitude.-->
<DepartureID></DepartureID> <!-- Departure ICAO.-->
<DepartureLLA></DepartureLLA> <!-- Departure coordinates Lat,Long,Alt.-->
<DestinationID></DestinationID> <!-- Arrival ICAO.-->
<DestinationLLA></DestinationLLA> <!-- Arrival coordinates Lt,long,alt.-->
<Descr>, </Descr> <!-- ICAO1 to ICAO2.-->
<DeparturePosition></DeparturePosition> <!-- Departure Runway Number.-->
<DepartureName></DepartureName> <!-- Departure Airport Name.-->
<DestinationName></DestinationName> <!-- Arribal Airport Name.-->
<AppVersion>
<AppVersionMajor>10</AppVersionMajor>
<AppVersionBuild>61472</AppVersionBuild>
</AppVersion>
<!-- Add WayPoints Here-->
<ATCWaypoint id="PADU">
<ATCWaypointType>Airport</ATCWaypointType>
<WorldPosition>N53° 53' 55.87",W166° 32' 40.78",+000000.00</WorldPosition>
<ICAO>
<ICAOIdent>PADU</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="POI">
<ATCWaypointType>User</ATCWaypointType>
<WorldPosition>N53° 54' 12.06",W166° 26' 37.63",+000000.00</WorldPosition>
</ATCWaypoint>
<!-- etc... -->
</FlightPlan.FlightPlan>
</SimBase.Document>
Here you must include the <SimBase.Document>
element along with the <Descr>AceXML Document</Descr>
at the top of the document, and then everything else should be within the <FlightPlan.FlightPlan>
container element. None of these elements have any attributes, and should be included as shown in the schema above. The rest of the XML
is comprised of the elements listed on this page.
When creating missions, you can generate the flight plan within Microsoft Flight Simulator 2024 from the world view, and then use the option to save that file. This can then be used as the base flight plan for the mission you want to create.
<FlightPlan.FlightPlan>
This is the main container element for the entire flight plan. It can have the sub-elements listed in the table below, as well a number of <ATCWaypoint>
elements that define the route.
Element | Description | Type | Required |
---|---|---|---|
<Title> |
This element is used to give your flight plan a title. This is usually formatted simply as "[departure airport] to [arrival airport]" | String | Yes |
<Descr> |
This element is used to give your flight plan a description. | String | Yes |
<FPType> |
This element is used to define the type of flight plan that is being created. |
Enum: |
Yes |
<RouteType> |
This element sets the type of flight plan routing to be used. |
Enum:
|
Yes |
<CruisingAlt> |
This element sets the cruising altitude in ft. |
Float | Yes |
<DepartureID> |
The departure airport's ICAO code. | String | Yes |
<DepartureName> |
The departure airport's name. | String | Yes |
<DepartureLLA> |
The departure airport's latitude, longitude and altitude. This is a 3 value list of values, for example:
|
String (comma separated list) |
Yes |
<DeparturePosition> |
This is the position within the departure airport where the aircraft will start. The actual value will depend on the airport. | String | No |
<DestinationID> |
The destination airport's ICAO code. | String | Yes |
<DestinationName> |
The destination airport's name. | String | Yes |
<DestinationLLA> |
The destination airport's latitude, longitude and altitude. This is a 3 value list of values, for example:
|
String (comma separated list) |
Yes |
<AppVersion>
This is a legacy element that should still be included in Microsoft Flight Simulator 2024 currently so that the simulation can tell if the flight plan comes from a legacy mission or not. Only the <AppVersionMajor>
sub-element is required.
<AppVersionMajor>
Defines the major version for the PLN file. For Microsoft Flight Simulator 2024 this should be 10 or greater, and is required for a valid flight plan file.
<AppVersionMinor>
Defines the minor version for the PLN file.
<AppVersionBuild>
The build version for the PLN file.
<ATCWaypoint>
This element is used to define one of the waypoints used for the flight plan. At it's most basic, a flight plan will require at least two <ATCWaypoint>
elements, but can have many more. All waypoint elements should have the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
id |
This is the ID for the waypoint. These should be unique for each waypoint as it will be referenced in the mission XML. |
String |
Yes |
The <ATCWaypoint>
element is a container element for the following sub-elements that set the properties for the waypoint.
Element | Description | Type | Required |
---|---|---|---|
<ATCWaypointType> |
This defines the type of waypoint that is being defined. |
Enum: |
Yes |
<ICAO> |
This is a container element that defines the waypoint ICAO code. | See the <ICAO> section, below. |
No |
<Descr> |
A short descriptive text for the waypoint. | String | No |
<WorldPosition> |
The position of the waypoint expressed as latitude, longitude and altitude. This is a 3 value list of values, for example:
|
String | Yes |
<ATCAirway> |
This is the name of the airway that the waypoint belongs to. This element has no effect on the flight plan and can be omitted or any string. | String | No |
<DepartureFP> |
This element is only required when the waypoint is part of a departure procedure. The actual value will depend on the airport being departed from. | String | No |
<ArrivalFP> |
This element is only required when the waypoint is part of an arrival procedure. The actual value will depend on the airport being departed from. | String | No |
<SuffixFP> |
This element is only required when the waypoint is part of an arrival or departure procedure. The actual value will depend on the airport. | String | No |
<ApproachTypeFP> |
The approach beacon type for the waypoint. |
Enum:
|
Yes |
<RunwayNumberFP> |
The runway number for the waypoint (only relevant when the waypoint is an airport). |
Integer:
or Enum:
|
No |
<RunwayDesignatorFP> |
The runway designator for the waypoint (only relevant when the waypoint is an airport). |
Enum:
|
No |
<SpeedMaxFP> |
This is the maximum speed constraint for the waypoint (in Knots). The default value is -1: no constraint. |
Float | No |
<Alt1FP> |
An altitude constraint for the waypoint (in ft). The value you use here will depend on the <AltDescFP> setting. |
Float | No |
<Alt2FP> |
An second altitude constraint for the waypoint (in ft). The value you use here will depend on the <AltDescFP> setting. |
Float | No |
<AltDescFP> |
This sets the type of altitude constraints that will be placed on flying through the waypoint. |
Enum:
|
No |
<ICAO>
This is a container element for ICAO information used when defining an <ATCWaypoint>
. It contains the following elements:
Element | Description | Type | Required |
---|---|---|---|
<ICAORegion> |
This is the ICAO region that the waypoint belongs to. Essentially the first letter of the ICAO code, as shown here: ICAO Code Map |
String
|
No |
<ICAOIdent> |
This is the ICAO code for the waypoint. | String | No |
<ICAOAirport> |
The airport name that corresponds to the ICAO code. | String | No |