# Custom airport file
# Save a copy of example.txt before editing it, to keep this file as a guide.
# On Windows, place the txt file in the /locations/ folder of the game.
# On android, place the txt file in /Android/data/com.dirgtrats.endlessatc/files/.
# Copy, edit and use and share airport files at your own risk!

# This example file has lots of comments (#), to use it as a guide
# Uncomment the 'code = ' item in the [airport1] section below to make the airport appear in-game.

# This file has several [sections] (but most are optional), namely:
# [airspace]: various general properties
# [airport1]: main airport
# [airport2]: optional secondary airports
# [area1]: optional restricted areas
# [configurations]: optional runway usage configurations
# [departure1]: optional runway departure routes
# [approach1]: optional runway approach routes
# [planetypes]: optional custom plane types
# [scenario]: optional nonrandom traffic

# Each section can have multiple items, each item with one or more properties. The format/order of properties are explained after a double hashtag (##) in this file.
# Properties are comma separated. Multi-line properties (lists) MUST start with a tab or space at the beginning of each line.
# Properties in this file that are explained between <brackets> are optional properties (do not include the brackets themselves).
# If the game fails to load a property, or you omit, #comment or zero a property, the game may automatically use a default value instead.
# Positions must be given either in x, y coordinates (in nautical miles, NM), with 0, 0 being the center of the screen, and 20.1, 12.82 being somewhere at the top left,
# or, in latitude, longitude coordinates, which must be a comma separated pair, starting or ending with NWSE characters; two examples:
# N51.47176,		W0.457859
# 51°28'18.336''N,	0°27'28.2924''W
# Lat/long coordinates (and true headings) are rotated automatically when a magnetic variance is defined; this is to align the radar display with the magnetic north,
# to make a heading of 360 degrees appear as a vertical line on the radar screen.
# X, y coordinates are simple screen coordinates; they are not rotated.
# Either way, all positions consist of two values, seperated by a comma. Whether you want to use x,y or latlong coordinates is up to you.
# For real world data it is probably easier to search the internet for the actual latlong coordinates.
# Press the left Ctrl key in the sim to display the coordinates of the mouse position. These values are also copied into the Windows clipboard, to be easily pasted into a file.


##############################################################
[airspace]
##############################################################

radius = 30				; airspace radius in NM
zoom = 7.0 				; default zoom level, increase to zoom in
elevation = 13 				; ground altitude in feet
floor = 1500 				; minimum selectable altitude
descendaltitude = 7000 			; minimum initial altitude for arrivals
ceiling = 9000 				; maximum selectable altitude
above = 12000 				; maximum departure altitude when SID is enabled (must be above ceiling)
transitionaltitude = 18000		; highest altitude displayed in feet instead of flight level
speedrestriction = 15, 220, 10000, 250 	; radius in NM, speed in knots within radius, <altitude, speed below altitude>
localizerspeed = 30, 200		; distance to touchdown in NM, speed restriction in knots on localizers
usa = true				; American-style callsign pronunciation and runway names
metric = false				; display altitudes in metres instead of feet
separation = 3				; minimum allowed distance between aircraft in NM
automatic = false			; entering arrivals will follow an approach route when flying inbound an approach beacon
name = approach, departure		; atc callsign pronunciation for arrivals, atc callsign pronunciation for departures
center = N50.1234, E2.0060		; lat/long location of center of radar display (required when using lat/long coordinates elsewhere in this file)
magneticvar = 2.0			; magnetic variance; east = positive (used to rotate lat/long coordinates if used elsewhere in this file)


beacons =
	vor,	0,	-3,	0,	main v-o-r
	bco,	18.6,	6.8,	090,	beacon two
	trd,	N50.0, E2.1,	-090,	the third one
## name, position, <holdingheading>, <pronunciation>
# the first given beacon will be the default beacon for arrivals inbound the main airport
# when holdingheading is 0 or omitted, planes will hold there using the plane's current heading
# when a holdingheading is given, planes will fly that heading (or magnetic course) on the inbound leg when flying the holding
# when holdingheading is negative, planes will make left-hand turns instead of right-hand turns

boundary = 
	-25, -22
	25, -22
	25, 22
	-25, 22
## positions
# pointlist of optional airspace boundary polygon; this will override the default (circular) airspace radius.
# last point is automatically connected to first point

