RUNWAYS XML PROPERTIES

This page lists the different elements and attributes required to generate properly formed XML for runways. The information on this page is used along with the information for creating an Airport - since you can't have a runway without first having an airport - which can be found here:

 

The <Runway> element would go inside of the <Airport> element, and you can define multiple runways in a single airport, but you can't define an airport without at least one runway. Most of the XML shown is created for you when you use The Scenery Editor tool - included as part of the Developer Mode toolset within Microsoft Flight Simulator 2024. As such, we recommend that you use that tool instead of trying to create your own XML from scratch, and use this page as a reference if you need to edit the files the Scenery Editor creates.

 

 

<Runway>

The <Runway> element is a modular element used to represent the variety of runways that might be encountered in the world. It is a sub-element of and in its minimal configuration, it is necessary to have two <RunwayStart /> elements for it to be usable. Even though a runway is considered a single item, it has two distinct ends that are referenced as PRIMARY or SECONDARY in many of the sub-elements required to define the runway. The PRIMARY one is the one that is referenced by the attributes number and designator of the <Runway>. Note that you can use the "WATER" designator for the runway surface if the runway is a seaplane landing area.

 

This element is allowed to contain the following sub-elements, which must occur in the following order:

<RunwayDeformation />
<RunwayColoration />
<Coloration />
<Markings />
<Lights />
<OffsetThreshold />
<BlastPad />
<Overrun />
<ApproachLights />
<Vasi />
<Ils>
<IlsReference />
<RunwayStart />
<Material />

 

A <Runway> has the following attributes :

 

Attribute Description Type Required

displayName

The display name for the object in the Scenery Editor.

NOTE: this is only used for ordering in the The Scenery Contents List

String No

parentGroupID

The ID of the parent group this object belongs to.

NOTE: this is only used for ordering in the The Scenery Contents List

Integer No

groupIndex

The group index of the object.

NOTE: this is only used for ordering in the The Scenery Contents List

Integer No
lat Latitude of the center point of the runway, in degrees between -90.0° and 90.0°.   Yes
lon Longitude of the center point of the runway, in degrees between -180.0° and 180.0°. Float Yes
alt Altitude of the center point of the runway, in meters. You may add the "F" suffix to convert the value to feet, for example: "13.0F". Float Yes
altType This is used to determine the referential for the alt field.

Enum:

  1. GEOID
  2. ELLIPSOID
No
surface The name of the surface material to use. String Yes
transparent Make the runway surface transparent (TRUE) or not (FALSE). Boolean No
heading The heading of the runway, relative to True North, from 0.0° to 360.0°.

Float

Yes
length Length of the runway, in meters, but you can suffix the value with "F" for feet, eg: "2000F". Float Yes
width Width of the runway, in meters, but you can suffix the value with "F" for feet, eg: "200F". Float Yes
number Number of the runway being added. Note that you do not suffix the designator onto this value, but instead define it separately in the designator attribute.

Integer:

  1. 1 - 36

 

or Enum:

EAST
NORTH
NORTHEAST
NORTHWEST
SOUTH
SOUTHEAST
SOUTHWEST
WEST

Yes
designator Designator of the runway being added.

Enum:

NONE
C
CENTER
L
LEFT
R
RIGHT
W
WATER
A
B
E
N
NE
NW
S
SE
SW
W

No
primaryDesignator The primary designator for the runway.

Enum:

See the designator attribute, above.

No
secondaryDesignator The secondary designator for the runway.

Enum:

See the designator attribute, above.

No
patternAltitude Relative altitude to the runway at which traffic patterns are done, in meters. You may add the "F" suffix to convert the value to feet, for example: "1800.0F". Float No
falloff Defines the range affected by the flattening of the runway, higher value meaning an increase range. Float No
primaryTakeoff Defines if aircraft can takeoff from the PRIMARY end of the runway (TRUE) or not (FALSE). Boolean No
primaryLanding Defines if aircraft can land on the PRIMARY end of the runway (TRUE) or not (FALSE). Boolean No
secondaryTakeoff Defines if aircraft can takeoff from the SECONDARY end of the runway (TRUE) or not (FALSE). Boolean No
secondaryLanding Defines if aircraft can land on the SECONDARY end of the runway (TRUE) or not (FALSE). Boolean No
primaryPattern Side for traffic patterns taking of in the PRIMARY end of the runway. Can be either "LEFT" or "RIGHT".

Enum:

  1. LEFT
  2. RIGHT
No
secondaryPattern Side for traffic patterns taking of in the SECONDARY end of the runway. Can be either "LEFT" or "RIGHT".

Enum:

  1. LEFT
  2. RIGHT
No
primaryMarkingBias Offset from the end of the runway for the marking on the PRIMARY half, in meters. You can suffix the value with "F" for feet, eg: "350F". Float No
secondaryMarkingBias Offset from the end of the runway for the marking on the SECONDARY half, in meters. You can suffix the value with "F" for feet, eg: "350F". Float No
groundMerging Adds detail from the ground beneath the runway to the runway material (TRUE) or not (FALSE). Boolean No
excludeVegetationAround Exclude any vegetation from the surrounding area for the runway (TRUE) or not (FALSE). Boolean No
excludeBuildingAround Exclude any auto-generated (except OSM buildings) from the surrounding area for the runway (TRUE) or not (FALSE). Boolean No

 

