﻿# ================================================================= #
#             AIRIO TRACKS AND CARS CONFIGURATION FILE              #
# ================================================================= #


# This file defines global/track/car parameters like track and car 
# codes, customizations, speedtraps, good or great times, restricted 
# zones, prohibited tyres and such. More info about possible values 
# is at the end of this file.


# ======================= Cars and Tracks ========================= #

# The settings below summarize LFS tracks and cars. It is important
# they are correct in every respect, otherwise Airio may not recognize
# valid track or car codes resulting in unpredictable behavior. Do not
# change unless new tracks or cars are added into LFS.

# -------------------- Standard Tracks and Cars ------------------- #

# Supported track and car abbeviations, new items in future LFS 
# versions can be added/adjusted here. Enter short names of all cars.
CarsList=UF1 XFG XRG XRT RB4 FXO LX4 LX6 RAC FZ5 MRT XFR UFR FOX FO8 FXR XRR FZR BF1 FBM VWS

# Enter short names of all tracks (without R versions), separated by
# space and corresponding track names separated by comma (,).
TrksList=BL1 BL2 BL3 SO1 SO2 SO3 SO4 SO5 SO6 FE1 FE2 FE3 FE4 FE5 FE6 AU1 AU2 AU3 AU4 KY1 KY2 KY3 WE1 AS1 AS2 AS3 AS4 AS5 AS6 AS7
TrksName=GP Track, Rallycross, Car Park, Classic, Sprint 1, Sprint 2, Long, Town Course, Chicane Route, Club, Green, Gold, Black, Rallycross, RallyX Green, Autocross, Skid Pad, Drag Strip, 8 Lane Drag, Oval, National, GP Long, International, Cadet, Club, National, Historic, Grand Prix, Grand Touring, North

# PROS: Special supported custom tracks on open layouts with assigned
# names. These definitions must be below/after TrksList and TrksName.
CustTraks=A11 A12 A13 A14 A21 A22 A23 A31 A32 A33 A71 B11 B21 K21 K31 K32 K33 F11 F21 F22 F23 F24 F25 F31 F32 F33 F51 F52
CustNames=Central, Chicane Route, Banana Route, South, Sprint 2, Cup, Classic Boot, Sprint 1, Classic, Modified, Grand North, Historic, Sprint Alternative, North, International, Grand Touring, International GT Long, Cadet, Silver, Silver Alternative, Green Alternative, Mini Oval, Classic, Island, National, National Island, RallyCross Long, RallyCross Alternative

# Short names (two letters) of all sites separated by space and 
# corresponding site names separated by comma (,).
SiteList=BL SO FE AU KY WE AS RO
SiteName=Blackwood, South City, Fern Bay, Autocross, Kyoto Ring, Westhill, Aston, Rockingham

# These tracks don't support reverse configuration.
NoReverse=BL3 AU1 AU2 AU3 AU4

# On these tracks there is no pitlane for SG and DT penalties.
NoPitlane=BL3 SO2 SO3 FE6 AU1 AU2 AU3 AU4 A13 A14 B21 K21 F24

# These are drag tracks for special care.
DragLines=AU3 AU4

# Cars without numberplate for text checking.
NoNumber=FBM FOX FO8 BF1

# ----------------------- Car Customizations ---------------------- #

# Below you may create custom groups of cars for calculating points,
# car categories to be used in some listings and customized cars.
# Defined custom cars or car categories may be used in later items.

# Custom cars derived from standard cars using intake restriction
# and/or added mass. These cars will be processed by Airio as if they
# were real LFS cars, meaning they will have their own stats stored.
# Definition: CUST|STAND,INTK,MASS CUST|STAND,INTK,MASS ...
CustomCars=FZ3|FZR,28,0 FZ2|FZR,20,0 XR3|XRR,34,0 XR2|XRR,24,0 FX3|FXR,32,0 FX2|FXR,23,0 XFX|XFG,20,0 XRX|XRG,20,0 FBX|FBM,20,0 UFB|UFR,45,0 XFB|XFR,43,0 UFJ|UFR,23,0 XFJ|XFR,21,0 FJR|FO8,20,70

