The Airline Project

The Airline Project Logo Let your dreams fly Home Features Tutorials and Tips Devblog Forum FAQ About Us

Trainee

Intermediate

Advanced

Modding the Game

How to Create a New Airline or Mod an Existing One

For modding airline files I recommend using Notepad++, but any program that can read and edit text files (.xml) will do.

Airline files belong in TAPv2/data/airlines. Save the file here as an .xml file. This will make sure you have the correct markup ready, which makes your work easier. The name of the file should be the name of the airline. If the airline changes names at some point in its history, be sure to check whether the other names exist already. The airline you want to implement might already exist there, and the name change is probably implemented in the file.

At the bottom of this page, you can find a full template. Not all parameters have to be in your file, but it shows you what parameter comes where.

Note: soon we will start to implement a new AI. This means some things in the airline files will change. We will update all info for the existing airlines ourselves (including all airlines you submit before the AI update). You can still update your airline afterwards.

Getting Started

After doing that, paste this piece of code in the file:

This is the bare minimum of information you need to provide to the game.

name="": Here you put the name of the airline as it is/was.
iata="": This is the two letter code of the airline.
logo="": Here you put the name of the file of the airline's logo. Preferably it is the iata code of the airline. If that name is already in use, add the next available digit to the end of the filename. The logo itself needs to be placed in data/graphics/airlinelogos.
color="": Here you put the name of the color you assosiate with the airline. Pick any color out of this list: C# color codes.
area="": Here you put the area ID of the airline. You can find the area IDs here or in the database (data/data.sqlite).
CEO="": If the name of the CEO is known, put it here. If unknown you can just put Unknown there or if you're creative, you can come up with a name yourself.
mentality="": Here you put how tough the airline will be to compete with. The possible values are: Safe/Moderate/Aggressive. Make sure the first letter is a capital!
market="": Here you put what kind of flights the airline will operate. The possible values are: Local/Domestic/Regional/Global. Make sure the first letter is a capital! Local means the airline will only fly very short flights with small airliners. Domestic means it will only fly within the country's borders. Regional means it will fly short haul flights, this time it can cross borders. Global means it will fly about anywhere in the world.
preferedairport="": Here you put the iata code of its main base airport. The AI will mainly fly of this airport. If you select the airline as your airline upon game creation, it will suggest this as your home airport.

narrative="": Here you summarize the history of the airline. Most narratives about airlines in our game are based on the introduction on Wikipedia.

info real from to: In 'real' you put whether the airline really existed or if it's a fantasy airline. You put in 'True' or 'False'. In the from/to value you put the years between which the airline existed. format: 'yyyy'.

Changing Values

Some values we listed above change over time due to various reasons like airports closing.

These lines belong between narrative and the end of profile and only need to be included if something changes over time. These values will overwrite the values inside the profile tag.

logos: in 'from' you put the first year the logo is introduced. In 'to' you put the last full year the logo is used. In 'path' you put the file name of the logo that is used during that time. The logos you refer to in this tag need to be put in data/graphics/airlinelogos/multilogos.
names: in value you set the name the airline had at the time. In date you put the date when the new name became effective. The date format is as follows: 'dd.mm.yyyy 00:00:00'.
airports: in preferedairport you set the iata code of the airport at the time. In you set the date when it became effective. The format is the same: 'dd.mm.yyyy 00:00:00'.

Extra Information

If you want to, you can provide your airline file with some extra information. The game will not 100% obbey this data, but it will take it into account.

These lines come right after info and before /airline. These lines are not obligatory.

aircrafts: here you put the airliner name exactly as you find it in the data.sqlite file. If you want multiple airliners in this tag, put a comma (',') between them. (no spaces between airliners!) Example: aircraft="Airbus A319-100,Airbus A320neo,Boeing 777-8X"
airport: here you put all secondary hubs and focus airports of the airline.

You can also expand the information about the airliner in profile:

onlyfromhome: Set to true if the airline only flies from one airport. Set to false if the airline flies from many different airports (eg. Ryanair). If the airline flies from a couple of airports leave this tag out.
routefocus: If the airline only transports passengers, leave this tag out. If the airline transports cargo, set to 'Cargo'. If the airline transports both passengers and cargo, set to 'Mixed'. If the airline Uses helicopters, set to 'Helicopter'. If the airline uses both helicopters and planes, set to 'Mixed_Passenger'. If the airline uses a combination of any of these, set to 'All'.
schedule: If the airline only flies charter flights, set to 'Charter'. If the airline flies business charters, set to 'Business'. If the airline flies ordinary schedules, leave this tag out.
businessmodel: If the airline is a low cost airline (like Ryanair, EasyJet or Spirit) set to 'LCC'. Else, leave this tag out.

Historical Start Data

You can give the airline some start data. When the game launches, it will check here what routes and airliners the airline should be flying at the start. Please don't put too much data here. A lot of routes for each airline will slow down the game a lot.

type: Here you put the exact airliner name you find in data.sqlite.
early/late: Here you put the amount of airliners of the type the airline has at the given time. Early means short after the launch of the aircraft type. Late means how many airliners of this type the airline has in 2010. Note that these values are only taken into account at game creation. While the game is running, the airline will buy whathever aircraft best fits its strategy.

destinationx: substitute the x with the destination number (up to 9). destination number 1 and 2 are obligatory. You can give the route more destinations by adding 3, 4, ... As of now, the game can only read routes with up to three destinations. In the tag you put the iata code of the airports.
opened/closed: here you put the years between which the route operated. This value is not obligatory.
airliner: here you put which airliner operates the route, using its exact name from the data.sqlite. This value is not obligatory.
routetype: here you put what you transport on the route. If you transport passengers, leave the tag out. If you transport cargo, put 'Cargo'. If you transport both, put 'Passenger,Cargo'
type: Here you put the type of the route. If you put schedule="charter" in profile, every route defaults to Charter. If you leave out the schedule tag, everything defaults to regular. If you want to change a particular route, put in 'Regular' or 'Charter' respectively to change the value.
season: Here you put at what season the flight should be executed. If you leave out this tag, the flight will be year round.

Random Routes

You can give an airline a hub/focus airport from which it should try to maintain a minimum amount of routes.

origin: Here you set what airport the routes should be maintained from. Use the iata code of the airport.
destinations: Here you set the amount of routes the airline should maintain.
minimumsize: Here you set the minimum size the airports should be at the other end of the route. Possible values: Smallest/Very_small/Small/Medium/Large/Very_large/Largest.
country value: Here you set in what countries the other airports should be located. You can check the country IDs in the data.sqlite.

If you want to provide multiple airports with these random routes setting, you open a new routes tag as shown in the example.

Full Template

Here you have a full template which you can use to work in, or you can use it as an example for the order of the tags.