The rest of the elements listed below are all sub-elements of the main <Runway> element.

 

 

<RunwayDeformation />

This sub-element of <Runway> is used to add some deformation to an airport runway (or a <Rectangle> object), and you can call this sub-element multiple times to define different deformations. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
ratio Ratio along the runway at which the other attributes are applied, where 0.0 corresponds to the PRIMARY end and 1.0 to the SECONDARY end. Float Yes
alt

Altitude for the runway at the position corresponding to the ratio distance, in meters. You may add the "F" suffix to convert the value to feet, for example: "13.0F"

Float Yes
altType This is used to determine the referential for the alt field.

Enum:

  1. GEOID
  2. ELLIPSOID
No
controlPointBefore Determine the shape of the flattening before the point. 0.0 meaning that it should be flat, while positive (+) values indicate a bump and negative (-) values indicate a crease. Float No
controlPointAfter Determine the shape of the flattening after the point. 0.0 meaning that it should be flat, positive values (+) indicate a bump and negative (-) values indicate a crease Float No

 

Please note that this element can also be used as part of a general Scenery Object file as a sub element of the <Rectangle> element. In these cases it is used exactly the same way only to deform a rectangular surface area rather than a runway. You can see an example of it being used for this purpose here: Runway Objects.

 

 

<RunwayColoration />

This sub-element of <Runway> is used to change the color blending for the runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
red Red component of the coloration (between 0 and 255). Integer Yes
green Green component of the coloration (between 0 and 255). Integer Yes
blue Blue component of the coloration (between 0 and 255). Integer Yes
alpha Alpha component of the coloration (between 0 and 255). Integer Yes

 

 

<Markings />

This sub-element of <Runway> is used to add markings to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
alternateThreshold Set to TRUE to indicate international rather than US Threshold markings. Boolean No
alternateTouchdown Set to TRUE to indicate international rather than US Touchdown markings. Boolean No
alternateFixedDistance Set to TRUE to indicate international rather than US Fixed Distance markings. Boolean No
alternatePrecision Set to TRUE to indicate international rather than US Precision markings. Boolean No
leadingZeroIdent Set to TRUE to indicate runway numbers have a leading zero (for runway numbers 0 to 9). Boolean No
noThresholdEndArrows Set to TRUE to ignore Threshold End Arrows. Boolean No
edges Runway has edge lines or not. Boolean No
threshold Runway has threshold marks or not. Boolean No
fixedDistance Runway has fixed distance marks or not. Boolean No
dashes Runway has dashed line down center or not. Boolean No
ident Runway has number and designator or not. Boolean No
primaryClosed Primary end is closed with "X" or not. Boolean No
secondaryClosed Secondary is closed with "X" or not. Boolean No
touchdown Runway has touchdown marks or not. Boolean No
precision

Runway has precision markings or not.

NOTE: When this is set to "True", it will also activate the yellow light at the end of the runway. These lights will follow the FAA reglementation for their length.

Boolean No
edgePavement Runway has pavement past edge lines or not. Boolean No
singleEnd Runway is single-ended with no markings on secondary end or not. Boolean No
primaryStol Primary end STOL or not. Boolean No
secondaryStol Secondary end STOL or not. Boolean No

 

 

<Lights />

This sub-element of <Runway> is used to add lights to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
edge Edge runway lights

Enum:

  1. NONE (default)
  2. LOW
  3. MEDIUM
  4. HIGH
No
center Center runway lights

Enum:

  1. NONE (default)
  2. LOW
  3. MEDIUM
  4. HIGH
No
centerRed Boolean indicating that the last part of the center line lights are RED/WHITE and then RED Boolean No

 

 

<OffsetThreshold />

This sub-element of <Runway> is used to add an offset threshold to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end Which end of the runway that the offset threshold applies to.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
length Length of pavement. This length is included in the main runway length and is in meters, but you can suffix the value with "F" for feet, eg: "2000F". Float Yes
width Width of pavement (if different from runway), in meters, but you can suffix the value with "F" for feet, eg: "200F". Float No
surface Surface type for the pavement.

String:

"ASPHALT"
"BITUMINUS"
"BRICK"
"CONCRETE"
"CORAL"
"DIRT"
"ERASE_GRASS"
"FOREST"
"GRASS"
"GRASS_BUMPY"
"GRAVEL"
"ICE"
"LONG_GRASS"
"MACADAM"
"OIL_TREATED"
"PLANKS"
"ROCK"
"SAND"
"SHALE"
"SHORT_GRASS"
"SNOW"
"STEEL_MATS"
"TARMAC"
"UNDEFINED"
"UNKNOWN"
"URBAN"
"WATER"