# Car categories, where one abbreviation comprises several car types.
# You can create new entries using Category|Type+Type+... notation.
# Entries are separated by space and can be used in !sb, !tb and !nr 
# commands.
CarCategories=STD|UF1+XFG+XRG GTI|XFG+XRG TBO|RB4+FXO+XRT LRF|LX6+RAC+FZ5 GTL|UFR+XFR GTR|FXR+XRR+FZR GT2|FX2+XR2+FZ2 GT3|FX3+XR3+FZ3 GTX|XFX+XRX GTJ|UFJ+XFJ GTB|UFB+XFB

# Groups of equal cars for points calculation. Separate groups by 
# space and join cars in group by a plus.
CarGroups=STD TBO GTX GTB GTJ GTL LRF GT2 GT3 GTR

# General car speed, lowest to highest, for custom grid sorting.
CarSpeeds=GTX < STD < TBO < LX4+MRT < LRF < GTL < FBM < GT3 < GT2 < FOX < GTR < FO8 < BF1


# ======================== Car/Track Data ========================= #

# These config data are placed hierarchically: First are values valid 
# for all tracks and cars, then follow values valid for all cars on 
# specific track and then values for specific track/car combinations. 
# Values specified later overwrite earlier values. Identation is not
# required.

# -------------------- Ranks, Licences, Ratings ------------------- #

# These are items allowing to define rank, licence, resp. rating
# texts and assign appropriate point, lap time, resp. rating ranges.

# FULL: Licence descriptions, valid here for all tracks and cars
LicenceTimesText=

# FULL: Relative percentages * 100 over WR for licences (2.5% = 250)
LicenceTimesRel=

# FULL: Comma-separated list of achievable point ranks
RankPointsText=

# FULL: Comma-separated list of points for each rank
RankPointsValue=

# FULL: Comma-separated list of achievable safety ratings
SafetyRatesText=

# FULL: Comma-separated list of safety percentage * 100 for ratings
SafetyRatesValue=

# ------------------------ Global Options ------------------------- #

# Default car on all tracks
DefaultCar=XFG

# Speed measuring in splits of all tracks/cars
SpeedtrapNode=

# No speed limit on all tracks/cars
AllowedSpeed=-1

# Default acceptable sector/split times
AllowedSectrTime=9800
AllowedSplitTime=9900

# No spin limit on all tracks/cars
MaximumSpin=-1

# General good/great time reporting
GoodTimesRel=200,100,50

# Disallowed passengers on all tracks/cars (rear)
NoPassengers=Left+Right

# Prohibited tyres on all tracks/cars
ProhibitedTyres=Knobbly

# Make proper racing path a bit wider
OffPath=2

# No pitlane etry/exit nodes defined
PitEntryNode=-1
PitExitNode=-1

# Default race length for total race time stats
RaceLaps=4

# FULL: Continuous laps for average lap time calculations
AverageLaps=3

# PROS: Dynamic intake restriction based on race results
# PROS: Dynamic added mass based on race results
DynamicIntake=
DynamicMass=0, 50, 0, 3 > 2 > 1 > 0 > 0 > -1 > -2 > -3

# PROS: Safety intake restriction based on current rating
# PROS: Safety added mass based on current rating
SafetyIntake=
SafetyMass=0>50, 5000>40, 5500>30, 6000>20, 6500>10, 7000>0

# -------------------------- BL1 Options -------------------------- #

# Following values apply only to this track
Track=BL1

	# Different default car for this track
	DefaultCar=FBM

	# Still wider proper path
	OffPath=3

	# Node where pit lines start on BL1
	PitEntryNode=260

	# Node where pit lines end on BL1
	PitExitNode=24

	# Restricted zones valid for all cars on this track
	RestrictedZones=407,-690,7 + 44,575,8

	# Limited zones valid for all cars on this track
	LimitedZones=142,484,7,DT

	# Maximum allowed rotation in degrees per second
	MaximumSpin=360

	# Values for this track/car overwriting global/track ones
	# Following values apply only to this track and car
	Car=FBM

		# Specific maximum speed & accel for FBM @ BL1
		AllowedSpeed=230
		# AllowedAccel=80, 50

		# FULL: Maximum speed in nodes for FBM @ BL1
		MaxSpeedNodes=0,0|15-24 + 0,0|148-158 + 0,0|236-243

		# FULL: Maximum speed in polygons for FBM @ BL1
		# MaxSpeedPolygons=0|43,555|52,593|48,611|28,598|18,554 + 0|430,-700|401,-705|404,-765|425,-770|434,-739

		# Specific good/great times for FBM @ BL1
		GoodTimesAbs=7400,7350,7300

		# FULL: Server recorded lap time licence levels.
		# LicenceTimesAbs=

	Car=XFG
		AllowedSpeed=200
		# AllowedAccel=60, 40
		MaxSpeedNodes=0,0|14-24 + 0,0|146-158 + 0,0|235-243
	Car=XRG
		AllowedSpeed=200
		# AllowedAccel=60, 40
		MaxSpeedNodes=0,0|14-24 + 0,0|146-158 + 0,0|235-243


