FLIGHT PLAN XML (PLN FILE) PROPERTIES

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.

The Sim UI For Saving A PLN File

 

 

 

<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:

  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.

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:

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. 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:

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

String

(comma separated list)

Yes
<AlternateID> Legacy element (do not use) String No
<AlternateName> Legacy element (do not use) String No
<AlternateLLA> Legacy element (do not use) String No

 

 

<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:

  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. String No
<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

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:

  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.

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:

  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 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