# Flight Plan XML (PLN File) Properties This section refers to the `PLN` format which is used by **missions** and **activities**. However, it should be noted that the {{< glossterm >}}efb{{< /glossterm >}} uses a slightly more advanced format for saving and loading flight plans, which is described on the following page: - [EFB Flight Plan XML (PLN File) Properties](efb-flight-plan-xml-properties/)   The `.pln` file goes in the main mission/activity folder beside the other files and folders required for the mission or activity type, and is used to define a **flight plan**. This file is formatted using [XML](../../devmode/editors/project-editor/file-formats/xml-files/) and can be edited by using any text editor. The general format for the file is as follows: ``` xml AceXML Document to VFR 00000 , 10 61472 Airport N53° 53' 55.87",W166° 32' 40.78",+000000.00 PADU User N53° 54' 12.06",W166° 26' 37.63",+000000.00 ``` Here you *must* include the `` element along with the `AceXML Document` 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 can have the sub-elements listed in the table below, as well a number of `` elements that define the route.  
ElementDescriptionTypeRequired
<Title>This element is used to give your flight plan a title. This is usually formatted simply as "[departure airport] to [arrival airport]"StringYes
<Descr>This element is used to give your flight plan a description.StringYes
<FPType>This element is used to define the type of flight plan that is being created.

Enum:

  1. NONE - The flight plan has no specific type.
  2. IFR - The flight plan should follow IFR rules.
  3. VFR - The flight plan should follow VFR rules.
Yes
<RouteType>This element sets the type of flight plan routing to be used.

Enum:

  1. Direct - The flight is a direct "as the crow flies" route between the departure and arrival waypoints.
  2. VOR - The flight will take a route defined by VOR beacons.
  3. LowAlt - The flight will use the low altitude airway beacons (below 18,000ft / 5,500meters MSL)
  4. HighAlt - The flight will use the high altitude airway beacons (above 18,000ft MSL and below FL450)
Yes
<CruisingAlt>

This element sets the cruising altitude in ft.

FloatYes
<DepartureID>The departure airport's ICAO code.StringYes
<DepartureName>The departure airport's name.StringYes
<DepartureLLA>

The departure airport's latitude, longitude and altitude. This is a 3 value list of values, for example:

N52° 22' 42.75", E13° 31' 14.27",+000000.00

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.StringNo
<DestinationID>The destination airport's ICAO code.StringYes
<DestinationName>The destination airport's name.StringYes
<DestinationLLA>

The destination airport's latitude, longitude and altitude. This is a 3 value list of values, for example:

N52° 22' 42.75", E13° 31' 14.27",+000000.00

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 `` 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* `` elements, but can have many more. All waypoint elements should have the following attribute: {{< table-wrapper >}} | 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](mission-xml-properties/). | String | Yes | {{< /table-wrapper >}}   The `` element is a container element for the following sub-elements that set the properties for the waypoint.  
ElementDescriptionTypeRequired
<ATCWaypointType>This defines the type of waypoint that is being defined.

Enum:

  1. none
  2. Airport
  3. Intersection
  4. VOR
  5. NDB
  6. User
  7. ATC
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.StringNo
<WorldPosition>

The position of the waypoint expressed as latitude, longitude and altitude. This is a 3 value list of values, for example:

N52° 22' 42.75", E13° 31' 14.27",+000000.00

StringYes
<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.StringNo
<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.StringNo
<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.StringNo
<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.StringNo
<ApproachTypeFP>The approach beacon type for the waypoint.

Enum:

  1. GPS
  2. VOR
  3. NDB
  4. ILS
  5. LOCALIZER
  6. SDF
  7. LDA
  8. VORDME
  9. NDBDME
  10. RNAV
  11. LOCALIZER_BACK_COURSE
Yes
<RunwayNumberFP>The runway number for the waypoint (only relevant when the waypoint is an airport).

Integer:

  1. 1 - 36

or Enum:

  1. EAST
  2. NORTH
  3. NORTHEAST
  4. NORTHWEST
  5. SOUTH
  6. SOUTHEAST
  7. SOUTHWEST
  8. WEST
No
<RunwayDesignatorFP>The runway designator for the waypoint (only relevant when the waypoint is an airport).

Enum:

  1. NONE
  2. CENTER
  3. LEFT
  4. RIGHT
  5. WATER
  6. A
  7. B
No
<SpeedMaxFP>

This is the maximum speed constraint for the waypoint (in knots).

The default value is -1: no constraint.

FloatNo
<Alt1FP>An altitude constraint for the waypoint (in ft). The value you use here will depend on the <AltDescFP> setting.FloatNo
<Alt2FP>An second altitude constraint for the waypoint (in ft). The value you use here will depend on the <AltDescFP> setting.FloatNo
<AltDescFP>This sets the type of altitude constraints that will be placed on flying through the waypoint.

Enum:

  1. ALT_DESC_AT_OR_BELOW - Aircraft should maintain or be below the altitude set with <Alt1FP> (<Alt2FP> is not required).
  2. ALT_DESC_AT - Aircraft should maintain the altitude set with <Alt1FP> (<Alt2FP> is not required).
  3. ALT_DESC_AT_OR_ABOVE - Aircraft should maintain or be above the altitude set with <Alt1FP> (<Alt2FP> is not required).
  4. ALT_DESC_IN_BETWEEN - Aircraft should be within the values set set with <Alt1FP> and <Alt2FP>.
No
    ### <ICAO> This is a container element for {{< glossterm >}}icao{{< /glossterm >}} information used when defining an ``. It contains the following elements:  
ElementDescriptionTypeRequired
<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, up to 8 characters.StringNo
<ICAOAirport>The airport name that corresponds to the ICAO code.StringNo