Air Traffic: Greenlight

Air Traffic: Greenlight

Not enough ratings
Manage Nav Points, Routes, and Procedures with an external text editor
By Fann
Learn how to export your custom waypoints, holding fixes, routes, and procedures data, modify it with an external text editor, and import it back into the game.
   
Award
Favorite
Favorited
Unfavorite
Intro
You can export and import your custom waypoints and holding fixes data in JSON format, which allows you to modify them with an external text editor.

Note that this feature is designed to modify existing objects. Exporting data in one save and importing it in another is not recommended.
Export
  • Open the Custom Waypoints tab on the Management window.

  • Click the button on the top-right of the tab to open the JSON toolbar.


  • Click the Export button on the toolbar.


  • Enter a file name and click the Export button.

  • A .json file will be created at the path you selected.
Import
  • Open the Custom Waypoints tab on the Management window.

  • Click the button on the top-right of the tab to open the JSON toolbar.


  • Click the Import button on the toolbar.


  • Select a .json file you want to import and click the Import button.
Custom Waypoint
    The following example shows a JSON file that contains a custom waypoint.
    1 { 2 "0": { 3 "name": "SCALE", 4 "color": "00ff00", 5 "latitude": "N46 20 30", 6 "longitude": "E6 7 1" 7 } 8 }

    Elements
    Line
    Data Type
    Name
    2
    String
    id
    3
    String
    name
    4
    String
    color
    5
    String
    latitude
    6
    String
    longitude


    ID
      It must be an integer in string format.
      If the assigned ID has been used in the game, the existing object will be modified.Otherwise, a new object will be created and given a new ID.

    Name
      If the assigned name has been used, it will be replaced by a random name.

    Color
      The route color. It must be a string in hexadecimal HTML notation.
      Example: "#ffffff", "#00ff00".

    Latitude and Longitude
      The default format is sexagesimal degree: degrees, minutes, and seconds: N46 20 30, E6 7 1.
      However, degrees and decimal minutes and decimal degrees are also allowed.
      For example, the following values are equal:
      • N46 20'30"
      • N46 20 30
      • 46N 20 30
      • 46 20 30N
      • N46 20.5
      • 46N 20.5
      • 46 20.5N
      • 46.341667
Holding Fix
    The following example shows a JSON file that contains a holding fix.
    1 { 2 "0": { 3 "name": "FLOAT", 4 "color": "00ff00", 5 "lantitude": "S46 20 30", 6 "longitude": "W6 23 10", 7 "course": 174, 8 "direction": "R" 9 } 10 }

    Elements
    Line
    Type
    Name
    2
    String
    id
    3
    String
    name
    4
    String
    color
    5
    String
    latitude
    6
    String
    longitude
    7
    Integer
    course
    8
    String
    direction


    ID
      It must be an integer in string format.
      If the assigned ID has been used in the game, the existing object will be modified.Otherwise, a new object will be created and given a new ID.

    Name
      If the assigned name has been used, it will be replaced by a random name.

    Color
      The route color. It must be a string in hexadecimal HTML notation.
      Example: "#ffffff", "#00ff00".

    Latitude and Longitude
      The default format is sexagesimal degree: degrees, minutes, and seconds: S46 20 30, W6 7 1.
      However, degrees and decimal minutes and decimal degrees are also allowed.
      For example, the following values are equal:
      • S46 20'30"
      • S46 20 30
      • 46S 20 30
      • 46 20 30S
      • S46 20.5
      • 46S 20.5
      • 46 20.5S
      • -46.341667

    Course
      The outbound course. It must be an integer between 0 - 359.

    Direction
      The turn direction. It must be "L"(left) or "R"(right).
