The X-Plane FMS flightplan file (typically <plan name>.fms) contains the navigation details for a planned flight, i.e. the reference to departure and destination airfields (and, optionally, runways) and intermediate waypoints.
The format allows selection of 'waypoints' as either aeronautical references (such as ICAO code for an airport) or as user-specified lat/long/alt points.
This is the simple flightplan illustrated in the image at the top of this page.
I 1100 Version CYCLE 1801 ADEP 1N7 ADES 1N7 NUMENR 4 1 1N7 ADEP 372.000000 40.971134 -74.997505 28 Catfish_Pond DRCT 1713.316528 41.038837 -74.996765 1 14N DRCT 3000.000000 40.844261 -75.635468 1 1N7 ADES 372.000000 40.971134 -74.997505
I | File type identifier, required | I |
<version number> Version | Version of X-Plane supported, '3' or '1100' | 1100 Version |
CYCLE <cycle number> | date-code for regulatory info, AIRAC cycle number | CYCLE 1801 |
ADEP <ICAO code> | Airport ICAO code | ADEP 1N7 |
NUMENR <count> | Number of en-route points | NUMENR 4 |
credit: https://flightplandatabase.com/dev/specification
The X-Plane FMS file format is not officially documented anywhere. Therefore, this file specification is unofficial and the current best known outline of the format. This specification has been tested thoroughly on X-Plane versions 8, 9 and 10. From X-Plane 11, a new file format has been introduced that is not backwards compatible with this specification.
Throughout this specification the following file will be used for examples. Clearly this is not a real flight plan and is only here to highlight as much of the specification as possible:
I 3 version 1 4 1 EDDM 0.000000 48.364822 11.794361 2 GL 1000 57.083820 9.680093 3 KFK 2000 38.803889 30.546944 11 DETKO 0.600000 28.097222 49.525000 28 +13.691_+100.760 0.000000 13.691230 100.760811
I 3 version 1 4
The first two lines cover the source computer OS and the version of the specification the file is built to. A letter 'I' represents a file built on a PC, whilst a letter 'A' represents one built on an Apple computer; there is full compatibility between the two, so either will work across either OS. All FMS files I have come across for X-Plane 8 and 9 use the version 3.
I 3 version
The following two lines each contain an integer value. The first number is almost exclusively a '1' and the second number varies with the number of waypoints and appears to be number of waypoints minus 1, although I have not seen any adverse effects from using a different number here.
1 4
The remainder of the file consists of a number of waypoints that mark out the route for the FMC. Each row is made up of five segments that define the location, altitude, type and ID of the waypoint. The elements within each row can be either tab or space delimited.
1 EDDM 0.000000 48.364822 11.794361 2 GL 1000 57.083820 9.680093 3 KFK 2000 38.803889 30.546944 11 DETKO 0.600000 -28.097222 -49.525000 28 +13.691_+100.760 0.000000 13.691230 100.760811
The initial integer on each row defines of what type the waypoint is. The available options are as follows:
1 - Airport ICAO 2 - NDB 3 - VOR 11 - Fix 28 - Lat/Lon Position
These are the only waypoint type values seen in flight plans. Other values do not work with the FMC and are not intended for use in .fms files.
2 GL 1000 57.083820 9.680093 NDB 3 KFK 2000 38.803889 30.546944 VOR 11 DETKO 0.600000 -28.097222 -49.525000 FIX
This element contains the ID for the waypoint and defines what title shows up on the FMC. For all waypoints except the lat/lon type it should consist of only alphanumeric characters.
1 EDDM 0.000000 48.364822 11.794361 3 KFK 2000 38.803889 30.546944
The lat/lon type is special in that it has a strict predefined format and also makes use of the +,-,. and _ symbols. The format used is as follows, each '0' character represents a single digit that must be present; the first set of zeros corresponds to the latitude value and the second to the longitude. The '+' character can be substitued for the '-' character for waypoints in the southern or western hemispheres, although positive numbers cannot omit the '+' symbol.
28 +00.000_+000.000 0.000000 0.000000 0.000000 +12.345_+009.459 Correct for a waypoint at 12.345°/0.459°. -28.478_-056.370 Correct for a waypoint at -28.478°/-56.370°. 12.366_040.101 Incorrect: '+' or '-' symbol is required, even if values are positive. -16.982 +112.006 Incorrect: '_' symbol is required to separate the two values. -98.283_+200.554 Incorrect: the latitude numbers must be in the range -90 to 90. and the longitude values must be in the range -180 to 180. +6.080_-9.412 Incorrect: the leading digits are required even when they are zero. 28 +13.691_+100.760 0.000000 13.691230 100.760811
The altitude value set here is displayed on the FMC and can additionally be used to set the autopilot altitude through VNAV. The units are feet and the maximum value is 99999; any number greater than this should still work but will cause issues with the display of the value in the FMC and on the A/P. The value may also have up to 6 decimal places, but these will be rounded to the nearest integer when displayed in X-Plane.
11 DETKO 0.600000 28.097222 49.525000 Will be rounded to 1
11 DETKO 1000000 -28.097222 -49.525000 Will not display properly, but should still work
The final two values are the latitude and longitude values that make up the location of the waypoint. They are in decimal degrees and support up to six decimal places. As with the ID values, the latitude value should be in the range -90° to 90° and the longitude value should be in the range -180° to 180 °.
1 EDDM 0.000000 48.364822 11.794361 2 GL 1000 57.083820 9.680093 3 KFK 2000 38.803889 30.546944 11 DETKO 0.600000 -28.097222 -49.525000 28 +13.691_+100.760 0.000000 13.691230 100.760811
After all of the waypoints are defined, the file may contain a number of blank lines with the following format. These can be omitted or included at your discretion.
0 ---- 0.000000 0.000000 0.000000