DOCS / MISSION GENERATOR / AIRPORT CATALOG

Airport catalog

vCareer's AirportRef table is the structural index of every airport the generator considers — about 8,000 entries at MVP, weighted toward fields VATSIM controllers actually staff. Categorized by runway length and max aircraft size, not by hand-curation.

~3 MIN READ

What it is

Each row is one airport. Fields: icao, name, countryIso, latitude, longitude, runwayCodeNumber (1–4), maxAircraftCodeLetter (A–F), surface (paved / unpaved / water), elevationFt, ifrSuitable.

Nothing in there is human-curated. The catalog is generated from the OpenStreetMap aerodrome dataset cross-referenced with the ICAO Aviation System Block Upgrade airport classifications. We regenerate it each release; no per-airport overrides.

Categories

Runway Code Number

CODERUNWAY LENGTHTYPICAL USE
1 Runway < 800m Bush strips, regional VFR fields
2 Runway 800–1200m GA / training airfields
3 Runway 1200–1800m Regional, business jet
4 Runway ≥ 1800m Airliner-capable

Max Aircraft Code Letter

CODEWINGSPANEXAMPLES
A Wingspan < 15m C172-class
B Wingspan 15–24m Caravan, DA62
C Wingspan 24–36m A320, 737, ATR-72
D Wingspan 36–52m A330, 767, 757
E Wingspan 52–65m A340, 777, 787
F Wingspan 65–80m A380, 747-8

How the generator filters

Each class template has constraints expressed in these codes. For example:

  • Bush: code number 1–2, code letter A–B, unpaved allowed, IFR not required.
  • Charter: code number 2–3, code letter B–C, paved only.
  • Long Haul: code number 4, code letter E–F, paved, IFR-suitable, runway length actually ≥3000m.

Stage 2 of generation runs an indexed query against AirportRef with these constraints; surviving candidates then go through ATC + weather + recency scoring. The whole airport filter typically narrows the universe to a few hundred candidates in under 20ms.

Country anchor

The generator enforces a 70% home-country quota: roughly 70% of missions on a board have either dep or arr in your declared country, and the remaining ~30% are "ferry / international" slots.

Enforced at Stage 5 (board composition), not at Stage 2 (airport filtering). Stage 2 considers all category-matching airports world-wide; Stage 5 trims and ensures the quota is met.

Why not 100%? Pure home-country gets boring fast for compact countries (most of the FR network would be a CDG/ORY shuffle). Pure global gets expensive in flight time and ignores the fact that you fly out of one region most days.

Recency penalty

Stage 2 and Stage 3 both penalize airports you've recently visited. Two windows:

  • Last 5 missions: mild downweight if dep or arr appears.
  • Full dep+arr pair recency: stronger downweight — the generator avoids serving you LFPG→EGLL twice in a row even if both airports are otherwise hot.

The penalty resets on a "shake up my board" request (board refresh button) and on full account data-wipe.