Route
    The following example shows a JSON file that contains two routes:
    1 { 2 "0": { 3 "name": "L607", 4 "active": true, 5 "button_visible": true, 6 "line_visible": true, 7 "name_visible": true, 8 "direction_arrow_visible": false, 9 "minimum_altitude_visible": true, 10 "color": "00ff99", 11 "nav_points": [ 12 "TUTOV", 13 "EMGOD", 14 "RUDUS" 15 ], 16 "nav_point_config": { 17 "TUTOV": { 18 "line_visible": true, 19 "name_visible": true, 20 "direction_arrow_visible": false, 21 "min_altitude_visible": true, 22 "speed_restriction": "", 23 "altitude_restriction": ">=12000" 24 }, 25 "EMGOD": { 26 "line_visible": true, 27 "name_visible": true, 28 "direction_arrow_visible": false, 29 "min_altitude_visible": true, 30 "speed_restriction": "", 31 "altitude_restriction": ">=RFL" 32 }, 33 "RUDUS": { 34 "line_visible": true, 35 "name_visible": true, 36 "direction_arrow_visible": false, 37 "min_altitude_visible": true, 38 "speed_restriction": "", 39 "altitude_restriction": "" 40 } 41 }, 42 "next_route": "L984" 43 }, 44 "1": { 45 "name": "L984", 46 "active": true, 47 "button_visible": true, 48 "line_visible": true, 49 "name_visible": true, 50 "direction_arrow_visible": false, 51 "minimum_altitude_visible": true, 52 "color": "00ff99", 53 "nav_points": [ 54 "RUDUS", 55 "BOMBI", 56 "BAMTO" 57 ], 58 "nav_point_config": { 59 "RUDUS": { 60 "line_visible": true, 61 "name_visible": true, 62 "direction_arrow_visible": false, 63 "min_altitude_visible": true, 64 "speed_restriction": ">=250", 65 "altitude_restriction": "=-1000" 66 }, 67 "BOMBI": { 68 "line_visible": true, 69 "name_visible": true, 70 "direction_arrow_visible": false, 71 "min_altitude_visible": true, 72 "speed_restriction": "=APP", 73 "altitude_restriction": "" 74 }, 75 "BAMTO": { 76 "line_visible": true, 77 "name_visible": true, 78 "direction_arrow_visible": false, 79 "min_altitude_visible": true, 80 "speed_restriction": "", 81 "altitude_restriction": "" 82 } 83 }, 84 "next_route": "" 85 } 86 }

    Elements
    Line
    Data Type
    Name
    2
    String
    id
    3
    String
    name
    4
    Boolean
    active
    5
    Boolean
    button_visible
    6
    Boolean
    line_visible
    7
    Boolean
    name_visible
    8
    Boolean
    direction_arrow_visible
    9
    Boolean
    minimum_altitude_visible
    10
    String
    color
    11
    Array
    nav_points
    16
    Object
    nav_point_config
    42
    String
    next_route


    ID
      It must be an integer in string format.
      If the assigned ID has been used in the game, the existing object will be modified.Otherwise, a new object will be created and given a new ID.

    Name
      If the assigned name has been used, it will be replaced by a random name.

    Active
      Whether the route can be used. It must be true or false.

    Button Visible
      If true, the route button will be shown in the NAV list.

    Line Visible
      If true, the route path will be shown on the map.

    Name Visible
      If true, the route name label will be shown on the map.

    Direction Arrow Visible
      If true, an arrow will be shown beside the route path line on the map.

    Minimum Altitude Visible
      If true, the minimum altitude label of nav points can be shown on the top of the route name label.

    Color
      The route color. It must be a string in hexadecimal HTML notation.
      Example: "#ffffff", "#00ff00".

    Nav Points
      An ordered list of nav point names. A nav point can be a default waypoint, custom waypoint, holding fix, or runway name.
      A runway name must be a string containing an airport ICAO code and its name, separated by a space character.
      Example: “EDDF 25C”, “RCTP 05L”, “EHAM 22”, “YSSY 07”.

    Nav Point Config
      A collection of key-value pairs.
      A key must be a nav point name in the nav_points.
      A value must be a key-value pair containing the following nav point settings:

      line_visible
        If true, a line from the last nav point to this nav point will be shown on the map.

      name_visible
        If true, the route name label will be shown on the segment.

      direction_arrow_visible
        If true, an arrow will be shown beside the segment.

      min_altitude_visible
        If true, the minimum altitude of the nav point will be shown beside the segment.

      speed_restriction
        It must be a string that contains an operator and a value.
        An operator can be =, !=, <, >, <=, >=.
        The unit is a knot. The value must be multiples of 10.
        Example: "=120", ">=250"

      altitude_restriction
        An operator can be =, !=, <, >, <=, >=.
        The unit is feet. The value must be multiples of 1000.
        Example: ">=12000", "!=15000"

    Next Route
      A string contains a route name that flights will join via the last nav point.
      The last nav point of the current route must be a nav point in the next route.
      In the example above, the last nav point of route L607 is RUDUS, and the assigned next route is L984. Thus the rule will be: RUDUS must be a nav point in L984.
      An aircraft assigned to L607 will follow the following nav points: (L607)TUTOV - EMGOD - RUDUS - (L984)BOMBI - BAMTO.