handoff =
	090, Radar East, radar east, 123.5
	270, Radar West, radar west, 122.275
## heading, atc callsign, callsign pronunciation, <radio frequency>
# optional handoff readbacks for departures; only used when sound mode 3 is enabled in-game
# heading determines which atc station will be selected by a plane: the closest to the heading from the center of the screen towards the plane's (last) SID point

line1 = 
	10, 10
	10, 40
	40, 40
	40, 10
	10, 10
## positions
# pointlist of optional green (coast)line.

line2 = 
	-15, 0
	-22, 0
	-22, -12.23
	-15, -14
	-15, 0

# all items in this section are optional unless stated otherwise


##############################################################
[airport1]
##############################################################

name = Example Airport, example	; name of the main airport, <pronunciation>
#code = EXAM			; four letter code, displayed in airport menu (required; remove the #)

runways = 
	rwy1,	36,	-4.3,	3.23,	360.0,	11400,	0,	0,	100,	3,	360.0,	3,	180.0,	YY,	8.0,	ZZ,	8.5,	119.23
## identifier, name, position, true_heading, <length>, <displaced>, <displaced2>, <elevation>, <glideslope>, <localizer>, <glideslope2>, <localizer2>, <beaconname, distance>, <beaconname2, distance2>, <tower frequency>
# identifier is a unique name used to define a runway usage configuration later in this file
# name is one or two digits, optionally suffixed with an L, R or C character
# position is the location of the beginning of the runway (including displaced threshold)
# length is in feet
# displaced threshold length in feet, displaced2 is for the other end of the runway
# elevation is in feet, and must be within 1000 feet difference from the airspace ground elevation defined above
# glideslope is the angle in degrees; the default value is 3.0
# localizer is the true heading in degrees of the ILS until touchdown; by default it's the same as runway true heading, but a small offset is allowed
# beacon is an optional point on the localizer at a certain distance (NM) from the (displaced) threshold
# second beacon is a point on the localizer when runway is used in opposite direction (rev)
# tower frequency is used for handoff readbacks

climbaltitude = 5000 		; maximum initial climb altitude in feet for departures

sids = 
	north,	0,	25,	northbound
	south,	0,	-25,	southbound
	bco
## name, position, <pronunciation>
# you may also give just the name of a beacon from the beacon list

entrypoints = 
	090
	270,	bco
## true_heading, <beaconname>, <altitude>
# this is where new arrivals enter at the boundary (approximately), e.g. 090 means planes will enter from the east, heading 270 (westbound)
# inbound beacon is optional; choose a beacon name from the beacon list above; otherwise the first beacon from that list is chosen automatically
# optional descendaltitude for this entrypoint; otherwise the default descendaltitude is used

airlines =
	air,	3,	e175,		airliner,	w
	air,	2,	a333,		airliner
	air,	1,	dh8d/f200,	airliner,	e
	ph-abc,	1,	c271,		0,		nwe
	n-123ab,1,	f200
## name, amount, planetype, pronunciation, <direction>
# name is the 3 letter airline code, or a private regristration (with a land code, dash(-), and then the format)
# amount determines the relative likelihood of appearance (e.g. 0=never, 1=occasionally, 10=frequently, etc)
# planetype determines the plane characteristics (optionally put a dash (/) between multiple types)
# pronuniation is the callsign, used for airlines
# direction lets the plane arrive/depart in (roughly) a preferred direction:
# give the direction as a string containing one or more of the letters nwse, for north west south east,
# but make sure there are actually entrypoints defined at those directions (approximately); w needs an entrypoint near 270
# note that you can add the same airline multiple times, for example with different planetypes, in order to get different likelihoods per planetype

##############################################################
[airport2]
##############################################################

name = Secondary Airport, secondary airport	; name of secondary airport, <pronunciation>
code = SC					; two letter code, which will be added to the runways and plane tags

runways =
	rwy2,	06,	6.7,	-3.5,	60.0,	11423,	0,	0,	100,	3,0,3,0,	WL,	8.0,	0,	0,	118.105
## identifier, name, position, true_heading, <length>, <displaced>, <displaced2>, <elevation>, <glideslope>, <localizer>, <glideslope2>, <localizer2>, <beaconname, distance>, <beaconname2, distance2>, <tower frequency>
# identifier must be unique to all other runways defined in this file