# -------------------------- BL2 Options -------------------------- #

Track=BL2
	RestrictedZones=-20,-160,20
	ProhibitedTyres=Normal+Super
	MaximumSpin=360
	OffPath=6

	Car=XFG
		AllowedSpeed=165
		# AllowedAccel=60, 40
		GoodTimesAbs=6900,6875,6850
		MaxSpeedNodes=0,0|398-412
	Car=XRG
		AllowedSpeed=170
		# AllowedAccel=60, 40
		GoodTimesAbs=7000,6950,6900
		MaxSpeedNodes=0,0|398-412

# ---------------------- Other Track Options ---------------------- #

Track=BL1R
	# Ignore yellow flags caused in specific BL1R areas.
	NoYellowNodes=72-92 + 160-170

Track=BL2R
	ProhibitedTyres=Normal+Super

Track=FE5
	ProhibitedTyres=Normal+Super

Track=FE5R
	ProhibitedTyres=Normal+Super

Track=FE6
	ProhibitedTyres=Normal+Super

Track=FE6R
	ProhibitedTyres=Normal+Super

# ----------------------- Other Car Options ----------------------- #

Track=KY1

	# Empty car means the values apply to all cars on this track
	Car=
		MaximumSpin=360
		AllowedSectrTime=9600
		AllowedSplitTime=9600

Track=KY1R
	Car=
		MaximumSpin=360
		AllowedSectrTime=9600
		AllowedSplitTime=9600

# Empty track means the following values are valid for all tracks
Track=

	# Values for this type of car on all tracks
	Car=FZR

		# Defines required intake air restriction
		IntakeRestriction=0

		# Defines required added mass
		AddedMass=0

		# Defines percents to add to default required time
		TimeAdjustment=0

	# Here are time adjustments for GT2 custom cars
	Car=FX2
		TimeAdjustment=475
	Car=XR2
		TimeAdjustment=475
	Car=FZ2
		TimeAdjustment=475

# ------------------ Values Supported / Explained ----------------- #

# This example configuration file includes and uses all supported
# key/value pairs:
#
# Track - expects track code, following values apply only to this track.
#                   If the value is empty, new settings are applied to
#                   all tracks, otherwise only to the last set track.
# Car - expects car code, following values apply only to this car. If
#                   the value is empty, new settings are applied to all
#                   cars, otherwise only to the last set car type.
# DefaultCar - expects valid car code, sets global or track default car
#                   Default car is assigned to newly connected people,
#                   until they join race and real car type is used.
#
# SpeedtrapNode - expects integer value, sets node where maximum speed 
#                   is measured, below 0 means global measuring. More
#                   speedtraps may be defined using concatenating '+'.
#                   Empty value means speed measuring at track splits.
# AllowedSpeed - expects integer value, sets maximum allowed speed in kmph,
#                   any higher means spec, 0 and below means no speed limit.
# AllowedAccel - expects two integer values separated by comma, first sets 
#                   minimum kmph to start acceleration measuring, second
#                   sets maximum allowed acceleration in kmph in 3 seconds.
# AllowedSectrTime - maximum (percentage * 100, integer) allowed sector 
#                   time comparing to WR, any better sector time may end
#                   in security kick (possible speed hack); 10000 = WR.
# AllowedSplitTime - same as above, only concerning splits and not sectors.
# MaximumSpin - integer value setting in degrees per second allowed car
#                   rotation rate, below 0 means no spin limit.
# ProhibitedTyres - supported values: R1, R2, R3, R4, Normal, Super,
#                   Hybrid, Knobbly, None, can be combined using '+',
#                   sets tyres that are prohibited on certain tracks/cars.
# NoPassengers - supported values: Front, Left, Right, Middle, can be 
#                   combined using '+', sets prohibited passengers.

