Jump to content

Adding aircraft, flight comments and names to PACX


Recommended Posts

Adding Data to PACX

Adding Data to PACX is simple, and takes little time. This guide will outline how to add aircraft (along with their respective seating plan), adding new airports, adding new flight comments to your flights and adding new names that passengers can use when you start a new flight. Each of these parameters are edited via their respective .xml files, which are found in the Assets folder in the PACX installation directory (usually C:\Program Files (x86)\TFDi Design\PACX).

 

Adding New Aircraft

Editing folder: Assets\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.

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.

 

Adding New Airports

Editing file: Assets\Airports.xml

In this file, you will find every airport that PACX recognises as an airport. Each airport has 9 values that need to be entered to be recognised as a valid airport. Ensure that each Airport is inside the Airports tag (before the </Airports> tag). These nine values are:

  • Ident - This is the identifier of the airport, usually a 4 letter combination which is unique to the specific airport
  • Name - This is the name of the airport
  • Latitude and longitude - These are the co-ordinates of the airport. You can usually find these co-ordinates via a mapping tool online
  • Elevation - This is the field elevation of the airport from the mean sea level in feet.
  • Continent - This is the continent of the airport. There are six continent codes, which are: NA (North America), SA (South America), EU (Europe), AF (Africa), AS (Asia), OC (Oceanic)
  • Country - This is the country code. This is the 2 letter country code. Most two letter country codes can be found on this website: https://www.iban.com/country-codes
  • Region - This is an optional field, usually used with United States Airports to separate each state.
  • Municipality - This is an optional field, this is the city the airport is located in.

Note: Optional values should still be added, but kept with empty xml data

A valid airport will look similar to the following:

<Airport Ident="EGLL" Name="London Heathrow Airport" Latitude="51.4706" Longitude="-0.461941" Elevation="83" Continent="EU" Country="GB" Region="GB-ENG" Municipality="London" />

 

Editing Flight Comments

Editing file: Assets\FlightComments.xml

