The previous Cabin Announcements and Announcements Packs systems have been fully rebuilt from the ground up for the V3. They’ve evolved into what we now call Virtual Purser (VP) and Airline Packs, which offer more functionalities and are much more extensible than their predecessors.
Virtual Purser
Virtual Purser simulates duties performed by the cabin crew in real life. It takes care of making announcements to the passengers, arming doors, locking lavatories, performing cabin checks, and more. It increases the realism of Fenix aircraft by bringing life to the cabin.
The work of Virtual Purser is driven by the cabin events system. This system defines a set of events that can occur during a flight. Each event has a unique set of triggers - conditions that must be satisfied for the event to occur. Virtual Purser handles events by performing appropriate actions.
Virtual Purser can currently:
Perform announcements over PA to the passengers in the cabin
Make calls to the cockpit via interphone
Open, close, arm, and disarm doors
Lock/unlock lavatories
-
Interact with the FAP:
Set the
CABIN READYindication on the ECAM (before take-off and landing)Play pre-recorded announcements
Play boarding music
Change brightness of cabin lights
The work of Virtual Purser is simulated as close to real life as feasible. The actions it makes take realistic amount of time. For example, after the safety demonstration VP performs cabin safety check, which IRL requires to verify all passengers have their seatbelts fastened. This duty takes longer when more passengers are onboard, which is simulated. Naturally, cabin safety checks on A321 usually take much longer than on A319.
The announcements made by Virtual Purser can be customised using Airline Packs, which are described in detail further down.
VP Behaviour
Virtual Purser can react to things happening in the cabin in real time. These include:
Cockpit Cabin Call
Call buttons can be used to expedite some of long-running actions carried out by the VP. Invoking a call makes the VP complete current action much faster than it would take in real life. Currently, following events can be expedited:
Safety briefing
Safety check (both before takeoff and landing)
Note
Previously, cabin calls caused theCABIN READYindication on the ECAM to be immediately set. This is no longer the case, however it still has a similar effect - Expediting the VP will make it complete the pre-takeoff/pre-landing actions quicker, which will in turn result inCABIN READYbeing set much sooner.
Cabin Doors
Virtual Purser can arm and disarm doors at appropriate moments. By default, it operates all full-size doors on the aircraft (i.e. 1L/R, 4L/R on A320/19, and 1L/R, 2L/R, 3L/R, 4L/R on A321).
However, some airlines keep mid-cabin doors armed during turnaround - meaning that only 1L/R, 4L/R are disarmed when arriving at a gate (regardless of type). This behaviour can be selected via the settings app in the EFB, or by fnx_virtual_purser_keep_emer_exits_armed_for_turnaround setting in a livery.
Cabin Lights
Virtual Purser is able to control the cabin lights throughout the flight.
During the day, the lights will be kept at BRT.
During hours of darkness, the cabin lights will be dimmed to DIM 2 for takeoff and landing. In the air, VP will keep the lights at selected cruise brightness level, which can be changed via the settings app in the EFB, or by fnx_virtual_purser_cruise_cabin_lights_brightness_in_dark setting in a livery (by default DIM 1).
If the sun sets/rises during a flight, VP will also dim the lights to the appropriate setting.
Lavatories
Virtual Purser takes care of locking and unlocking lavatories at specific moments of the flight, e.g. for takeoff, landing, refuelling (option), or when seatbelts signs are toggled.
Locking lavatories for refuelling can be enabled/disabled via the settings app in the EFB, or by fnx_virtual_purser_lock_lavatories_during_refueling setting in a livery.
Cabin Service
Some time during a flight (usually around top of climb) VP will conduct cabin service. It’ll make an announcement to passengers when it starts.
If the service takes place during night, the cabin lights will be set to BRT for its duration.
Cabin Decompression
If the cabin experiences rapid decompression during flight, VP will skip cabin service and make a special announcement (if it’s included in active Airline Pack).
Most of the above behaviours can be enabled/disabled or customised via the settings app in the EFB ('Cabin' category).
Airline Packs
Airline Packs enable users to customise their aircraft with airline-specific modifications. Currently, we support customising:
Boarding music
Cabin announcements
Pre-recorded announcements in the FAP
EFB wallpaper image
FAP screensaver image
The system is fully backward-compatible, meaning that every legacy Cabin Announcement Pack can be used in the new system as if it was an Airline Pack. However, Airline Packs allow a greater degree of customisation and support additional features.
An Airline Pack is a folder which contains audio and image files as described below. The folder’s name must be an ICAO airline code (e.g. BAW). This name is matched against the current flight number or airline ICAO code specified in the chosen livery in order to activate correct Airline Pack from those installed.
To install an Airline Pack, it must be placed in AirlinePacks folder inside any package in the Community folder, for example: Community/fnx-announcements/AirlinePacks/BAW is a valid place to put BAW Airline Pack.
Note
Previously, Cabin Packs had to be located similarly insideAnnouncementsfolder. The new system still scans such locations for legacy packs, but it’s recommended to put new Airline Packs insideAirlinePacksfolder.
The default Fenix Airline Pack is used as a fallback, when no airline-specific pack is found. It is located at Community/fnx-aircraft-a32x-common/Announcements/Default and can be used as reference for creating own packs.
EFB wallpaper
The EFB wallpaper can be changed by providing one of the following image files: EfbWallpaper.png, EfbWallpaper.jpg, or EfbWallpaper.jpeg in the root of the pack (e.g. Community/fnx-announcements/AirlinePacks/BAW/EfbWallpaper.png).
FAP screensaver
The FAP screensaver can be changed by providing one of the following image files: FapScreensaver.png, FapScreensaver.jpg, or FapScreensaver.jpeg in the root of the pack (e.g. Community/fnx-announcements/AirlinePacks/BAW/FapScreensaver.png).
Boarding music and announcements
Boarding music and announcements can be customised by providing specially-named audio files in the pack folder. All audio files must have the .ogg extension
Background music
Boarding music audio files must be placed in the root of the pack and be named BoardingMusic.ogg (e.g. Community/fnx-announcements/AirlinePacks/BAW/BoardingMusic.ogg).
All background music tracks in the active Airline Pack are displayed in and selectable via the Flight Attendant Panel (FAP).
Announcements
Announcements may be placed in the root folder of the pack, as well as in any subfolder. Airline Pack creators are free to organise the announcements however they want. The names of the files must match the names of available announcement types (listed in the table below).
Each announcement may performed in one of 3 modes:
Manual- performed by the VP directly to the cabin over PA audio channelPrerecorded- visible and selectable in the FAP, played either manually or by the VPInterphone- performed by the VP to the cockpit over CAB audio channel
Announcements with Prerecorded mode are shown in the FAP, respecting the folder structure:
Note
Folders whose names start with.(dot) or__(double underscore) will not be displayed in FAP.
Currently, the following announcement types are implemented (the triggers are a subject to tweaks in future updates):
| Announcement type | Description | Trigger | Default mode |
|---|---|---|---|
BoardingWelcome |
Purser welcomes passengers during boarding. | Every 2-6min during boarding. | Manual |
BoardingComplete |
Purser announces that the boarding has completed. | Boarding completed. | Manual |
ArmDoors |
Purser instructs the cabin crew to arm the doors. | Beacon light turned on, pushback, or starting engine. | Manual |
DisarmDoors |
Purser instructs the cabin crew to disarm the doors. | Beacon light or seatbelt signs turned off on stand. | Manual |
PreSafetyBriefing |
The initial part of the safety briefing, followed by SafetyBriefing.
|
Around 1min after the doors are armed. | Manual |
SafetyBriefing |
Safety demonstration performed by the cabin crew before each flight. | Immediately after PreSafetyBriefing.
|
Prerecorded |
CrewTakeSeats |
Purser instructs the cabin crew to take seats. | After completing cabin safety check before takeoff/landing. | Manual |
CabinDim |
Purser announces to the passengers that the cabin lights will be dimmed. | After crew take seats during hours of darkness. | Manual |
CabinSecured |
Purser reports to the cockpit that the cabin is ready for takeoff or landing. | Cabin secured for takeoff/landing. | Interphone |
AfterTakeoff |
PA announcement after takeoff. | Shortly after passing acceleration altitude. | Prerecorded |
SeatbeltSignOn |
Purser announces that the seatbelt signs have been switched on. | Fasten seatbelt signs turned on. | Manual |
SeatbeltSignOff |
Purser announces that the seatbelt signs have been switched off. | Fasten seatbelt signs turned off. | Manual |
CabinService |
PA announcent of the start of cabin service. | Cabin service started. | Prerecorded |
DescentStarted |
Purser announces the start of descent to the destination. | Descent started. | Manual |
AfterLanding |
PA announcement after landing. | Spoilers stowed and landing lights off after landing. | Manual |
DeboardingStarted |
Purser announces that the passengers can now disembark. | Deboarding started. | Manual |
DeboardingComplete |
Purser announces that the deboarding has completed. | Deboarding completed. | Manual |
Decompression |
PA announcement after cabin decompression. | Passenger oxygen masks deployed above 10'000ft. | Prerecorded |
For example, providing file BoardingWelcome.ogg in an Airline Pack will make the Virtual Purser use this custom sound for welcome announcements during boarding.
Note
Legacy announcement names still work, but we encourage creators to use the new names in their packs to take advantage of the new features.
The mode in which an announcement is made can be changed using special tags. An Airline Pack does not have to provide sound files for all possible announcements. If the VP tries to perform an announcement that isn’t provided in the pack, it’ll skip it.
Note
This differs from the previous behaviour of Cabin Announcement Packs. If a sound was missing from a pack, one from the default Fenix pack was used in its place. We decided to change that, so the sound files from different Airline Packs are never mixed together.
Apart from just changing the sounds used for cabin announcements, Airline Packs support additional features enabling greater control over how they are used by the aircraft:
Custom names
Sound files which appear in the FAP (boarding music and pre-recorded announcements) can be given a custom display name, which will be shown in the FAP instead of the raw file name. The custom name can be set by including a tilde ~ in the file name. Everything that follows the tilde will be used as the display name for that sound.
For example, file named SafetyBriefing~A320 Safety Demo.ogg will display in the FAP like this:
Custom announcement types
If a sound file name doesn’t correspond to any known announcement type (see table above), it won’t be used by the Virtual Purser. However, it will still appear in the FAP for manual playback. Custom names can be used to control how the announcements are displayed.
Tags
Tags allow Airline Packs to specify when a sound file (boarding music or any announcement) should be used. An Airline Pack may contain multiple sound files for the same announcement, as long as they have different sets of tags attached to them. When the VP performs an announcement, it picks one with the most tags that match current state of the simulation (i.e. aircraft type, time of day, refueling state, flight phase, etc.).
Tags are attached to a sound by putting them inside square brackets [ ] in the file name. For example, a sound file named BoardingWelcome[A321][Morning][1].ogg is recognised by the Virtual Purser as a sound for BoardingWelcome announcement with A321, Morning, and 1 tags.
Note
The tags in the file name must follow the announcement type and must precede custom name.
This is correct:BoardingWelcome[Prerecorded]~Welcome passengers.ogg
This is incorrect:BoardingWelcome~Welcome passengers[Prerecorded].ogg
Currently, the following tag types are supported:
Aircraft type tags:
A320,A319,A321
Restrict the sound so that it can only be used on specific aircraft type(s).Refueling:
Refueling,Refuelling
Restrict the sound to be used only while refueling the aircraft.-
Time of day:
Morning,Afternoon,Evening,Night
Restrict the sound to specific time(s) of day.Time of day tag Time span (local time) Morning06:00 - 12:00 | 6:00 AM - 12:00 PM Afternoon12:00 - 18:00 | 12:00 PM - 6:00 PM Evening18:00 - 00:00 | 6:00 PM - 12:00 AM Night00:00 - 06:00 | 12:00 AM - 6:00 AM -
FMGS flight phase:
PreFlight,Takeoff,Climb,Cruise,Descent,Approach,GA,Done
Restrict the sound to specific flight phase(s) as determined by the FMGS.Flight phase Starts when: PreFlightFlight is initialised in FMGS TakeoffTakeoff roll begins ClimbAcceleration altitude is reached CruiseTop of climb is reached DescentDescent from cruise altitude begins ApproachApproach phase is activated in FMGS GAApprach is aborted (GA phase in FMGS) DoneAircraft lands and decelerates Announcement mode:
Manual,Prerecorded,Interphone
These tags work only for announcements (have no effect on boarding music) and allow to override the default mode in which the announcement is made. This can be used to make announcements selectable in the FAP.Overwater flight:
Overwater
Restrict the sound to be used only for flights that cross large bodies of water (oceans, seas, big lakes). The data is pulled from active route in the FMS - flights are considered overwater if they stray at least 50NM from the nearset land.
This tag may be used for announcements that mention life vests or instruct passengers how to act in case of potential ditching.Announcement variant:
1,2,3,4, …
Variants work a bit differently to other tags - each simulator session a random variant is picked and used throughout all flights (unless another airline pack is activated).
This feature can be utilised in many ways. For example, pack creators may use it to simulate different cabin crews - all sounds for variant1can be recorded with one voice, then all sounds for variant2can use a different voice, and so on. The system guarantees that the same variant will be used throughout the flight, so the voices will be consistent between announcements.
Sounds without a variant specified are considered to be variant0and are used as a fallback for when no sounds are available in the randomly picked variant.
There should be no gaps in variant numbers inside a pack. This means that an Airline Pack having 3 variants should have files tagged[0](this tag can be skipped),[1], and[2]. When the system picks a random variant, it generates a random number between 0 and the maximum variant number found in the active Airline Pack. If there are gaps in variant numbers and the randomly generated number falls into a gap, the VP will default to using variant0announcements.Custom livery-specific tags
Livery authors may specify custom tags that can be used to choose correct sound for the aircraft they are depicting. This is done by providing a comma-separated list of custom tags tofnx_airline_pack_custom_tagssetting inside livery.cfg file.
For example, if an aircraft is equipped with Wi-Fi and USB sockets, the livery can be configured with:fnx_airline_pack_custom_tags = "WiFi,USB". Then, the Virtual Purser will prefer picking sounds tagged with[WiFi]and[USB]. If the livery doesn’t contain the custom tags attached to a sound, it will never be picked by VP.
Note
Custom livery-specific tags must not overlap with the predefined tags (like aircraft type or flight phase).
Additional predefined tags may be added in the future, so be aware that this may affect your livery’s custom tags.
Multiple tags can be combined on the same sound, to create more complex conditions. Having several tags of different types requires all of them to be satisfied - e.g. [Night][Refueling] makes the sound available only when refueling at night. Attaching several tags of the same type requires only one of them to be met - e.g. [A320][A319] makes the sound available on either A320 or A319.
Examples
Here are some examples of how the tags can be used to customise the cabin sounds:
-
PreSafetyBriefing[A320].ogg
This sound will be used only on the A320. -
BoardingWelcome[Refueling].ogg
This sound will be used only while refueling. -
BoardingWelcome[A321][Morning][1].ogg
This sound will be used only on the A321 in the morning, and when the randomly picked announcement variant is1. -
SafetyBriefing[A319][A320][Night].ogg
This sound will be used only at night, on either A320 or A319. -
BoardingWelcome[A319][USB][Refuelling][Night].ogg
This sound will be used only on the A319 equipped with passenger USB sockets while refuelling during nighttime boarding. -
SafetyBriefing~Safety Demo.ogg
This sound will be shown in the FAP asSafety Demo. -
AfterLanding[Prerecorded]~Please stay in seats.ogg
This sound will be shown as a pre-recorded announcement on the FAP namedPlease stay in seats. -
SafetyBriefing[Overwater][USB][WiFi]
This sound will by used only on flights over large bodies of water, when a livery with custom tagsUSBandWiFiis selected.