# RestrictedZones - expects three integers separated by ',' specifying
#                   X, Y (center) and D (distance) of a prohibited zone,
#                   more zones can be created using '+'.
# LimitedZones - same as RestrictedZones, but car inside the zone is not 
#                   spectated, only warned and lap time invalidated.
#                   Optional 4th parameter is penalty: 30, 45, dt, sg.
# MaxSpeedNodes - defines maximum allowed speed and nodes where it applies.
#                   The input format is S1,S2|N1-N2 [+ S1,S2|N1,N2...]
#                   where S1 is max speed in lap 1 (for the 1st turn in
#                   race), S2 is max speed in subsequent laps, N1 and N2 
#                   are the nodes where measuring takes place. Zero used
#                   as speed will cause only debug messages to be stored
#                   in Airio log, to see what speeds should be allowed.
# MaxSpeedPolygons - defines allowed speed and polygons where it applies.
#                   The format is S1,S2|X1,Y1|X2,Y2|X3,Y3[|...][ + ...]
#                   where S1 and S2 are speeds in first and subsequent
#                   laps and X, Y are coordinates of the polygon vertices.
#                   At least 3 vertices must be defined forming the 
#                   simplest polygon, triangle. See above about 0 speed.

# GoodTimesRel - expects three integers separated by ',' specifying 100 *
#                   percentage over WR to be seen as good/great/top time.
#                   Entering 200,100,50 means that split times within
#                   2 percent of WR are reported as good etc...
# GoodTimesAbs - same as above, only good/great/top lap time is set in
#                   hundreds of secs, 7425 representing 1:14.25. Can be
#                   used only in specific track/car combinations.
#
# IntakeRestriction - one integer (0 to 50) defines required intake air
#                   restriction. May be specific to track, car, or both.
# AddedMass - one integer (0 to 200) defines required added mass. May be 
#                   specific to track, car, or both. Zero means no limit.
# TimeAdjustment - an integer expressing in percents * 100 increase or 
#                   decrease of the lap time required to enter server stats.
#                   This may be necessary if high handicaps are used.

# LicenceTimesText - any number of coma-separated string values describing
#                   ascending licence levels, may be general or specific.
# LicenceTimesAbs - the same number of coma-separated values as in previous
#                   item specifying in centiseconds in ascending order 
#                   licence levels, always must be track and car specific.
# LicenceTimesRel - just as above but with percentage * 100 over WR values.
# LicenceRanksText - coma-separated ascending rank descriptions.
# LicenceRanksPoints - coma-separated points required for defined ranks.
# LicenceRanksText - coma-separated ascending safety rating descriptions.
# LicenceRanksLevels - coma-separated percentage * 100 for ratings.

# DynamicIntake - four coma-separated values: base value, maximum move up,
#                   maximum move down, change for 1st > 2nd > ... place.
# DynamicMass - same as DynamicIntake, only restrictive weight is used.
# RaceLaps - minimal number of laps for race time statistics as shown by
#                   !race (champ) or !races (total) commands.
# AverageLaps - number of laps for average lap time calculations as shown
#                   by !avg (champ) or !avgs (total) commands.
# SafetyIntake - coma-separated values of rating * 100 > penalty
#                   restriction, must go from low ratings to higher ones.
# SafetyMass - same as SafetyIntake, only penalty weight is used.
# NoYellowNodes - string of startnode-endnode + startnode-endnode + ...
#                   specifying track areas where yellow flags caused are
#                   ignored; necessary to overcome certain LFS bugs.

# OffPath - make track path wider by this many meters in both directions,
#                   used in proper path checks to allow some cutting.
# PitEntryNode - last node of racing path before entering pitlane, used
#                   together with CheckPitEnter filter in SRV file.
# PitExitNode - last node of pitlane before entering racing path, used
#                   together with CheckPitExit filter in SRV file.

# Take care when entering the values because incorrect data may cause
# program error at startup or reload.

# Keys and values are read top to bottom, indentation is ignored. When
# Track key is empty (such as at the top), values below are valid for all
# tracks. The same principle applies to Car key. When Track and/or Car
# is specified, values apply only to currently set categories.