traffic = 5			; average time between airplanes per active runway, in minutes (but this decreases at higher skill values)
inboundbeacon = bco		; beacon name; the default initial beacon for arrivals (choose one from the beacon list above)
entrypoints =
	300
	330,	trd,	8000
## true_heading, <beaconname>, <altitude>

airlines =
	jet,		2,	b735,	jetliner
	n-12345,	1,	c271
## name, amount, planetype, pronunciation, <direction>

climbaltitude = 3000	; maximum initial climb altitude in feet for departures

sids =
	north
	south
	west,	-25,	0,	westbound
	bco
## name, position, <pronunciation>
# you may also give just the name of a beacon from the beacon list, or the name of a sid from the airport1 sid list

# You can add more airports sections if needed ([airport3], etc).

##############################################################
[area1]
##############################################################
shape = circle		; circle or polygon
altitude = 3000		; minimum allowed altitude in feet
name = SC		; <name, if omited then only planes inbound the main airport may enter this area>
radius = 6		; radius of circle in NM
position = 7, -3.6	; position of circle center
labelpos = 6, 0		; <position of label>
draw = 0, 5.9		; <start and end angle of visible arc, in radians (orientated to the left), omit for a full circle>


##############################################################
[area2]
##############################################################
shape = polygon		; circle or polygon
altitude = 3500		; minimum allowed altitude in feet
#name = X		; <name, if omited then planes inbound the main airport may enter this area>
draw = 1		; <number of invisible lines at the end of the polygon, omit for a full polygon>
labelpos = -3.1, 10.9	; <position of label>
points =
	-8.1,	13.3
	0,	13
	-1,	-4
	-7.6,	-4
	-9.0,	10
## positions
# the last point will be automatically connected to the first point


##############################################################
[configurations]
##############################################################

config1 =
	0,	rwy1,	landstart
	7,	rwy1,	startland,	020,	nosid
	8,	rwy2,	startlandrev
## score, identifier, usage, <offsetheading>, <nosid>
# score is the score (skill) at which the runway will be activated
# identifier is a unique runway name specified earlier
# usage is a string (without spaces) that may contain these words: start, land, rev, int, track
# where rev means reversed use (opposite direction), int means intersection departure (takeoffs begin 30% down the rwy), track means backtrack after landing
# offsetheading means planes will fly a specific heading just after takeoff (especially useful for allowing parallel takeoffs with divergent climbout headings)
# nosid option means planes will depart on the given offsetheading, with SID mode disabled
# when rwy configurations are omited, two configs are automatically created, one for each rwy direction, with all runways active

config2 =
	0,	rwy1,	landstartrev
	7,	rwy1,	startlandrev,	200,	nosid
	8,	rwy2,	startland


##############################################################
[departure1]
##############################################################

runway = rwy2			; runway identifier, <reversed use>
route1 = 
	bco2, beacon two
	12,	0
	18.6,	0
	18.6,	6.8
	25,	16.5
# first line of the route is the sid name (up to 5 characters will be displayed), and optional <pronunciation> of the sid name
# next lines are one or more waypoint positions
# first waypoint may have an optional altitude value; this will override the default climbaltitude

route2 = 
	south
	12,	0
	15.3,	-4.7
	0,	-16.6
	0,	-25

# the optional [departure] section adds routes to a specific runway direction
# this overrides the default (single waypoint) SIDs with more detailed routes, and applies the routes to the specified runway only
# departing planes from that runway will then follow the one of the routes, unless the user deactivates SID mode
# re-enabling SID mode (or longpressing SID) will select just the last point of the route
# defining one or more departure routes disables all the default SID points for that runway; planes will use the given routes only
# use one [departure] section per runway direction, each with one or more routes
# [departure] routes are not used in the built-in airports, for simplicity


##############################################################
[approach1]
##############################################################

runway = rwy1,	rev					; runway identifier, <reversed use>
beacon = lima,	1,	18,	0,	lima		; selectable beacon to enable APP mode; define a beacon, or choose a name from beacon list above
route1 = 
	060
	-3,	22,	5500,	210
	1,	22
	1,	18,	4000
	-3,	18, 	0,	180
	10.5,	3000,	200