Departure Procedure
    The following example shows a JSON file that contains a departure procedure:
    1 { 2 "0": { 3 "name": "FRANKFURT ONE", 4 "active": true, 5 "runways": [ 6 "EDDF 25C", 7 "EDDF 25L", 8 "EDDF 25R" 9 ], 10 "route": "Z738" 11 } 12 }

    Elements
    Line
    Data Type
    Name
    2
    String
    id
    3
    String
    name
    4
    Boolean
    active
    5
    Array
    runways
    10
    String
    route

    ID
      It must be an integer in string format.
      If the assigned ID has been used in the game, the existing object will be modified.Otherwise, a new object will be created and given a new ID.

    Name
      If the assigned name has been used, it will be replaced by a random name.

    Active
      Whether the procedure can be used. It must be true or false.

    Runways
      A runway name list. Only flights departing from one of the included runways can execute this departure procedure.
      A runway name must be a string containing an airport ICAO code and a runway name, separated by a space character.
      Runway name examples: "EDDF 25C", "RCTP 05L", "EHAM 22", "YSSY 07".

    Route
      It must be a string containing a route name. Aircraft will join this route after takeoff.
Arrival Procedure
    The following example shows a JSON file that contains an arrival procedure:
    1 { 2 "0": { 3 "name": "FRANKFURT ONE", 4 "active": true, 5 "waypoints": [ 6 "SPESA", 7 "RINEX" 8 ], 9 "route": "Z104", 10 "conditional_operator": "ALL", 11 "conditions": [ 12 { 13 "type": "altitude", 14 "expression": ">=12000" 15 }, 16 { 17 "type": "destination", 18 "expression": "=EDDF" 19 }, 20 { 21 "type": "WTC", 22 "expression": "!=H" 23 } 24 ] 25 } 26 }

    Elements
    Line
    Data Type
    Name
    2
    String
    id
    3
    String
    name
    4
    Boolean
    active
    5
    Array
    waypoints
    9
    String
    route
    10
    String
    conditional_operator
    11
    Object
    conditions


    ID
      It must be an integer in string format.
      If the assigned ID has been used in the game, the existing object will be modified.Otherwise, a new object will be created and given a new ID.

    Name
      If the assigned name has been used, it will be replaced by a random name.

    Active
      Whether the procedure can be used. It must be true or false.

    Waypoints
      A default waypoint name list. Only flights entered via one of the included waypoints can execute this arrival procedure.
      A waypoint name must be a string containing a default waypoint name.

    Route
      It must be a string containing a route name. Aircraft will join the route after entering the map.

    Conditional Operator
      It must be “ALL” or “ANY”.
      “ALL”: Execute when all conditions are true.
      “ANY”: Execute when one of the conditions is true.

    Conditions
      A condition list. Only aircraft that meet the conditions will execute this arrival procedure.
      Condition Type
        Allowed condition type includes "altitude", "speed", "destination", "plan_type", "wtc", and "apc".
      Condition Expression
        A condition expression is a string that contains an operator and a value.
        An operator can be =, !=, <, >, <=, >=. Note that some properties can only use certain operators.
        altitude
          Allowed operators: =, !=, <, >, <=, >=
          The unit is feet. The value must be multiples of 1000.
          Example: ">=12000"
        speed
          Allowed operators: =, !=, <, >, <=, >=
          The unit is a knot. The value must be multiples of 10.
          Example: "<=250"
        destination
          Allowed operators: =, !=
          The value can be a default waypoint name or an airport name.
          Examples: "=RCTP", "!=PIANO"
        plan_type
          Allowed operators: =, !=
          It can be "arrival" or "transit".
          Example: "!=arrival"
        wtc
          Allowed operators: =, !=, <, >, <=, >=
          The value can be "L", "M", "H", or "J".
          Example: "<=M"
        apc
          Allowed operators: =, !=, <, >, <=, >=
          The value can be "A", "B", "C", "D", or "E".
          Example: "=C"


3 Comments
M1rje 5 Jun, 2023 @ 10:03pm 
Okay, Thanks)
Fann  [author] 5 Jun, 2023 @ 9:38pm 
You can't add airports at this moment. However, the development is in progress.
M1rje 5 Jun, 2023 @ 8:18pm 
How to add your airport to the game?