Jump to content

Adding aircraft and flight comments to PACX


Fabio Almeida

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. Take note of the the location of each file. The PACX installation directory, by default, is C:\Program Files (x86)\TFDi Design\PACX.

 

Adding New 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>

The rank class requirements and progression guide can be found below: 

Adding New Airports

Editing file: <PACX Installation Directory>\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: <PACX Installation Directory>\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>

 

Information About Names

Unlike earlier versions of PACX, names are now generated from a large list of region and country-specific first and last names. This largely eliminates the need to edit them as the vast majority of common names from around the world are included and will be selected dynamically based on where you are flying.

  • Like 2
  • Thanks 2
Link to comment
Share on other sites

  • 3 weeks later...

Hi,

 

Found this very helpful. I copy/pasted from a 717-100 and tried creating a file for the B314.

After placing it in the aircraft folder, it doesn't show up in the list of aircraft in PACX, and when I try to open the xml file in internet explorer it looks totally blank, even though in txt it shows up all correctly. I edited all the fields using txt - any thoughts on what I did wrong?

 

Regards,

-Peter

  • Like 1
Link to comment
Share on other sites

The editing of first names and surnames is a useful thing. But with them being separated in this way, does this mean that the first and surnames will be randomly selected. I'd like to edit certain first and surnames to match together, such as typically British names, and then names that are usually identifiable based on region. This would give my passenger list a more realistic demographic, but it won't work if I cannot find a way to match certain names.

Also, it would be great if we could also add families to sit together. Are there any ways to do these things, or plans in the pipeline to allow for it?

Link to comment
Share on other sites

  • 3 weeks later...

Hello @Fabio Almeida,

Thank you for making this guide. I found it very helpful to make my own custom cabin layouts.

I have made a Lufthansa A320 Cabin layout (attached). I am having the same problem as @Mantock, however, where I can't find my newly made cabin on PACX Aircraft list during launch. I have used Notepad++ to convert from txt to xml, but nothing changed.

Could you maybe check out my xml file to see if I made any mistakes? If there is no mistake, What should I do to resolve this issue?

Thanks in advance.

Regards,

Vincentius

A320-Lufthansa.xml

Edited by Vincentius
Link to comment
Share on other sites

On 11/12/2020 at 12:35 PM, RedFlagRik said:

does this mean that the first and surnames will be randomly selected

This does mean that they are randomly generated from the list

 

On 11/12/2020 at 12:35 PM, RedFlagRik said:

This would give my passenger list a more realistic demographic

This may be worth us considering in the future.

 

On 11/29/2020 at 4:04 PM, Vincentius said:

Could you maybe check out my xml file to see if I made any mistakes? If there is no mistake, What should I do to resolve this issue?

Check your %localappdata%\PACX\log.txt and the reason for the aircraft not loading will be provided.

Link to comment
Share on other sites

  • 2 months later...

@Anthony96 To add safety briefs you will need to download the audio file you wish to use in .wav format and drop the file into this folder:

C:\Users\YOURNAME\Documents\PACX\Custom Safety Demonstrations

It is the same if you want to add boarding music download in .wav format and paste here: 

C:\Users\YOURNAME\Documents\PACX\Boarding Music

Once you have done this select either one of the following then it will open a file browser, select the file you wish to use and it will play upon commencing push back.

u5MrGns.png

Hope this helps :)

  • Like 1
Link to comment
Share on other sites

  • turbofandude changed the title to Adding aircraft and flight comments to PACX

Hi everyone,

I tried to modify the cabin of the Airbus 320 but I can't see it when I choose the aircraft type...
Might you please, check my file as well ? Because when I check the report at %localappdata%\PACX\log.txt and it's says that :

 

Best regards,

Mikael

System.NullReferenceException: The object reference is not set to an instance of an object.

A320.xml

Edited by mikael 140
Link to comment
Share on other sites

@mikael 140 So I have had a look at your XML and for some reason it's a word document. There's already an A320 that comes with PACX however the code for aircraft should look something like this: 

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

I don't know what you have attached in regards to that .xml file as it looks nothing like standard PACX cabin code. Hope this helps. If you would like to make your own custom A320 I suggest looking at the guide Fabio posted above (Adding aircraft and flight comments to PACX - PACX - TFDi Design Forums) and that should help you achieve this.

