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 :

 

AttributeDescriptionTypeRequired

displayName

The display name for the object in the Scenery Editor.

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

StringNo

parentGroupID

The ID of the parent group this object belongs to.

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

IntegerNo

groupIndex

The group index of the object.

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

IntegerNo
latLatitude of the center point of the runway, in degrees between -90.0° and 90.0°.Yes
lonLongitude of the center point of the runway, in degrees between -180.0° and 180.0°.FloatYes
altAltitude 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".FloatYes
altTypeThis is used to determine the referential for the alt field.

Enum:

  1. GEOID
  2. ELLIPSOID
No
surfaceThe name of the surface material to use.StringYes
transparentMake the runway surface transparent (TRUE) or not (FALSE).BooleanNo
headingThe heading of the runway, relative to True North, from 0.0° to 360.0°.

Float

Yes
lengthLength of the runway, in meters, but you can suffix the value with "F" for feet, eg: "2000F".FloatYes
widthWidth of the runway, in meters, but you can suffix the value with "F" for feet, eg: "200F".FloatYes
numberNumber 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
designatorDesignator 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
primaryDesignatorThe primary designator for the runway.

Enum:

See the designator attribute, above.

No
secondaryDesignatorThe secondary designator for the runway.

Enum:

See the designator attribute, above.

No
patternAltitudeRelative 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”.FloatNo
falloffDefines the range affected by the flattening of the runway, higher value meaning an increase range.FloatNo
primaryTakeoffDefines if aircraft can takeoff from the PRIMARY end of the runway (TRUE) or not (FALSE).BooleanNo
primaryLandingDefines if aircraft can land on the PRIMARY end of the runway (TRUE) or not (FALSE).BooleanNo
secondaryTakeoffDefines if aircraft can takeoff from the SECONDARY end of the runway (TRUE) or not (FALSE).BooleanNo
secondaryLandingDefines if aircraft can land on the SECONDARY end of the runway (TRUE) or not (FALSE).BooleanNo
primaryPatternSide for traffic patterns taking of in the PRIMARY end of the runway. Can be either “LEFT” or “RIGHT”.

Enum:

  1. LEFT
  2. RIGHT
No
secondaryPatternSide for traffic patterns taking of in the SECONDARY end of the runway. Can be either “LEFT” or “RIGHT”.

Enum:

  1. LEFT
  2. RIGHT
No
primaryMarkingBiasOffset 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”.FloatNo
secondaryMarkingBiasOffset 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”.FloatNo
groundMergingAdds detail from the ground beneath the runway to the runway material (TRUE) or not (FALSE).BooleanNo
excludeVegetationAroundExclude any vegetation from the surrounding area for the runway (TRUE) or not (FALSE).BooleanNo
excludeBuildingAroundExclude any auto-generated (except OSM buildings) from the surrounding area for the runway (TRUE) or not (FALSE).BooleanNo

 

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:

 

AttributeDescriptionTypeRequired
ratioRatio 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.FloatYes
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"

FloatYes
altTypeThis is used to determine the referential for the alt field.

Enum:

  1. GEOID
  2. ELLIPSOID
No
controlPointBeforeDetermine 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.FloatNo
controlPointAfterDetermine 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 creaseFloatNo

 

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:

 

AttributeDescriptionTypeRequired
redRed component of the coloration (between 0 and 255).IntegerYes
greenGreen component of the coloration (between 0 and 255).IntegerYes
blueBlue component of the coloration (between 0 and 255).IntegerYes
alphaAlpha component of the coloration (between 0 and 255).IntegerYes

 

 

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

 