In this file, you will see all the comments that passengers are able to use in the flight report. Flight comments are designated under different types. Ensure that each FlightComment is inside the FlightComments tag (before the </FlightComments> tag). The type of flight comments are:

  • HungryNoService - Passenger was hungry and there was no in-flight service
  • ThirstyNoService - Passenger was thirsty and there was no in-flight service
  • Hungry - Passenger is hungry after the in-flight service was completed
  • Thirsty - Passenger is thirsty after the in-flight service was completed
  • NoEntertainment - There was no In-Flight Entertainment on this flight
  • EntertainmentIFE - There was In-Flight Entertainment on this flight
  • EntertainmentWiFi - There was WiFi on this flight
  • BeatDelay - A delay was announced, but the plane still arrived on time
  • UnannouncedDepartureDelay - There was a delay in departure that the pilot failed to announce to passengers
  • UnaccouncedArrivalDelay - There was a delay in arrival that the pilot failed to announce to passengers
  • DepartureDelay - There was a delay in departure, which the pilot informed passengers about
  • ArrivalDelay - There was a delay in arrival, which the pilot informed passengers about
  • PassengerBoardingIncidentMalePassive/PassengerBoardingIncidentFemalePassive - There was an incident related to a male or female passenger during boarding
  • MedicalIncidentMalePassive/MedicalIncidentFemalePassive - There was a medical incident relating to a male or female passenger during the flight
  • ExtremeFlyingSevere - No longer used
  • ExtremeFlying - No longer used
  • TurbulenceSevere - There was a lot of turbulence during this flight
  • Turbulence - There was a bit of turbulence during this flight
  • GreatFlightBusiness - The flight was considered great by this business passenger
  • GreatFlightLeisure - The flight was considered great by this leisure passenger
  • EngineFailure - This comment occurs when an engine has failed.
  • EngineFire - This comment occurs when an engine has been on fire.
  • GeneralCriticalIssue - This comment occurs when a flight has had a critical mechanical issue that is not classified as an engine fire or failure
  • DiversionUnspecified - The flight was diverted to a different arrival airport, due to an unspecified reason
  • DiversionWeather - The flight was diverted to a different arrival airport, due to weather
  • DiversionTraffic - The flight was diverted to a different arrival airport, due to traffic
  • DiversionUnannounced - The flight was diverted to a different arrival airport, however, the pilot failed to announce this diversion to the passengers
  • DiversionPassengerIssue - The flight was diverted to a different arrival airport, due to an unruly passenger
  • DiversionAircraftProblem - The flight was diverted to a different arrival airport, due to an issue with the aircraft
  • DiversionFuel - The flight was diverted to a different arrival airport, due to missing fuel
  • HardLanding - The landing was considered hard by the passengers
  • SoftLanding - The landing was considered soft by the passengers
  • VeryLongFlight - The flight was considered very long by the passengers (usually during a cross-continent long haul)
  • LongFlight - The flight was considered long by the passengers (usually during a in-continent flight)
  • ShortFlight - The flight was considered short by the passengers (usually a regional flight)
  • Drunk - This passenger is drunk
  • IdleHungry - The passenger is performing an activity, and is hungry
  • IdleThirsty - The passenger is performing an activity, and is thirsty
  • IdleFed - The passenger is performing an activity, and has been recently fed
  • IdleTired - The passenger is performing an activity, and is tired
  • IdleNotTired - The passenger is performing an activity, and is not tired
  • IdleLateInDayLanding - The passenger is performing an activity, and the landing was performed late in the day, close to sunset hours
  • IdleEarlyInDayLanding - The passenger is performing an activity, and the landing was performed early in the day, close to sunrise hours
  • IdleLandingBusiness - The passenger is performing an activity, and the passenger is a business passenger
  • IdleLandingLeisure - The passenger is performing an activity, and the passenger is a leisure passenger
  • IdleFlightEntertained - The passenger is performing an activity, and the passenger was entertained by the In-Flight Entertainment Options available
  • IdleFlightBored - The passenger is performing an activity, and the passenger was bored by the lack of In-Flight Entertainment.
  • ReturnToGateUnspecified - The plane returned to the gate after the pushback phase, due to an unspecified reason
  • ReturnToGateWeather - The plane returned to the gate after the pushback phase, due to weather
  • ReturnToGateTraffic - The plane returned to the gate after the pushback phase, due to traffic
  • ReturnToGateUnannounced - The plane returned to the gate after the pushback phase, but the pilot failed to announce this to the passengers
  • ReturnToGatePassengerIssue - The plane returned to the gate after the pushback phase, due to a passenger issue
  • ReturnToGateAircraftProblem - The plane returned to the gate after the pushback phase, due to an issue with the aircraft
  • AheadOfSchedule - The flight was ahead of schedule
  • ServiceSuspension - The in-flight service was suspended mid service
  • UnsafeHandlingTakeoff - The takeoff was not performed safely, likely due to the seatbelt signs not being turned on
  • UnsafeHnadlingLanding - The landing was not performed safely, likely due to the seatbelt signs not being turned on
  • ExpensiveTicket - This comment is generated when the ticket price for the airline is set as "Expensive"
  • AffordableTicket - This comment is generated when the ticket price for the airline is set as "Cheap"
  • EconomyAboveExpectation - The airline is an economy airline and quality of the flight was above expectations
  • EconomyBelowExpectation - The airline is an economy airline and quality of the flight was below expectations
  • BalancedAboveExpectation - The airline is an balanced airline and quality of the flight was above expectations
  • BalancedBelowExpectation - The airline is an balanced airline and quality of the flight was below expectations
  • BusinessAboveExpectation - The airline is an business airline and quality of the flight was above expectations
  • BusinessBelowExpectation - The airline is an business airline and quality of the flight was below expectations
  • PointOfInterest - This comment is generated when the pilot makes a "Point of Interest" public address
  • PublicAdressHumorous - This comment is generated when the pilot makes a "Humorous" public address

Variables can also be used in the comment. The only current variable is {CAREER}, which will be replaced in the comment as the career airline name. If no career is selected on this flight, it will be replaced with "this airline" instead.

 A valid flight comment will look similar to the following:

<FlightComment type="EconomyBelowExpectation">Somehow, {CAREER} managed to disappointed me.</FlightComment>

 

Adding New First Names

Editing file: Assets\Forenames.xml

In this file, you will see each first name that passengers can use. Each passenger will have an assigned gender value, either "Male" or "Female". Ensure that each Forename is inside the Forenames tag (before the </Forenames> tag). Valid forenames will look similar to the following:

<Forename Gender="Male">Anthony</Forename>
<Forename Gender="Female">Amy</Forename>

 

Adding New Last Names

Editing file: Assets\Surnames.xml

In this file, you will see each last name that passengers can use. Ensure that each Surname is inside the Surnames tag (before the </Surnames> tag). Valid surnames will look similar to the following:

<Surname>Wilson</Surname>

 

  • Like 1
  • Thanks 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.