Skip to content
AlexisBalzano edited this page Nov 17, 2025 · 13 revisions

Airport Config JSON File Documentation

NeoSTAND uses per-airport configuration files (placed in Documents/NeoRadar/Plugins/NeoSTAND) to control how stands are assigned to arriving aircraft. Each airport has its own config file, named according to its ICAO code (e.g., LFPG.json).

Below is a guide to the structure and available options in these JSON files.


Top-Level Structure

A minimal config file looks like:

{
  "version": "1.0.0",
  "ICAO": "LFPG",
  "Coordinates": "43.633086:1.369442:5000",
  "STAND": {
    "A01": {
      "Coordinates": "43.633086:1.369442:25",
      "Priority": 1
    },
    "B05": {
      "Coordinates": "43.632854:1.368977:25",
      "Priority": 99
    }
  }
}
  • version:
    Type: string
    Description: Indicates the config version. Must match the version.json file from Github config (if using remote config)

  • Coordinates:
    Type: string
    Description: Center coordinates of airport + radius of airport in meters

  • STAND:
    Type: object
    Description: A dictionary where each key is a stand name (e.g., "A01", "B05") and the value is a set of options for that stand.
    Coordinates: Set of coordinates in Decimal Degrees and radius of the Stand,
    Priority: Integer used to distinguished stands when they have same restrictions,


STAND Section Options

Each stand in the STAND section can define the following options:

Code

  • Type: string
  • Description: Restricts the Stand to Sizes.
  • Possible Values:
    • "A": Wingspan < 15m
    • "B": 15m < Wingspan < 24m
    • "C": 24m < Wingspan < 36m
    • "D": 36m < Wingspan < 52m
    • "E": 52m < Wingspan < 65m
    • "F": 65m < Wingspan < 80m
  • Behavior: If set, only aircraft with a matching size Code will be assigned this stand. If not set or "ABCDEF", the stand is not restricted by Code. Can be multiple (ex: "ABCDE" to only refuse > 80m or "EF" to only accept < 52m).

Wingspan

  • Type: double
  • Description: Restricts the Stand to a maximum wingspan.
  • Behavior: If set, only aircraft with a wingspan inferior or equal to the set max wingspan will be able to take this stand).

Use

  • Type: string
  • Description: Restricts the Stand specific types of aircraft/operation.
  • Possible Values:
    • "A": Airliner
    • "P": General Aviation
    • "H": Helicopter
    • "M": Military
    • "C": Cargo
  • Behavior: Only aircraft matching the specified type will be considered for this stand. If omitted, the stand is not restricted by type. Can be multiple (ex: "AC" to accept Airliners and Cargo).

Schengen

  • Type: boolean
  • Description: Restricts the Stand to Schengen flights or Exclude Schengen flights
  • Behavior: If set to true, only flights departing from Schengen airspace will be able to get this Stand, if set to false Schengen flight won't get this stand (if you want to assign regardless of origin, do not add a Schengen key).

Countries

  • Type: Array of string
  • Description: Restricts the Stand to flights originating from specific countries.
  • Behavior: Set the first two letters from ICAO country code (ex: "LF" for flight originating from France).

Callsigns

  • Type: array of strings
  • Description: Restricts the stand to specific airlines.
  • Possible Values: Airline ICAO codes.
  • Behavior: If set to ["AFR", "KLM"], only Air France & KLM flights will be able to get this Stand.

Block

  • Type: array of strings
  • Description: Block other Stands if this one is assigned.
  • Possible Values: Blocked Stands name.
  • Behavior: If set to ["V10", "V08"], when this stand is assigned, it will block assignation of "V10" & "V08".

Remark

  • Type: Object
  • Description: Used to display remark based on aircraft code on tag/list.
  • Possible Values: Key: string containing concerned Codes (ex: "ABC" to display to all aircraft under 36m), value: string containing remark to display.
  • Structure:
{
  "Remark": {
    "BCD": "Push N Yellow line",
    "EF": "Push N Block S2"
  }
}

Priority

  • Type: integer
  • Description: Used to determined if stand should be assigned before other valid stands.
  • Possible Values: Any integer.
  • Behavior: Lowest priority from remaining stands will be assigned. Good practice: Stands with more restrictions should have a lower priority than stands with less restrictions

Apron

  • Type: object
  • Description: Used to consider "stand" as an apron containing multiple unnamed stands.
  • Parameters: Size: integer, max allowed aircraft in apron (2->100), Optional Coordinates: array of "lat:lon" (3->10) used to define apron.
  • Behavior: If defined, the "stand" is not considered occupied when assigned to a pilot until Size is reached, hence it can be assigned to multiple. Used to depict Terminal/Apron assignation instead of specific stand number.

Example

{
  "version": "v1.0.0",
  "ICAO": "LFBO",
  "Coordinates": "43.633086:1.369442:3000",
  "Stands": {
    "V10": {
      "Coordinates": "43.633086:1.369442:25",
      "Use": "A",
      "Schengen": true,
      "Callsigns": [
        "RYR",
        "RAM",
        "BEE",
        "KLM"
      ],
      "Code": "ABC",
      "Block": ["V11"],
      "Priority": -1
    },
  } 
}
  • V10: Stand at coordinates 43.633086N 1.369442E with a radius of 25 meters, for aircrafts with wingspan < 36m, airliner traffic from Schengen airspace from either Ryanair, Royal Air Maroc, Brussels Airline or KLM, and when assigned, this stand blocks V11 and this stand will be assigned before all other valid stands of priority > -1.

Good Practices

Priority

During initial creation of the config, try using theses values of priority for each stand class. Those will be adjusted with on network testing after release.

Class Type Priority
Airliners Main 50
Airliners Fallback 70
Cargo Main 60
Cargo Fallback 80
GA Main 0
Helicopters Main -20
APRON Main -10

Stand Radius

Make the radius as big as possible to accommodate every simulator/scenery combination as it is used to detect if aircrafts are on this stand.

Stand Overlap

  • Different stand overlap should be as minimal as possible
  • Same stand but different variants (ex: 23,23A,...) can overlap if they have different priority or aircraft Code are exclusive (ex: "BC" and "DEF"). Otherwise, stand detection will select the first stand numerically then alphabetically.

Notes

  • Any of these option can be omitted to indicate that there is no restrictions.
  • Each Airport Config should have some fallbacks stand that do not have any/or little restriction to avoid not finding stand for a flight, those would need a low priority (meaning high integer) to avoid being assigned before more specific stands.
  • Stands can be blocked dynamically if they are already occupied or too close to another occupied stand.

For more advanced/extended options or plugin updates, consult the plugin changelog or source code.