# first item of the route is the bearing from the plane towards the beacon; if there are multiple routes defined for this beacon, the closest bearing defines which route is selected; but if only one route is defined then the bearing can just be a random number
# next lines are optional waypoints: ## position, <maximum altitude>, <maximum speed>
# last line is the interception point on the ILS: ## distance (NM) from the (displaced) threshold, <maximum altitude>, <maximum speed>
# alternatively the last line can be used to end the route before it reaches the ILS (requiring vectors), using the word end: ## end, <heading>
# or, to hold at the last waypoint, use: ## end, hold

route2 = 
	310
	1,	18,	4000
	-3,	18, 	0,	180
	10.5,	3000,	200

route3 = 
	010
	1,	10
	1,	18,	4000
	-3,	18, 	0,	180
	10.5,	3000,	200

# the optional [approach] section adds route(s) to a specific runway
# multiple [approach] sections can be used for the same runway, to allow for multiple app beacons
# for easier creation of routes, use left Ctrl key to display current mouse coordinates, and left click while holding down Ctrl places temporary visual markers
# Longpress the airport name button in the menu to display all routes at once
# [approach] routes are not used in the built-in airports as the game is focussed on vectors for simplicity


##############################################################
[planetypes]
##############################################################
types = 
	f200, 5, 140, 230, 2.9, 3.2, 1400, 1600, 115, 125, 1.1, 1.2, big jet
	c271, 6, 90, 120, 2.9, 3.2, 1400, 1600, 90, 105, 1.1, 1.2, singleprop
## type, category, minspeed, maxspeed, minturnrate, maxturnrate, mindescendrate, maxdescendrate, minfinalapproachspeed, maxfinalapproachspeed, minaccelrate, maxaccelrate, <manufacturer>
# custom [planetypes] are only needed when using unknown custom types in the airlinelists above (game will show warnings on startup for missing types), or to override default type properties
# category is the weight category: 1 to 6, meaning superheavy=1, upperheavy, lowerheavy, uppermedium, lowermedium, light=6
# speeds in knots
# turnrate is in degrees per second
# descendrate is in feet per minute
# approachspeeds in knots, may be below minspeed
# accelrate is in knots per second
# manufacturer name is optional, and only used for private callsign pronunciation in usa mode
# example of default values for b737, 4, 160, 250, 2.6, 3.0, 1440, 1560, 131, 144, 1.2, 1.3


##############################################################
[scenario]
##############################################################
finish = 2		; amount of planes to land to finish the scenario

events = 
	0,	config,	1
	0,	score,	6
	0,	wind,	180,	10
	0,	cloud,	-1,	25
	0,	cloud,	-2,	24
	0,	cloud,	-4,	24
	0,	dep,	rwy1,	north,	f200
	0,	elapse, 20
	0,	arr,	230,	vor,	f200
	0,	elapse, 100
	5,	arr,	90,	bco,	f200
	40,	dep,	rwy1,	north,	f200
	70,	dep,	rwy1,	south,	a333
	20,	score,	8
	90,	dep,	rwy1,	north
	0,	wind,	200,	8
	0,	cloud,	19,	-26.5
	50,	dep,	rwy1,	west,	f200
	1,	text,	Hello!
	5,	arr,	210,	vor,	a333,	15000,	6000,	300,	0,	0,	1,	air
	10,	arr,	090,	0,	0,	0,	0,	0,	0,	0,	0,	0,	sc
	10,	dep,	rwy2,	north
## elapsed time after previous event in seconds, eventtype, properties
# available eventtypes: arr, dep, score, elapse, wind, cloud, config, text
## arr: entrypoint, <beacon>, <planetype>, <altitude>, <targetaltitude>, <speed>, <delaytimer>, <fuel>, <emergency>, <callsign>, <destination>	; arrival (fuel counts up; lowfuel from 5000+, emergency=1 for medical, 2 for engine, destination is the two letter code of a secondary airport)
## dep: runwayidentifier, sid, <planetype>, <emergency>, <callsign>								; departure
## score: score			; set higher score/skill to open more runways, or lower to close runways
## elapse: seconds		; elapse simulation time between events (only use this to build traffic before the start, so at time 0)
## wind: heading, speed		; set wind (preferably in small steps when changing the wind)
## cloud: position		; add cloud with radius of 1 NM (preferably just outside the airspace boundary, to avoid incidents, unless time is 0)
## config: entry		; change to different runway config, as specified in the rwy configurations section
## text: message		; display yellow text at the top of screen
# the [scenario] can be enabled in the traffic menu