# EFB Flight Plan XML (PLN File) Properties The `.pln` file is a file that can be loaded / saved from the {{< glossterm >}}efb{{< /glossterm >}}. This version of the PLN file is **not used for missions nor activities** and is *only* used by the {{< glossterm >}}efb{{< /glossterm >}} when selecting to save or load a PLN file. {{< image-center src="images/5_Content_Config/Missions/efb_pln_1_saveload.png" alt="The Save / Load PLN Button On The EFB" >}}   For information on the PLN format used by missions and activities, please see here: - [Flight Plan XML (PLN File) Properties](flight-plan-xml-properties/)   This file is formatted using [XML](../../devmode/editors/project-editor/file-formats/xml-files/) 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 12R approach and landing at runway 12R. ``` xml KDPA KSTL KDPA - KSTL Flight from KDPA to KSTL IFR 28000 12 2 LEFT BLOKR7 RBS VOR K5 JOT VOR K5 OBK Intersection K5 MEDAN 12 RIGHT AARCH2 ILS 12 RIGHT ``` Here you *must* include the `` element at the top of the document, and then everything else should be within the `` 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: `` (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*\]". ``` xml <Title>KJFK to EGLL ```     ### <Descr> This is a sub-element of `` 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. ``` xml Flight from JFK to LHR ```     ### <FPType> This is a sub-element of `` and is used to define the *type* of flight plan route to be filed, which can be one of the following strings: 1. **VFR** - The flight plan is following {{< glossterm >}}vfr{{< /glossterm >}} flight rules. 2. **IFR** - The flight plan is following {{< glossterm >}}ifr{{< /glossterm >}} flight rules.   This is a **required** element with no attributes. ``` xml IFR ```     ### <CruisingAlt> This is a sub-element of `` and defines the filed cruising altitude for the flight plan, expressed in {{< glossterm >}}ft{{< /glossterm >}}. This is a **required** element with no attributes. ``` xml 28000 ```     ### <AppVersion> This is a sub-element of `` and is a container element for one `` sub-element. This is a **required** element with no attributes. ``` xml 12 ```   #### <AppVersionMajor> his is a sub-element of `` 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 `` and is used to give the departure airport {{< glossterm >}}icao_code,{{< /glossterm >}} usually expressed as a string of 4 characters, but it can be up to 8 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. ``` xml KJFK ```     ### <DestinationID> This is a sub-element of `` and is used to give the destination airport {{< glossterm >}}icao_code,{{< /glossterm >}} usually expressed as a string of 4 characters, but it can be up to 8 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. ``` xml EGLL ```     ### <DepartureDetails> This is a sub-element of `` 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. This element is optional, and may contain any of the following sub-elements: 1. `` 2. `` 3. `` 4. `` 5. ``   Note that this element and its children are **optional** elements with no attributes. ``` xml 2 LEFT BLOKR7 RBS ```     #### <RunwayNumberFP> This is a sub-element of ``, ``, and ``, 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 ``, ``, and ``, and is used to describe the selected departure / arrival / approach runway designator suffix , if any. Possible values are as follows: 1. LEFT 2. CENTER 3. RIGHT 4. WATER 5. A 6. B   The element has no attributes and if omitted, it indicates that there is no runway designator.     #### <DepartureFP> This is a sub-element of `` 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 ``, ``, and ``, 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 `` is included, this indicates a *direct* transition with no selected procedure-defined transition. This element should be omitted if `` 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. - **For arrivals**: the sub-element is used to give the name of the selected procedure transition, such as "MERIT". If omitted when `` is included, this indicates a direct transition with no selected procedure-defined transition. This element should be omitted if `` is omitted.     #### <DepartureVisualPattern> This is a sub-element of `` and sets the visual pattern *type* to use for the departure in {{< glossterm >}}vfr{{< /glossterm >}} 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: 1. `` 2. `` 3. `` 4. ``   For example: ``` xml Pattern Turn 0.950 1000.000 ```     ##### <DepartureVisualPatternType> This is a **required** sub-element of `` and is used to define the kind of visual pattern for the departure. The possible strings are as follows: 1. **Straight** - A pattern that departs straight on along the runway heading after the initial climb. 2. **Pattern Turn** - A pattern that exits with a 45 degree turn after the initial climb. 3. **Pattern Turn Into Downwind** - A pattern that enters back into the middle of the downwind after a 45 degree turn following the initial climb. 4. **Overhead** - A patterns that exits over the field mid-downwind. 5. **Initial Climb** - A pattern that terminates after the initial climb. 6. **Downwind** - A pattern that terminates after completion of the downwind leg. 7. **Base** - A pattern that terminates after the completion of the base leg. 8. **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 `` and `` and defines the visual pattern leg distance, in nautical miles ({{< glossterm >}}nm{{< /glossterm >}}).     ##### <VisualPatternAltitude> This is a **required** sub-element of `` and `` and defines the visual pattern altitude, in {{< glossterm >}}ft{{< /glossterm >}} {{< glossterm >}}agl{{< /glossterm >}}.     ##### <VisualPatternSide> This is an **optional** sub-element of `` and `` and defines the visual pattern side to use for the departure or approach. Can be any of the following strings: 1. Left 2. Right     ### <ArrivalDetails> This is a sub-element of `` and is used to describe details about the arrival at the selected airport, such the selected arrival runway and any Standard Terminal Arrival (STAR) procedures. It may contain any of the following sub-elements: 1. `` 2. `` 3. `` 4. ``   Note that this element and its children are **optional** elements with no attributes. ``` xml 12 RIGHT AARCH2 ```     #### <ArrivalFP> This is a sub-element of `` 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 `` and is used to describe an identifier for a selected approach procedure, if one has been selected for the flight plan route. This element may contain any of the following sub-elements: 1. `` 2. `` 3. `` 4. `` 5. `` 6. ``   Note that this element is **optional** with no attributes. ``` xml ILS 12 RIGHT ```   #### <ApproachTypeFP> This is a sub-element of `` and is used to set the type of approach procedure that has been selected, such as "RNAV" for approach RNAV 15R. This element is required if an approach procedure, but not if an `` is identified. This element 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 `` 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. ``` xml A ```     #### <ApproachVisualPattern> This is a sub-element of `` and sets the visual pattern *type* to use for the approach in {{< glossterm >}}vfr{{< /glossterm >}} 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 {{< glossterm >}}efb{{< /glossterm >}}.   This is an **optional** element, has no attributes, and is a container for the following sub-elements: 1. `` 2. `` 3. `` 4. ``   For example: ``` xml Teardrop 0.950 1000.000 ```     #### <ApproachVisualPatternType> This is a **required** sub-element of `` and is used to define the kind of visual pattern for the approach. Possible string are as follows: 1. **Downwind Inside** - A pattern that enters on a short downwind. 2. **Downwind** - A pattern that enters straight into a full downwind. 3. **Downwind 45** - A pattern that enters into the downwind at a 45 degree angle, on the upwind side. 4. **Downwind Second 45** - A patterns that enters into a downwind at a 45 degree angle, on the far downwind side. 5. **Base** - A pattern that enters direct into the base leg. 6. **Final** - A pattern that enters direct into the final leg. 7. **Long Final** - A pattern that enters direct into an extended final leg. 8. **Teardrop** - A pattern that crosses over the field and enters into the downwind via a teardrop pattern entry. 9. **Reverse Teardrop** - A patterns that crosses over the field and enters into the opposite side downwind via a reverse teardrop pattern entry.     ### <ATCWaypoint> The `` elements constitute the en-route portion of the flight plan and describes the different legs along the route, as a sub-element of ``. 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: 1. `` 2. ``   This element has the following attribute:   {{< table-wrapper >}} | Element | Description | Type | Required | |---------|---------------------------------------------------------------------------------------------------|--------|:--------:| | `id` | This gives a human readable name for the waypoint, useful for custom waypoints, like naming POIs. | String | No | {{< /table-wrapper >}}   For example: ``` xml Intersection K5 MEDAN ```     #### <ATCWaypointType> This is a sub-element of `` 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: 1. Airport 2. VOR 3. NDB 4. Intersection   You can also use the following for a custom lat/lon waypoint (in which case you will also need the `` element): 1. User   For example: ``` xml User ```     #### <WorldPosition> This is a sub-element of `` 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 `` 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 {{< glossterm >}}ft{{< /glossterm >}} and should also be signed). For example: ``` xml N52° 22' 42.75", E13° 31' 14.27",+006000.00 ```     #### <ICAO> This is a **required** sub-element of `` and is a container element for {{< glossterm >}}icao{{< /glossterm >}} information (up to 8 characters) used when defining an en-route waypoint. It has no attributes and can contain the following elements: 1. `` 2. `` 3. ``   For example: ``` xml K5 MEDAN ```     ##### <ICAORegion> This is a sub-element of `` and is used to define the {{< glossterm >}}icao{{< /glossterm >}} 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 `` is *not* "User", otherwise it is optional.     ##### <ICAOIdent> This is a **required** sub-element of `` and is an 8-character-maximum {{< glossterm >}}icao{{< /glossterm >}} identifier for the navigation aid or waypoint. For "User" waypoints, this can be any descriptive identifier of the developers choosing, but must be unique within the flight plan. User waypoints must not have repeated idents within a flight plan.     ##### <ICAOAirport> This is an **optional** sub-element of `` and gives the {{< glossterm >}}icao{{< /glossterm >}} identifier of the airport to which this facility relates. Used for terminal intersections, VORs, and NDBs to disambiguate them from their non-terminal equivalents.