TFDi Design Icon
TFDi Design

Adding Aircraft

Editing folder: Documents\PACX\Airplanes

Each aircraft PACX uses has its own .xml file in the Airplanes folder. The aircraft tag (<Aircraft>) has a name value, which represents the name of the aircraft. Each aircraft will also need a cabin. Each cabin needs a door, a crew seat and a passenger seat in order to be classed as a valid aircraft.

The location of custom aircraft cabins has changed in PACX version 1.2. They were previously stored in the PACX installation directory but are now stored in a folder in Documents\PACX for ease of editing.

Each aircraft will have the same .xml format initially.

<Aircraft Name="XXXXXXX">
  <Cabin>
    <Floor>

    </Floor>
  </Cabin>
</Aircraft>

Note: PACX cabins support multiple floors, so if your aircraft has more than one floor, you would add another <Floor> tag.

Inside each floor tag, you can add rows to the aircraft. This is done by adding a <Row> tag inside the desired floor. Within each row, you would then add the contents for that row. The grid system functions top to bottom, left to right. For example, our aircraft will have a door on the left side, so we will need to have a crew seat, 3 empty cells, then a door cell. Do not add a door for each door of the aircraft. Emergency doors would be used for boarding, which is not realistic.

<Aircraft Name="XXXXXXX">
  <Cabin>
    <Floor>
      <Row>
        <Cell Type="CrewSeat"/>
        <Cell Type="Empty" Count="3"/>
        <Cell Type="Door"/>
      </Row>
    </Floor>
  </Cabin>
</Aircraft>

Note: Rows and cells support a count parameter, which is optional and reduces the amount of xml needed to create a cabin.

After creating the first row, we will create the first class section of the aircraft. We will add a new row tag with a count of 4, to create 4 rows of first class seats. Each row of this first class section will have 1 seat on each side of aisle.

<Aircraft Name="XXXXXXX">
  <Cabin>
    <Floor>
      <Row>
        <Cell Type="CrewSeat"/>
        <Cell Type="Empty" Count="3"/>
        <Cell Type="Door"/>
      </Row>
      <Row Count="4">
        <Cell Type="Seat"/>
        <Cell Type="Empty" Count="2"/>
        <Cell Type="Seat"/>
      </Row>
    </Floor>
  </Cabin>
</Aircraft>

Note: Please make sure that your cell width (in this case, our cell width is 5) is as close to aligned as possible. This will prevent some issues where cells are unreachable.

We have now created the first class section of our aircraft, we will add a wall separator so first and economy class are separated.

<Aircraft Name="XXXXXXX">
  <Cabin>
    <Floor>
      <Row>
        <Cell Type="CrewSeat"/>
        <Cell Type="Empty" Count="3"/>
        <Cell Type="Door"/>
      </Row>
      <Row Count="4">
        <Cell Type="Seat"/>
        <Cell Type="Empty" Count="2"/>
        <Cell Type="Seat"/>
      </Row>
      <Row>
        <Cell Type="Wall" Count="2"/>
        <Cell Type="Empty"/>
        <Cell Type="Wall" Count="2"/>
      </Row>
    </Floor>
  </Cabin>
</Aircraft>

Now that we have created a separator between first and economy class, we will add the economy class, which will be 23 rows of economy class.

<Aircraft Name="XXXXXXX">
  <Cabin>
    <Floor>
      <Row>
        <Cell Type="CrewSeat"/>
        <Cell Type="Empty" Count="3"/>
        <Cell Type="Door"/>
      </Row>
      <Row Count="4">
        <Cell Type="Seat"/>
        <Cell Type="Empty" Count="2"/>
        <Cell Type="Seat"/>
      </Row>
      <Row>
        <Cell Type="Wall" Count="2"/>
        <Cell Type="Empty"/>
        <Cell Type="Wall" Count="2"/>
      </Row>
      <Row Count="23">
        <Cell Type="Seat" Count="2"/>
        <Cell Type="Empty"/>
        <Cell Type="Seat" Count="2"/>
      </Row>
    </Floor>
  </Cabin>
</Aircraft>

To complete our aircraft, we will add a bathroom row, another crew seat and door and 3 galleys at the back of the aircraft.

<Aircraft Name="XXXXXXX">
  <Cabin>
    <Floor>
      <Row>
        <Cell Type="CrewSeat"/>
        <Cell Type="Empty" Count="3"/>
        <Cell Type="Door"/>
      </Row>
      <Row Count="4">
        <Cell Type="Seat"/>
        <Cell Type="Empty" Count="2"/>
        <Cell Type="Seat"/>
      </Row>
      <Row>
        <Cell Type="Wall" Count="2"/>
        <Cell Type="Empty"/>
        <Cell Type="Wall" Count="2"/>
      </Row>
      <Row Count="23">
        <Cell Type="Seat" Count="2"/>
        <Cell Type="Empty"/>
        <Cell Type="Seat" Count="2"/>
      </Row>
      <Row>
        <Cell Type="Bathroom"/>
        <Cell Type="Empty" Count="4"/>
      </Row>
      <Row>
        <Cell Type="CrewSeat"/>
        <Cell Type="Empty" Count="3"/>
        <Cell Type="Door"/>
      </Row>
      <Row>
        <Cell Type="Galley" Count="3"/>
      </Row>
    </Floor>
  </Cabin>
</Aircraft>

We have created our aircraft, all that's left is giving it a name and ensuring the .xml file is called the same!

If your aircraft does not load, look at your %localappdata%\PACX\log.txt file for the error.

You can also restrict an aircraft to certain career ranks by including a "RankClass" attribute on the opening <Aircraft> tag. For example:

<Aircraft Name="XXXXXXX" RankClass="C">
  <Cabin>
    <Floor>
    </Floor>
  </Cabin>
</Aircraft>