AttributeDescriptionTypeRequired
alternateThresholdSet to TRUE to indicate international rather than US Threshold markings.BooleanNo
alternateTouchdownSet to TRUE to indicate international rather than US Touchdown markings.BooleanNo
alternateFixedDistanceSet to TRUE to indicate international rather than US Fixed Distance markings.BooleanNo
alternatePrecisionSet to TRUE to indicate international rather than US Precision markings.BooleanNo
leadingZeroIdentSet to TRUE to indicate runway numbers have a leading zero (for runway numbers 0 to 9).BooleanNo
noThresholdEndArrowsSet to TRUE to ignore Threshold End Arrows.BooleanNo
edgesRunway has edge lines or not.BooleanNo
thresholdRunway has threshold marks or not.BooleanNo
fixedDistanceRunway has fixed distance marks or not.BooleanNo
dashesRunway has dashed line down center or not.BooleanNo
identRunway has number and designator or not.BooleanNo
primaryClosedPrimary end is closed with "X" or not.BooleanNo
secondaryClosedSecondary is closed with "X" or not.BooleanNo
touchdownRunway has touchdown marks or not.BooleanNo
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.

BooleanNo
edgePavementRunway has pavement past edge lines or not.BooleanNo
singleEndRunway is single-ended with no markings on secondary end or not.BooleanNo
primaryStolPrimary end STOL or not.BooleanNo
secondaryStolSecondary end STOL or not.BooleanNo

 

 

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

 

AttributeDescriptionTypeRequired
edgeEdge runway lights

Enum:

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

Enum:

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

 

 

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

 

AttributeDescriptionTypeRequired
endWhich end of the runway that the offset threshold applies to.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
lengthLength 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".FloatYes
widthWidth of pavement (if different from runway), in meters, but you can suffix the value with "F" for feet, eg: "200F".FloatNo
surfaceSurface type for the pavement.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:

 

AttributeDescriptionTypeRequired
endWhich end of the runway that the blast pad applies to.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
lengthLength 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".FloatYes
widthWidth of blast pad (if different from runway), in meters, but you can suffix the value with "F" for feet, eg: "200F".FloatNo
surfaceSurface 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:

 

AttributeDescriptionTypeRequired
endWhich end of the runway that the overrun applies to.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
lengthLength 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".FloatYes
widthWidth of overrun (if different from runway), in meters, but you can suffix the value with "F" for feet, eg: "200F".FloatNo
surfaceSurface 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:

 

AttributeDescriptionTypeRequired
endWhich end of the runway that the lights are for.

Enum:

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

Enum:

  1. NONE

    ALSF1

    ALSF2

    CALVERT

    CALVERT2

    MALS

    MALSF

    MALSR

    ODALS

    RAIL

    SALS

    SALSF

    SSALF

    SSALR

    SSALS

No
reilBoolean indicating that the runway has runway end identifier lights.BooleanNo
strobesNumber of sequenced strobes.Positive IntegerNo
endLightsBoolean indicating that runway has end lights.BooleanNo
touchdownBoolean indicating that runway has touchdown lights.BooleanNo
snapToGroundIndicates if the lights should be snapped to fit the ground terrain or not.BooleanNo
spacingThe spacing between the lights, in meters. You can suffix the value with “F” for feet, eg: “10F”.FloatNo
offsetThe offset for the lights, in meters. You can suffix the value with “F” for feet, eg: “20F”.FloatNo
slopeAngle in degrees for the light slope, between -360.0° and 360.0°FloatNo

 

 

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

 

AttributeDescriptionTypeRequired
endEnd of runway that the VASI is for.

Enum:

  1. PRIMARY
  2. SECONDARY
Yes
typeType 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
    sideSide 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.

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

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

    FloatYes
    pitchApproach angle in degrees. A value from 0.0 to 10.0.FloatYes

     

     

     

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

     

    AttributeDescriptionTypeRequired
    endWhich 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)

    StringYes

     

     

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

     

    AttributeDescriptionTypeRequired
    endWhich 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
    latLatitude of the starting point, in degrees between -90.0° and 90.0°.FloatYes
    lonLongitude of the starting point, in degrees between -180.0° and 180.0°.FloatYes
    altAltitude of the starting point, in meters. You may add the "F" suffix to convert the value to feet, for example: "13.0F".FloatYes
    altTypeThis is used to determine the referential for the alt field.

    Enum:

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