Link to comment
Share on other sites

2 hours ago, Ethanb_UK said:

@mikael 140 So I have had a look at your XML and for some reason it's a word document. There's already an A320 that comes with PACX however the code for aircraft should look something like this: 


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

I don't know what you have attached in regards to that .xml file as it looks nothing like standard PACX cabin code. Hope this helps. If you would like to make your own custom A320 I suggest looking at the guide Fabio posted above (Adding aircraft and flight comments to PACX - PACX - TFDi Design Forums) and that should help you achieve this.

Hi Ethanb_UK,

Thanks for your answer,

I do not understand, I opened the "A320" file from TFDI (x86) with word to be able to modify it.
Then when it came to save it, I was not able to do it as .xml... Why ?

I looked into it of course, but from my point of view is not easy to understand... 😅

Best regards,

Mikaël

Link to comment
Share on other sites

4 hours ago, Ethanb_UK said:

C:\TFDi Design\PACX\Assets\Airplanes (or where ever you installed it) is where the xml cabin layouts are located. You are not able to edit xml files with word. Try downloading either notepad ++ or Visual Studio Code

Thanks a lot ! Is now working 😁

Link to comment
Share on other sites

  • 1 month later...

Hi, just downloaded this program and i like it!

But, in the passengerview, i cant se all row. The default 737-800 has 4+21 row but in the
view i only se 4+20?

If i take the deafult 737-900 i should have 4+25 row but only show 4+20 to.

Im i doing something wrong ?

Best regards
Lasse

 

Link to comment
Share on other sites

  • 4 weeks later...

Hello, So i’ve downloaded this mod and when I try to put the departure ICAO and it says “The entered departure airport wasnt found” and I go into the Airport files (C:/Prog files x86/TFDI design/PACX/Assets and click airports and open it up in Notepad and search for the airport, it shows that it is an airport in the list. And another problem I have is when I enter an airport into the ICAO and i’m pushing back the flight attendant will just say either “the state” (ex. North Carolina) or “your destination” and she doesn’t actually say the name of the city or airport, does anyone know how to fix these issues? Thanks!

Link to comment
Share on other sites

On 6/3/2021 at 10:51 PM, Anthony Trains said:

Hello, So i’ve downloaded this mod and when I try to put the departure ICAO and it says “The entered departure airport wasnt found” and I go into the Airport files (C:/Prog files x86/TFDI design/PACX/Assets and click airports and open it up in Notepad and search for the airport, it shows that it is an airport in the list. And another problem I have is when I enter an airport into the ICAO and i’m pushing back the flight attendant will just say either “the state” (ex. North Carolina) or “your destination” and she doesn’t actually say the name of the city or airport, does anyone know how to fix these issues? Thanks!

For your first issue, was there a space after the ICAO code?

For your second issue, there are over 17,000 airports globally and having someone record the name would not only be time consuming and inefficient, it may actually affect the performance of PACX to load each sound file. We resort to a couple of options when saying the airport name, which is outlined below:

  • If we have the airport name itself (e.g. London Heathrow), we will play this sound file.
  • If we do not have the airport name, but we have the region the airport is located in (e.g. North Carolina or London), we will play this.
  • If we do not have either the airport name or the region, we will fallback to "Your destination". While more generic, it ensures that there is something said.
Link to comment
Share on other sites

  • 2 months later...
On 1/4/2022 at 7:33 PM, Aaflyboy777 said:

Whenever I try and add an airport to the XML airport file PACX tells me that there is an airport data error when I launch it.  Same goes if I try and edit the aircraft file.

Your XML is likely not valid. You can use online tools to validate the validity of an XML tag. Here is a good tool: https://www.xmlvalidation.com/index.php

Link to comment
Share on other sites

  • 2 weeks later...
On 1/27/2022 at 10:22 PM, FSinsane said:

This is probably a dumb question but after you put the XML files in the Airplane folder how to you load it for use in PACX? 

Reload PACX and the aircraft should appear if the XML is valid. You can verify XML validity using an online validator tool, such as this one: https://www.xmlvalidation.com/

Link to comment
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.