No

 

 

<BlastPad />

This sub-element of <Runway> is used to add a blast pad to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end Which end of the runway that the blast pad applies to.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
length Length of blast pad. This value is added to main runway length and is in meters, but you can suffix the value with "F" for feet, eg: "200F". Float Yes
width Width of blast pad (if different from runway), in meters, but you can suffix the value with "F" for feet, eg: "200F". Float No
surface Surface of the blast pad if different from the runway.
No

 

 

<Overrun />

This sub-element of <Runway> is used to add an overrun to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end Which end of the runway that the overrun applies to.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
length Length of overrun. This value is added to main runway length and is in meters, but you can suffix the value with "F" for feet, eg: "200F". Float Yes
width Width of overrun (if different from runway), in meters, but you can suffix the value with "F" for feet, eg: "200F". Float No
surface Surface of the overrun if different from the runway.
No

 

 

<ApproachLights />

This sub-element of <Runway> is used to add approach lights to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end Which end of the runway that the lights are for.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
system Type of approach light system.

Enum:

  1. NONE
    ALSF1
    ALSF2
    CALVERT
    CALVERT2
    MALS
    MALSF
    MALSR
    ODALS
    RAIL
    SALS
    SALSF
    SSALF
    SSALR
    SSALS
No
reil Boolean indicating that the runway has runway end identifier lights. Boolean No
strobes Number of sequenced strobes. Positive Integer No
endLights Boolean indicating that runway has end lights. Boolean No
touchdown Boolean indicating that runway has touchdown lights. Boolean No
snapToGround Indicates if the lights should be snapped to fit the ground terrain or not. Boolean No
spacing The spacing between the lights, in meters. You can suffix the value with "F" for feet, eg: "10F". Float No
offset The offset for the lights, in meters. You can suffix the value with "F" for feet, eg: "20F". Float No
slope Angle in degrees for the light slope, between -360.0° and 360.0° Float No

 

 

<Vasi />

This sub-element of <Runway> is used to add a VASI to an airport runway. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end End of runway that the VASI is for.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
type Type of VASI being used.

Enum:

  1. PAPI2 - 2 light PAPI
  2. PAPI4 - 4 light PAPI
  3. PVASI - Pulsating VASI
  4. TRICOLOR - Tri Color VASI
  5. TVASI - colored VASI in a shared-"T" shape
  6. VASI21 - 2 rows, 1 box/row
  7. VASI22 - 2 rows, 2 boxes/row
  8. VASI23 - 2 rows, 3 boxes/row
  9. VASI31 - 3 rows, 1 box/row
  10. VASI32 - 3 rows, 2 boxes/row
  11. VASI33 - 3 rows, 3 boxes/row (far row has only two boxes, 8 light system)
  12. BALL - presently remapped to PVASI
  13. APAP - panels
  14. PANELS - presently remapped to PAPI2
Yes
side Side of runway that the lights are on.

Enum:

  1. LEFT
  2. RIGHT
Yes
biasX

Distance from the runway center-line across the runway width to the reference point of the VASI, in meters.

You can suffix the value with "F" for feet, eg: "50F", if required.

Float Yes
biasZ

Distance along the runway from the runway center point to the VASI reference point, in meters.

You can suffix the value with "F" for feet, eg: "50F", if required.

Float Yes
spacing

Distance between light rows, in meters.

You can suffix the value with "F" for feet, eg: "10F".

Note that this is only applicable to the following types: VASI21, VASI31, VASI22, VASI32, VASI23, VASI33, and TVASI.

Float Yes
pitch Approach angle in degrees. A value from 0.0 to 10.0. Float Yes

 

 

 

<IlsReference />

This sub-element of <Runway> is used to reference one or more existing ILS - using the ICAO code - for the runway (you can call this element multiple times). Generally this is used when there is ILS created in the <Airport> element and none in the <Runway>. Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end Which end of the runway the ILS being defined goes at.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
ident

The ICAO code identity for the ILS (maximum 8 characters)

String Yes

 

 

<RunwayStart />

This sub-element of <Runway> is used to add a start location for a runway, and you can call this element twice per runway if required (once to define the PRIMARY start position and once for the SECONDARY start position). Note that this is a self-closing element and has the following attributes:

 

Attribute Description Type Required
end Which end of the runway to flag as the starting point. When selecting the end on the world map for the start of the flight, the plane will be place at the (lat, lon) coordinates.

Enum:

  1. PRIMARY
  2. SECONDARY
No
lat Latitude of the starting point, in degrees between -90.0° and 90.0°. Float Yes
lon Longitude of the starting point, in degrees between -180.0° and 180.0°. Float Yes
alt Altitude of the starting point, in meters. You may add the "F" suffix to convert the value to feet, for example: "13.0F". Float Yes
altType This is used to determine the referential for the alt field.

Enum:

  1. GEOID
  2. ELLIPSOID
No
heading Angle relative to true north towards which the plane will face when starting, measured in degrees between 0.0° and 360.0°. Float Yes

 

0/255