EFB FLIGHT PLAN XML (PLN FILE) PROPERTIES
The <flight_plan_name>.pln
file is a file that can be loaded / saved from the EFB. This version of the PLN file is not used for missions, activities, or bushtrips, and is only used by the EFB when selecting to save or load a PLN file from the main world view (in flight only FLT files can be saved/loaded).
For information on the PLN format used by missions / activities / bushtrips, please see here:
This file is formatted using XML and can be edited by using any text editor. To get an idea of how this file is formatted, you can see an example below where we have a flight plan that:
- Goes from KDPA (DuPage Airport, Chicago) to KSTL (Lambert International Airport, St Louis).
- Departs from runway 2L via the BLOKR7 departure and RBS transition.
- Proceeds through a few en-route waypoints: the JOT VOR, the OBK VOR, and the MEDAN intersection.
- Arrives via the AARCH2 arrival with no transition.
- Terminates with the ILS 12L approach and landing at runway 12L.
<SimBase.Document>
<FlightPlan.FlightPlan>
<DepartureID>KDPA</DepartureID>
<DestinationID>KSTL</DestinationID>
<Title>KDPA - KSTL</Title>
<Descr>Flight from KDPA to KSTL</Descr>
<FPType>IFR</FPType>
<CruisingAlt>28000</CruisingAlt>
<AppVersion>
<AppVersionMajor>12</AppVersionMajor>
</AppVersion>
<DepartureDetails>
<RunwayNumberFP>2</RunwayNumberFP>
<RunwayDesignatorFP>LEFT</RunwayDesignatorFP>
<DepartureFP>BLOKR7</DepartureFP>
<TransitionFP>RBS</TransitionFP>
</DepartureDetails>
<ATCWaypoint>
<ATCWaypointType>VOR</ATCWaypointType>
<ICAO>
<ICAORegion>K5</ICAORegion>
<ICAOIdent>JOT</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint>
<ATCWaypointType>VOR</ATCWaypointType>
<ICAO>
<ICAORegion>K5</ICAORegion>
<ICAOIdent>OBK</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint>
<ATCWaypointType>Intersection</ATCWaypointType>
<ICAO>
<ICAORegion>K5</ICAORegion>
<ICAOIdent>MEDAN</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ArrivalDetails>
<RunwayNumberFP>12</RunwayNumberFP>
<RunwayDesignatorFP>RIGHT</RunwayDesignatorFP>
<ArrivalFP>AARCH2</ArrivalFP>
</ArrivalDetails>
<ApproachDetails>
<ApproachTypeFP>ILS</ApproachTypeFP>
<RunwayNumberFP>12</RunwayNumberFP>
<RunwayDesignatorFP>RIGHT</RunwayDesignatorFP>
</ApproachDetails>
</FlightPlan.FlightPlan>
</SimBase.Document>
Here you must include the <SimBase.Document>
element 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.
<FlightPlan.FlightPlan>
This is the main container element for the entire flight plan. It has no attributes and can have the following sub-elements:
<Title>
(required)<Descr>
(required)<FPType>
(required)<CruisingAlt>
(required)<AppVersion>
(required)<DepartureID>
<DestinationID>
<DepartureDetails>
<ArrivalDetails>
<ApproachDetails>
<ATCWaypoint>
<Title>
This is a sub-element of <FlightPlan.FlightPlan>
and defines the title of the flight plan which will be shown in the EFB. This is a required element with no attributes, and should generally follow the format of "[departure_airport] to [arrival_airport]".
<Title>KJFK to EGLL</Title>
<Descr>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to give a short description of the flight plan to be shown in the EFB. This is a required element with no attributes.
<Descr>Flight from JFK to LHR</Descr>
<FPType>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to define the type of flight plan route to be filed, which can be one of the following strings:
- VFR - The flight plan is following VFR flight rules.
- IFR - The flight plan is following IFR flight rules.
This is a required element with no attributes.
<FPType>IFR</FPType>
<CruisingAlt>
This is a sub-element of <FlightPlan.FlightPlan>
and defines the filed cruising altitude for the flight plan, expressed in ft. This is a required element with no attributes.
<CruisingAlt>28000</CruisingAlt>
<AppVersion>
This is a sub-element of <FlightPlan.FlightPlan>
and is a container element for one <AppVersionMajor>
sub-element. This is a required element with no attributes.
<AppVersion>
<AppVersionMajor>12</AppVersionMajor>
</AppVersion>
<AppVersionMajor>
his is a sub-element of <AppVersion>
and defines the major version for the PLN file. For Microsoft Flight Simulator 2024 this must be 12 or greater, and is required for a valid flight plan file.
<DepartureID>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to give the departure airport ICAO code usually expressed as a string of 4 characters. This is an optional element with no attributes, and if it is not included then the flight plan will commence at the first en-route waypoint.
<DepartureID>KJFK</DepartureID>
<DestinationID>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to give the destination airport ICAO code usually expressed as a string of 4 characters. This is an optional element with no attributes, and if it is not included then the flight plan will end at the last en-route waypoint.
<DestinationID>EGLL</DestinationID>
<DepartureDetails>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to describe details about the departure from the selected airport, such as the selected departure runway and any selected Standard Instrument Departure (SID) procedures, or the selected arrival runway and any Standard Terminal Arrival (STAR) procedures. It may contain any of the following sub-elements:
Note that this element and its children are optional elements with no attributes.
<DepartureDetails>
<RunwayNumberFP>2</RunwayNumberFP>
<RunwayDesignatorFP>LEFT</RunwayDesignatorFP>
<DepartureFP>BLOKR7</DepartureFP>
<TransitionFP>RBS</TransitionFP>
</DepartureDetails>
<RunwayNumberFP>
This is a sub-element of <DepartureDetails>
, <ArrivalDetails>
, and <ApproachDetails>
, and is used to describe the selected departure / arrival / approach runway number, if any. Possible values are as follows:
- Number from 1 - 36
- NORTH
- NORTHEAST
- EAST
- SOUTHEAST
- SOUTH
- SOUTHWEST
- WEST
- NORTHWEST
The element has no attributes and if omitted, no departure or arrival runway will be selected.
<RunwayDesignatorFP>
This is a sub-element of <DepartureDetails>
, <ArrivalDetails>
, and <ApproachDetails>
, and is used to describe the selected departure / arrival / approach runway designator suffix , if any. Possible values are as follows:
- LEFT
- CENTER
- RIGHT
- WATER
- A
- B
The element has no attributes and if omitted, it indicates that there is no runway designator.
<DepartureFP>
This is a sub-element of <DepartureDetails>
and is used to describe the selected departure procedure, such as "ROBUC3, if required. The element has no attributes and if omitted, it indicates that no departure procedure has been selected.
<TransitionFP>
This is a sub-element of <DepartureDetails>
and <ApproachDetails>
and it's contents will depend on which one is using the sub-element:
- For departures: the sub-element is used to give the name of the selected procedure transition, such as "JFK". If omitted when
<DepartureFP>
is included, this indicates a direct transition with no selected procedure-defined transition. This element should be omitted if<DepartureFP>
is omitted. - For approaches: the sub-element is used to give the name of the selected approach transition, if any, such as `JOT` for approach RNAV 22L with the JOT transition selected. If omitted, this indicates a direct to the final approach procedure with no procedure-defined transition selected.
<DepartureVisualPattern>
This is a sub-element of <DepartureDetails>
and sets the visual pattern type to use for the departure in VFR conditions. This element describes the pattern type that the user has selected to fly visually for their departure and this data can be used to aid the pilot as to the depiction of the pattern on displays such as the EFB.
This is an optional element, has no attributes, and is a container for the following sub-elements:
For example:
<DepartureVisualPattern>
<DepartureVisualPatternType>Pattern Turn</DepartureVisualPatternType>
<VisualPatternDistance>0.950</VisualPatternDistance>
<VisualPatternAltitude>1000.000</VisualPatternAltitude>
</DepartureVisualPattern>
<DepartureVisualPatternType>
This is a required sub-element of <DepartureVisualPattern>
and is used to define the kind of visual pattern for the departure. The possible strings are as follows:
- Straight - A pattern that departs straight on along the runway heading after the initial climb.
- Pattern Turn - A pattern that exits with a 45 degree turn after the initial climb.
- Pattern Turn Into Downwind - A pattern that enters back into the middle of the downwind after a 45 degree turn following the intial climb.
- Overhead - A patterns that exits over the field mid-downwind.
- Initial Climb - A pattern that terminates after the initial climb.
- Downwind - A pattern that terminates after completion of the downwind leg.
- Base - A pattern that terminates after the completion of the base leg.
- Base Into Pattern - A pattern that proceeds back into the visual pattern following the end of the base leg.
<VisualPatternDistance>
This is a required sub-element of <DepartureVisualPattern>
and <ApproachVisualPattern>
and defines the visual pattern leg distance, in nautical miles (nm).
<VisualPatternAltitude>
This is a required sub-element of <DepartureVisualPattern>
and <ApproachVisualPattern>
and defines the visual pattern altitude, in ft AGL.
<VisualPatternSide>
This is an optional sub-element of <DepartureVisualPattern>
and <ApproachVisualPattern>
and defines the visual pattern side to use for the departure or approach. Can be any of the following strings:
- Left
- Right
<ArrivalDetails>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to describe details about the arrival at the selected airport, such as the selected departure runway and any selected Standard Instrument Departure (SID) procedures, or the selected arrival runway and any Standard Terminal Arrival (STAR) procedures. It may contain any of the following sub-elements:
Note that this element and its children are optional elements with no attributes.
<ArrivalDetails>
<RunwayNumberFP>12</RunwayNumberFP>
<RunwayDesignatorFP>RIGHT</RunwayDesignatorFP>
<ArrivalFP>AARCH2</ArrivalFP>
</ArrivalDetails>
<ArrivalFP>
This is a sub-element of <ArrivalDetails>
and is used to describe the selected arrival procedure, such as "BRDGE7, if required. The element has no attributes and if omitted, it indicates that no arrival procedure has been selected.
<ApproachDetails>
This is a sub-element of <FlightPlan.FlightPlan>
and is used to describe details about the departure from the selected airport, such as the selected departure runway and any selected Standard Instrument Departure (SID) procedures, or the selected arrival runway and any Standard Terminal Arrival (STAR) procedures. It may contain any of the following sub-elements:
<RunwayNumberFP>
<RunwayDesignatorFP>
<ApproachTypeFP>
<ApproachVisualPattern>
<SuffixFP>
<TransitionFP>
Note that this element is optional with no attributes.
<ApproachDetails>
<ApproachTypeFP>ILS</ApproachTypeFP>
<RunwayNumberFP>12</RunwayNumberFP>
<RunwayDesignatorFP>RIGHT</RunwayDesignatorFP>
</ApproachDetails>
<ApproachTypeFP>
This is a sub-element of <ApproachDetails>
and is used to set the type of approach procedure that has been selected, such as "RNAV" for approach RNAV 15R. This is a required element when <ApproachDetails>
is part of the PLN, has no attributes, and can take any of the following strings:
- ILS
- RNAV
- LOCALIZER
- VOR
- NDB
- LDA
- SDF
- GPS
- VORDME
- NDBDME
- LOCALIZER_BACK_COURSE
<SuffixFP>
This is a sub-element of <ApproachDetails>
and is used to set a suffix for the approach, for example "A" for approach VOR A. This is an optional element, and has no attributes.
<SuffixFP>A<SuffixFP>
<ApproachVisualPattern>
This is a sub-element of <ApproachDetails>
and sets the visual pattern type to use for the approach in VFR conditions. This element describes the pattern type that the user has selected to fly visually for their approach. This data can be used to aid the pilot as to the depiction of the pattern on displays such as the EFB.
This is an optional element, has no attributes, and is a container for the following sub-elements:
For example:
<ApproachVisualPattern>
<ApproachVisualPatternType>Teardrop</ApproachVisualPatternType>
<VisualPatternDistance>0.950</VisualPatternDistance>
<VisualPatternAltitude>1000.000</VisualPatternAltitude>
</ApproachVisualPattern>
<ApproachVisualPatternType>
This is a required sub-element of <ApproachVisualPattern>
and is used to define the kind of visual pattern for the approach. Possible string are as follows:
- Downwind Inside - A pattern that enters on a short downwind.
- Downwind - A pattern that enters straight into a full downwind.
- Downwind 45 - A pattern that enters into the downwind at a 45 degree angle, on the upwind side.
- Downwind Second 45 - A patterns that enters into a downwind at a 45 degree angle, on the far downwind side.
- Base - A pattern that enters direct into the base leg.
- Final - A pattern that enters direct into the final leg.
- Long Final - A pattern that enters direct into an extended final leg.
- Teardrop - A pattern that crosses over the field and enters into the downwind via a teardrop pattern entry.
- Reverse Teardrop - A patterns that crosses over the field and enters into the opposite side downwind via a reverse teardrop pattern entry.
<ATCWaypoint>
The <ATCWaypoint>
elements constitute the en-route portion of the flight plan and describes the different legs along the route, as a sub-element of <FlightPlan.FlightPlan>
. Legs can be fixed position waypoints based on navigation aids, or custom waypoints defined by latitude and longitude. Note that the PLN file may have as many of these elements as is required to describe the en-route portion of the route, however, it is not required to have any if no en-route portion is in the route. It can have the following sub-elements:
For example:
<ATCWaypoint>
<ATCWaypointType>Intersection</ATCWaypointType>
<ICAO>
<ICAORegion>K5</ICAORegion>
<ICAOIdent>MEDAN</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypontType>
This is a sub-element of <ATCWaypoint>
and is used to set what kind of waypoint is being defined. The element can take any of the following strings for fixed navigation aid waypoints of the corresponding type:
- Airport
- VOR
- NDB
- Intersection
You can also use the following for a custom lat/lon waypoint (in which case you will also need the element):
- User
For example:
<ATCWaypointType Id="PARIS_POI">User</ATCWaypointType>
This element has the following attribute:
Element | Description | Type | Required |
---|---|---|---|
id |
This gives a human readable name for the waypoint, useful for custom waypoints, like naming POIs. |
String |
No |
<ICAO>
This is a required sub-element of <ATCWaypoint>
and is a container element for ICAO information used when defining an en-route waypoint. It has no attributes and can contain the following elements:
For example:
<ICAO>
<ICAORegion>K5</ICAORegion>
<ICAOIdent>MEDAN</ICAOIdent>
</ICAO>
<WorldLocation>
This is a sub-element of <ICAO>
and defines the latitude, longitude, and optional desired altitude of the waypoint. This element is not used for fixed navigation aid waypoints - as these will use the defined position in the navigation data - and is only required when the <ATCWaypontType>
is set to "User". The latitude and longitude are expressed as three values - Degrees (°), Minutes ('), and Seconds (") - and each group of 3 is separated by a comma, with another comma used to separate the altitude if included (note that altitude is expressed in ft and should also be signed). For example:
<WorldLocation>N52° 22' 42.75", E13° 31' 14.27",+006000.00</WorldLocation>
<ICAORegion>
This is a sub-element of <ICAO>
and is used to define the ICAO region that the waypoint belongs to. The region code is the two character ARINC-424 ICAO region code that the waypoint belongs to, such as `K5` for the JOT VOR near Chicago, Illinois, US. This element is only required when the <ATCWaypontType>
is set to "User", otherwise it is optional.
<ICAOIdent>
This is a required sub-element of <ICAO>
and is the 5 character ICAO identifier for the navigation aid or waypoint.
<ICAOAirport>
This is an optional sub-element of <ICAO>
and gives the ICAO identifier of the airport to which this facility relates. Used for terminal intersections, VORs, and NDBs to disambiguate them from their non-terminal equivalents.