User Settings Reference
This page documents the modern Cabin Crew Announcements screen from top to bottom. It covers what every button does, how automatic triggers work, how custom announcements are created, and how cabin and flight-deck responses now follow the selected announcement mode.
Overview
The Cabin Crew Announcements page controls three major things:
- Passenger-facing cabin announcements.
- Cabin crew and flight-deck interphone responses.
- The voice mode used to play those announcements and responses.
The page is built around one simple rule:
FSFO controls when an announcement or reply is used. Your selected crew mode controls how it sounds.
That means:
- Static Crew uses built-in WAV files.
- TTS Crew uses your editable text and speaks it with a Windows SAPI voice.
- AI Cabin Crew uses your editable prompt and generates the spoken message with OpenAI.
This same mode logic now applies to:
- Automatic cabin announcements.
- Manual preview playback.
- Cabin replies to flight-deck calls.
- Flight-deck replies to cabin crew calls.
Crew Modes
At the top of the page, click one of the three mode cards to choose how cabin announcements and interphone responses should be generated.
File:FSFO Announcements ModeCards.png
| Mode | Card text | Behavior |
|---|---|---|
| Static Crew | Play pre-recorded WAV files from your selected voice pack. | Uses built-in static WAV files for built-in announcements and built-in responses. For the custom announcement only, Static mode also lets you browse to your own WAV file. |
| TTS Crew | Use your custom messages spoken by a Windows voice. | Uses the editable text you define for each announcement or response and plays it with the selected SAPI voice. |
| AI Cabin Crew | Generate dynamic announcements with ChatGPT / OpenAI. | Uses your API key plus the configured AI prompt, AI style, voice output, creativity, and message length settings to generate the spoken result. |
When you switch modes:
- The Preview buttons start using that mode immediately.
- The Edit panel changes to match that mode.
- The Responses grid also follows that mode.
- Flight-deck replies inherit the same announcement mode, so their voice stays consistent with the rest of the cabin system.
Announcement List
The main table is the Announcement List. It shows the built-in announcement rows plus one optional custom announcement row.
File:FSFO Announcements AddAndResponses.png
Top Controls
| Control | What it does |
|---|---|
| Enable All | Turns the overall attendant announcement system on or off without deleting your saved settings. |
| Responses | Switches the table into the Responses view. When active, this button changes to Announcements so you can switch back. |
| + Add Announcement | Opens the custom announcement editor so you can create the single optional custom announcement row. |
When the Responses view is active:
- The announcement header is hidden.
- The response header is shown.
- Enable All is hidden.
- + Add Announcement is hidden.
Table Columns
In Announcement view, the columns are:
- # - display order.
- Announcement - row name.
- Trigger - current trigger selection.
- Delay - delay before playback.
- Segment - the flight segment used by the automatic trigger system.
- Conditions - operational note or phase reminder.
- Status / Actions - row checkbox plus Preview, Trigger, and Edit buttons.
Row Actions
| Action | What it does |
|---|---|
| Row checkbox | Enables or disables that individual announcement row. |
| Preview | Plays a preview using the current crew mode. |
| Trigger | Opens the Trigger Editor for that row. Clicking the trigger icon again after editing saves the trigger and closes the editor. |
| Edit | Opens the Content Editor. In TTS mode you edit text, in AI mode you edit the prompt, and for the custom announcement in Static mode you browse to a WAV file. |
Built-In Announcement Rows
The current built-in announcement set is:
| # | Announcement | Default Segment | Default Trigger | Default Delay | Purpose |
|---|---|---|---|---|---|
| 1 | Boarding Welcome | Preflight | Boarding Started | 00:45 | Initial welcome once boarding begins. |
| 2 | Boarding Complete Call | Preflight | Boarding Complete | 00:05 | Final boarding completion announcement. |
| 3 | Doors Armed | Preflight | Doors Closed | 00:05 | Doors armed and cross-check complete. |
| 4 | Departure Safety Briefing | Preflight | Doors Closed | 00:40 | Directs passenger attention to the safety demo. |
| 5 | Service Start | Airborne | Service Started | 00:00 | Announces start of cabin service. |
| 6 | Top of Descent | Descent | Start of Descent | 00:00 | Descent and arrival preparation call. |
| 7 | Cabin Secure for Landing | Approach | Below 10,000 ft | 00:20 | Final cabin secure reminder before landing. |
| 8 | Arrival Welcome | Taxi-In | Runway Exit | 00:20 | Post-landing welcome and arrival information. |
| 9 | Doors Disarmed | Shutdown | Engines Off | 00:05 | Doors disarmed and cross-check complete. |
Custom Announcement Row
After saving a custom announcement, a tenth row appears in the list:
- The row is hidden until an announcement name is saved.
- Only one custom announcement entry is currently supported on this page.
- The custom row stores its own name, segment, trigger, delay, conditions, content, and optional static WAV path.
Trigger Editor
Click the Trigger button on any announcement row to open the Trigger Editor card.
The Trigger Editor contains:
- Trigger Point - the automatic event to watch for.
- Delay - the delay before playback.
- Selected Trigger - a preview of the currently selected trigger.
If a row is manual-only, the Trigger Point box is disabled and shows Manual Only.
Available Trigger Segments
FSFO uses these automatic trigger segments:
- Preflight
- Taxi-Out
- Climb
- Airborne
- Descent
- Approach
- Final
- Rollout
- Taxi-In
- Shutdown
- All
All does not have automatic triggers. On the custom announcement, that effectively means Manual Only until you choose a segment that supports triggers.
Segment-Based Trigger Matrix
| Segment | Available triggers |
|---|---|
| Preflight | Boarding Started, Boarding Complete, Doors Closed, Pushback Start, Beacon On |
| Taxi-Out | Pushback Complete, Beacon On |
| Climb | Above 10,000 ft, Above 18,000 ft, Top of Climb |
| Airborne | Above 18,000 ft, Top of Climb, Start of Descent, TOD |
| Descent | Start of Descent, -1000, -2000 to -5000, Below 10,000 ft |
| Approach / Final | Below 15,000 ft, Below 14,000 ft, Below 13,000 ft, Below 12,000 ft, Below 11,000 ft, Below 10,000 ft, Below 9,000 ft, Below 8,000 ft, Below 7,000 ft, Below 6,000 ft, Below 5,000 ft, Landing Lights On |
| Rollout / Taxi-In | Runway Exit, Landing Lights Off, Ground Speed Below 45 MPH, Ground Speed Below 20 MPH |
| Shutdown | Doors Open |
Special Trigger Rules
| Row | Special behavior |
|---|---|
| Service Start | Only supports Service Started. |
| Cabin Secure for Landing | Supports the full approach/final altitude set from Below 15,000 ft through Below 5,000 ft, plus Landing Lights On. |
| Arrival Welcome | Supports Runway Exit, Landing Lights Off, Ground Speed Below 45 MPH, and Ground Speed Below 20 MPH. |
| Doors Disarmed | Uses a dedicated trigger set: Beacon Off, Taxi Off, Engines Off, or Doors Open. The default is Engines Off. |
Responses
Click Responses to switch the page from passenger announcements to interphone response definitions.
The Responses view is used for:
- Cabin crew answering the flight deck.
- Flight deck answering the cabin crew.
- Button-driven comm panel interactions.
- Supported voice-command interaction flows.
This means the user can now customize not only cabin announcements, but also the actual answers spoken when someone calls over the interphone.
How Responses Behave by Mode
- Static Crew plays the built-in static WAV shown in the grid.
- TTS Crew speaks the saved response text with the configured cabin TTS voice.
- AI Cabin Crew generates the reply from the saved response prompt using the AI settings on this page.
This mode logic applies to both:
- Cabin replies.
- Flight-deck replies.
Response View Columns
In Responses view, the grid shows:
- # - display order.
- Flight Deck Command - the call or statement that triggered the response.
- Response - the response type.
- Outcome - the branch or result, such as Approved, Standby, Ready, or Not Ready.
- Static WAV - the built-in static WAV used in Static mode.
- Actions - Preview and Edit.
Cabin Replies To Flight Deck Calls
| # | Flight Deck Command | Response | Outcome | Static WAV |
|---|---|---|---|---|
| 1 | Is boarding complete? | Boarding Complete | Complete | Crew\Boarding_Completed.wav |
| 2 | Is boarding complete? | Boarding Complete | Still In Progress | Crew\Boarding_NotCompleted.wav |
| 3 | You're cleared to start boarding. | Start Boarding | Acknowledged | Crew\Start_Boarding1.wav |
| 4 | Cabin ready for takeoff? | Ready for Takeoff | Ready | Crew\Rdy_Takeoff1.wav |
| 5 | Cabin ready for takeoff? | Ready for Takeoff | Not Ready | Crew\Not_Rdy_Takeoff1.wav |
| 6 | You may leave your seats. | Release Seats | Acknowledged | Crew\Cabin_Crew_Released_Ack.wav |
| 7 | You may begin cabin service. | Cabin Service | Starting | Crew\Cabin_Service_Starting.wav |
| 8 | We have turbulence ahead. | Turbulence Ahead | Cabin Securing | Crew\Turbulence1.wav |
| 9 | We are delayed. | Delay Advisory | Acknowledged | Crew\Delayed1.wav |
| 10 | We have cleared the turbulence. | Turbulence Cleared | Resuming Service | Crew\Turbulence_Cleared1.wav |
| 11 | Prepare the cabin for landing. | Prepare for Landing | Acknowledged | Crew\Yes1.wav |
| 12 | Prepare the cabin for takeoff. | Prepare for Takeoff | Acknowledged | Crew\Yes1.wav |
| 13 | Cabin ready for landing? | Ready for Landing | Ready | Crew\Rdy_Landing1.wav |
| 14 | Cabin ready for landing? | Ready for Landing | Not Ready | Crew\Not_Rdy_Landing1.wav |
| 15 | Would you mind bringing me a cup of coffee? | Coffee Request | Acknowledged | Crew\Yes1.wav |
| 16 | Would you mind covering so I can use the restroom? | Cockpit Door Cover | Acknowledged | Crew\Yes1.wav |
Flight-Deck Replies To Cabin Calls
| # | Cabin Crew Call | Response | Outcome | Static WAV |
|---|---|---|---|---|
| 17 | Flight deck, this is the cabin crew. Is it okay to start boarding passengers? | Boarding Request | Approved | Capt\Yes1.wav |
| 18 | Flight deck, this is the cabin crew. Is it okay to start boarding passengers? | Boarding Request | Standby | Capt\Not_Yet.wav |
| 19 | All passengers have boarded. I'll bring the manifest to the cockpit once we get everyone seated. | Boarding Complete | Acknowledged | Capt\Acknowledged1.wav |
| 20 | Flight deck, this is the cabin crew. Is it okay to start deboarding the passengers? | Deboarding Request | Approved | Capt\Yes1.wav |
| 21 | Flight deck, this is the cabin crew. Is it okay to start deboarding the passengers? | Deboarding Request | Standby | Capt\Not_Yet.wav |
| 22 | Cabin secure and all crew seated; ready for takeoff. | Ready for Takeoff Call | Acknowledged | Capt\Acknowledged1.wav |
| 23 | Cabin secure and equipment stowed; ready for landing. | Ready for Landing Call | Acknowledged | Capt\Acknowledged1.wav |
| 24 | Captain, you good if we start cabin service now? | Cabin Service Request | Approved | Capt\Yes1.wav |
| 25 | Captain, you good if we start cabin service now? | Cabin Service Request | Standby | Capt\Not_Yet.wav |
Editing Responses
The response editor uses the same Edit panel as announcements, but the wording changes to reflect that you are editing a response rather than a passenger announcement.
Important response notes:
- In Static Crew, built-in responses keep using their fixed built-in WAV files.
- In TTS Crew, the response text is what gets spoken.
- In AI Cabin Crew, the response prompt is what gets sent to OpenAI.
- The not-ready responses support the placeholder {status_reason}.
- {response_reason} is also accepted anywhere a reason placeholder is needed.
Custom Announcements
Use + Add Announcement to create or update the single custom announcement slot.
Note: The custom announcement row stays hidden until an announcement name is saved.
Custom Announcement Editor Fields
The custom editor contains these fields:
- Announcement Name - required. If blank, the row is not created.
- Trigger - the selected automatic trigger for the chosen segment.
- Delay - playback delay, such as 00:10.
- Segment - the flight segment used to determine available triggers.
- Conditions - free-form note shown in the grid.
- Save Announcement - saves the row and shows it in the list.
- Cancel - closes the editor without saving.
Important Custom Announcement Behavior
- The Segment selection controls which triggers are available.
- If the selected Segment does not support automatic triggers, the custom announcement becomes Manual Only.
- The custom row stores its own name, trigger, delay, segment, conditions, text, AI prompt, enabled state, and optional static WAV path.
- After saving, use the Edit button on the custom row to define the actual content.
Content Editor
The Content Editor card opens when you click Edit on an announcement or response row.
The card automatically changes based on both:
- The current crew mode.
- Whether you are editing an announcement or a response.
TTS Mode
In TTS Crew mode:
- The title becomes TTS Message: <name>.
- The field label is TTS Message.
- The preview box shows the resolved message text.
- Built-in announcements and built-in responses both use editable text.
AI Mode
In AI Cabin Crew mode:
- The title becomes AI Prompt: <name>.
- The field label is AI Prompt.
- The preview box shows the resolved prompt text.
- For response rows, the subtitle explains that the prompt will be used when that interphone response is generated.
Static Mode For The Custom Announcement
In Static Crew mode, the built-in rows still use their built-in WAV files. However, the custom announcement behaves differently:
- The title becomes Static WAV: <name>.
- The field label becomes Static WAV File.
- The editor shows a Browse WAV... button.
- The preview box shows the selected WAV path.
- FSFO can store and use a full WAV file path for that custom announcement.
Placeholders In TTS And AI Content
Standard announcement placeholders include:
- {airline}
- {flight_number}
- {origin}
- {destination}
- {dep_city}
- {arr_city}
- {aircraft}
- {cruise_altitude}
- {weather}
- {time}
- {local_time}
Response-specific placeholders also include:
- {status_reason}
- {response_reason}
Lower Settings Cards
The lower half of the page contains three settings cards plus a small note about OpenAI billing.
Static Crew Settings
The Static Crew Settings card contains:
- Output Device - chooses where static cabin WAV files are played.
- Voice Pack Region - chooses the static voice pack region or accent pack.
The card also includes a note that these settings are saved with CabinCrew.cfg for the attendant system.
AI Cabin Crew Settings
The AI Cabin Crew Settings card contains:
- OpenAI API Key - the stored API key used by FSFO.
- Test Key - checks that the API key works.
- Show Key / Hide Key - toggles key visibility.
- AI Style - currently includes Professional Airline, Warm and Friendly, and Premium International.
- Voice Output - chooses the AI voice output selection.
- Creativity - numeric value from 0 to 1.
- Message Length - currently includes Short (up to 60 words), Normal (up to 90 words), and Extended (up to 120 words).
- Global AI Prompt - a reusable instruction applied to all AI-generated cabin content.
- Cache generated audio - reuses generated audio when enabled.
- Fallback to Static Crew if AI fails - automatically falls back to Static Crew if AI generation fails.
TTS Crew Settings
The TTS Crew Settings card contains:
- TTS Voice - the Windows SAPI voice used for cabin announcements and responses.
- Message Variables - a reminder strip showing common placeholders that can be used in custom TTS messages.
The card also includes a note that this is a dedicated cabin-announcement voice and does not depend on the general Audio & Speech page.
OpenAI Billing Reminder
At the bottom of the page, FSFO shows a reminder that:
OpenAI API usage is billed separately by OpenAI and is not included with ChatGPT Plus or Pro.
AI Cabin Crew Setup
The AI Cabin Crew feature requires an OpenAI API key. This is separate from a regular ChatGPT subscription.
Important: ChatGPT Plus or Pro is not required for FSFO AI Cabin Crew. API billing is managed separately through the OpenAI Platform.
Step 1: Open the OpenAI Platform
Go to:
Sign in or create an OpenAI Platform account.
Step 2: Add billing or prepaid credits
Open:
Then:
- Add payment details.
- Add prepaid credits if needed.
- For initial testing, a small prepaid amount such as $5 or $10 is usually enough.
- If you want tighter control while testing, leave auto recharge turned off.
Step 3: Create an API key
Open:
Then:
- Click Create new secret key.
- Give it a name such as FSFO AI Cabin Crew.
- Leave the default project unless you intentionally use a different one.
- Leave permissions at the default unless OpenAI specifically requires something else.
- Click Create secret key.
Important security note: OpenAI normally shows the full secret key only once. Copy it immediately and keep it private.
Do not share your API key in:
- Screenshots
- Discord posts
- Forums
- Public bug reports
Step 4: Add the key to FSFO
In FSFO:
- Open the Cabin Crew Announcements page.
- Select the AI Cabin Crew mode card.
- Paste the key into OpenAI API Key.
- Click Test Key.
If the test succeeds, the AI system is ready.
Step 5: Finish your AI setup
After the key is working:
- Choose an AI Style.
- Choose a Voice Output.
- Adjust Creativity and Message Length if needed.
- Add a Global AI Prompt if you want all AI announcements to share a consistent tone.
- Edit any announcement or response row to customize its individual prompt.
Suggested Starting Prompt Style
If you want a clean starting point, keep your AI prompts:
- Professional
- Concise
- Passenger-friendly
- Focused only on information that FSFO actually knows
This helps avoid invented weather, gate numbers, delays, or timings.
Built-In Announcement Templates
The following table documents the default content shipped for the built-in announcement rows. This is especially useful when you want to customize TTS or AI but still keep the stock FSFO wording as a starting point.
| Announcement | Default Static WAV | Default TTS text | Default AI prompt |
|---|---|---|---|
| Boarding Welcome | Crew\Boarding_Welcome1.wav
|
Good {local_time}, and welcome aboard flight {flight_number} from {dep_city} to {arr_city}. Please take your seats and stow your carry-on items.
|
Welcome passengers aboard flight {flight_number} from {dep_city} to {arr_city}, and invite them to settle in for departure.
|
| Boarding Complete Call | Crew\Boarding_Completed.wav
|
Boarding is now complete. Please ensure your seatbelt is fastened and your larger electronic devices are stowed.
|
Advise passengers that boarding is complete and remind them to settle in for departure.
|
| Doors Armed | Crew\Arm_Doors.wav
|
Cabin crew, doors armed and cross-check complete.
|
Announce that the doors are armed and cross-check is complete in a short, professional cabin crew tone.
|
| Departure Safety Briefing | Crew\Safety_Message.wav
|
Ladies and gentlemen, please direct your attention to the cabin crew for an important safety demonstration.
|
Invite passengers to pay attention to the safety demonstration in a calm, professional tone.
|
| Service Start | Crew\Food_Service1.wav
|
Ladies and gentlemen, we are now beginning cabin service. A selection of beverages and light refreshments will be available as we make our way through the cabin.
|
Announce that cabin service is now beginning and briefly let passengers know refreshments will be offered.
|
| Top of Descent | Crew\Descent_Message.wav
|
We have begun our descent into {arr_city}. Please return to your seats and fasten your seatbelt.
|
Advise passengers that descent into {arr_city} has begun and ask them to prepare for arrival.
|
| Arrival Welcome | Crew\Welcome_Message1.wav
|
Welcome to {arr_city}. Local weather is {weather}. Please remain seated until we arrive at the gate.
|
Welcome passengers to {arr_city} and mention the local weather as {weather}.
|
| Cabin Secure for Landing | Crew\Seatbelts_Landing1.wav
|
We will be landing shortly in {arr_city}. Please ensure your seatbelt is fastened, your tray table is stowed, and your seatback is upright.
|
Prepare passengers for landing into {arr_city} and remind them about seatbelts, tray tables, and seatbacks.
|
| Doors Disarmed | Crew\Disarm_Doors.wav
|
Cabin crew, doors disarmed and cross-check complete. Please remain seated until the seatbelt sign has been switched off.
|
Announce that the doors are disarmed and cross-check is complete, while reminding passengers to remain seated until the seatbelt sign is off.
|
| Custom Announcement | Crew\Boarding_Welcome1.wav until you browse to a different WAV in Static mode.
|
Welcome aboard flight {flight_number}. We are preparing for departure to {arr_city}.
|
Create a professional custom cabin announcement for flight {flight_number} to {arr_city}.
|
Default Response Templates
The Responses view is effectively a second configurable library inside this page. The following tables summarize the stock text and stock AI intent that FSFO uses before you customize anything.
Cabin Reply Defaults
| Response | Outcome | Default TTS text | Default AI prompt |
|---|---|---|---|
| Boarding Complete | Complete | Boarding is complete.
|
Confirm to the flight deck that boarding is complete and all passengers are on board.
|
| Boarding Complete | Still In Progress | Negative, boarding is still in progress.
|
Tell the flight deck that boarding is still in progress and the cabin is not ready yet.
|
| Start Boarding | Acknowledged | Copy. Boarding will begin now.
|
Acknowledge the clearance from the flight deck and confirm that boarding will begin now.
|
| Ready for Takeoff | Ready | Cabin secure and ready for takeoff.
|
Reply over the interphone that the cabin is secure and ready for takeoff.
|
| Ready for Takeoff | Not Ready | Negative, not ready for takeoff. {status_reason}
|
Reply over the interphone that the cabin is not ready for takeoff yet. Reason: {status_reason}
|
| Release Seats | Acknowledged | Copy. Cabin crew released.
|
Acknowledge the release from seats and confirm that the cabin crew is released.
|
| Cabin Service | Starting | Copy. Cabin service starting.
|
Acknowledge the clearance to begin cabin service and confirm that service is starting.
|
| Turbulence Ahead | Cabin Securing | Cabin being secured.
|
Acknowledge the turbulence warning and confirm that the cabin is being secured.
|
| Delay Advisory | Acknowledged | Delay advisory acknowledged.
|
Acknowledge the delay advisory from the flight deck and confirm that the cabin will be kept updated.
|
| Turbulence Cleared | Resuming Service | Cabin crew resuming service.
|
Acknowledge that the turbulence has cleared and confirm that the cabin crew is resuming service.
|
| Prepare for Landing | Acknowledged | Cabin crew preparing.
|
Acknowledge the landing preparation call and confirm that the cabin crew is preparing.
|
| Prepare for Takeoff | Acknowledged | Cabin crew preparing for takeoff.
|
Acknowledge the takeoff preparation call and confirm that the cabin crew is preparing for takeoff.
|
| Ready for Landing | Ready | Cabin secure and ready for landing.
|
Reply over the interphone that the cabin is secure and ready for landing.
|
| Ready for Landing | Not Ready | Negative, not ready for landing. {status_reason}
|
Reply over the interphone that the cabin is not ready for landing yet. Reason: {status_reason}
|
| Coffee Request | Acknowledged | Coffee coming up.
|
Acknowledge the coffee request and confirm that it is on the way.
|
| Cockpit Door Cover | Acknowledged | Copy. We'll secure the cockpit door.
|
Acknowledge the cockpit door coverage request and confirm that the cabin crew will secure the door.
|
Flight-Deck Reply Defaults
| Response | Outcome | Default TTS text | Default AI prompt |
|---|---|---|---|
| Boarding Request | Approved | You can start boarding.
|
Approve the cabin crew request to start boarding passengers.
|
| Boarding Request | Standby | We're not quite ready up here.
|
Tell the cabin crew to stand by before starting boarding.
|
| Boarding Complete | Acknowledged | Roger.
|
Acknowledge that boarding is complete.
|
| Deboarding Request | Approved | You can start deboarding.
|
Approve the cabin crew request to start deboarding the passengers.
|
| Deboarding Request | Standby | Please standby.
|
Tell the cabin crew to stand by before starting deboarding.
|
| Ready for Takeoff Call | Acknowledged | Roger.
|
Acknowledge that the cabin is ready for takeoff.
|
| Ready for Landing Call | Acknowledged | Thank you.
|
Acknowledge that the cabin is ready for landing.
|
| Cabin Service Request | Approved | Cleared to start your service; thank you.
|
Approve the cabin crew request to begin cabin service.
|
| Cabin Service Request | Standby | Let's give it a few more minutes for the air to smooth out.
|
Tell the cabin crew to wait before starting cabin service.
|
Trigger Meaning Reference
The trigger names on this page are short on purpose. The following glossary explains what each one is intended to mean operationally.
| Trigger | Operational meaning |
|---|---|
| Boarding Started | Fires once boarding has actually begun. |
| Boarding Complete | Fires when boarding is detected as complete. |
| Doors Closed | Fires after cabin doors are closed. |
| Pushback Start | Fires when pushback begins. |
| Pushback Complete | Fires when pushback has finished. |
| Beacon On | Fires when the beacon light changes to on. |
| Above 10,000 ft / Above 18,000 ft | Fires when the aircraft climbs above the selected MSL threshold. |
| Top of Climb | Intended for cruise-entry style announcements when climb completes. |
| Start of Descent / TOD | Intended for descent-entry announcements. |
| -1000 / -2000 to -5000 | Descent-phase altitude-loss style triggers used by the page's descent logic. |
| Below 15,000 ft through Below 5,000 ft | Fires when the aircraft descends below the selected MSL altitude threshold. |
| Landing Lights On | Useful for final approach style cabin-secure announcements tied to light usage rather than altitude alone. |
| Runway Exit | Fires once landing rollout is complete and the aircraft exits the runway. |
| Landing Lights Off | Useful for arrival welcome timing after clearing the runway. |
| Ground Speed Below 45 MPH | Fires during rollout or taxi-in when groundspeed slows below 45 MPH. |
| Ground Speed Below 20 MPH | Fires later in taxi-in, useful when you want a more delayed arrival welcome. |
| Beacon Off | Useful for post-arrival or shutdown messaging once the aircraft is secured. |
| Taxi Off | Useful when tying post-arrival behavior to taxi light usage. |
| Engines Off | Useful for door-disarm timing when engine shutdown is the most reliable post-arrival event. |
| Doors Open | Fires when a door-open state is detected. |
| Service Started | Dedicated trigger for the Service Start announcement. |
Automatic Playback Rules
The automatic logic on this page follows a few important rules:
- FSFO watches for a trigger to become active rather than replaying continuously just because a condition remains true.
- Once a trigger becomes active, the configured delay is applied before playback starts.
- If the trigger condition stops being true before the delay expires, the scheduled announcement can be canceled.
- Automatic rows are intended to play once during the current flight session rather than repeating over and over.
- Manual Only rows are excluded from automatic monitoring.
- The custom announcement can switch between automatic and manual behavior depending on the selected segment.
This is why trigger choice matters:
- A faster trigger such as Runway Exit will usually play earlier.
- A slower trigger such as Ground Speed Below 20 MPH will delay the same arrival message until later in taxi-in.
- A more procedural trigger such as Landing Lights On or Engines Off can be more reliable in some aircraft than altitude or gate assumptions.
Mode-Specific Editing Rules
The editor on this page intentionally behaves differently depending on what you are editing:
| Scenario | What happens |
|---|---|
| Built-in announcement in Static mode | Uses the built-in WAV. Static content is not meant to be edited as free text for stock rows. |
| Built-in response in Static mode | Uses the built-in response WAV listed in the Responses grid. |
| Any announcement or response in TTS mode | Uses the editable TTS message text and the configured cabin SAPI voice. |
| Any announcement or response in AI mode | Uses the editable AI prompt plus the AI settings card. |
| Custom announcement in Static mode | The editor switches from a text editor to a WAV path field with a Browse WAV... button. |
Examples and Best Practices
Example: Conservative Airline-Style Setup
If you want a fairly realistic and low-maintenance setup:
- Keep Boarding Welcome on Boarding Started.
- Keep Departure Safety Briefing on Doors Closed with a short delay.
- Keep Cabin Secure for Landing on Below 10,000 ft or Landing Lights On.
- Keep Arrival Welcome on Runway Exit or Landing Lights Off.
- Keep Doors Disarmed on Engines Off.
Example: Later Arrival Welcome Timing
If you feel the arrival message plays too early:
- Change Arrival Welcome from Runway Exit to Ground Speed Below 45 MPH.
- If you want it even later, use Ground Speed Below 20 MPH.
Example: More Reliable Post-Arrival Logic
If you do not want to rely on a gate-detection style workflow:
- Use Engines Off for Doors Disarmed.
- Use Beacon Off or Taxi Off only if those states are consistently managed in your aircraft.
Example: TTS Custom Announcement
For a TTS custom announcement, you might use:
Welcome aboard {airline} flight {flight_number}. We are expecting an on-time departure to {arr_city}. Please take your seats and let a crew member know if you need assistance.
Example: AI Custom Announcement Prompt
For an AI custom prompt, you might use:
Create a warm but professional short-haul boarding announcement for flight {flight_number} to {arr_city}. Mention that cabin baggage should be stowed quickly so departure is not delayed.
Example: Not Ready Response With A Reason
For TTS or AI not-ready responses, include a reason placeholder so the response sounds more natural when the sim provides a reason:
Negative, not ready for takeoff. {status_reason}
Troubleshooting
| Problem | What to check |
|---|---|
| The custom announcement row never appears | Make sure Announcement Name is filled in and the announcement has been saved. The row remains hidden until a name exists. |
| The custom announcement says Manual Only | Change the custom announcement Segment from All to a segment that supports triggers, such as Preflight, Descent, or Taxi-In. |
| The arrival message plays too early | Use Landing Lights Off, Ground Speed Below 45 MPH, or Ground Speed Below 20 MPH instead of Runway Exit. |
| The doors-disarmed message plays at the wrong time | Try Engines Off first. It is the default because it is often the most reliable general-purpose shutdown trigger. |
| AI replies sound different from the rest of the cabin system | Check the selected crew mode and AI Voice Output. The Responses view follows the same announcement-mode logic as the main announcement list. |
| TTS replies sound wrong or robotic | Recheck the TTS Voice selection in the TTS Crew Settings card and use the Preview button on a response row to confirm it. |
| AI generation fails | Re-test the API key, confirm billing is active on the OpenAI Platform, and keep Fallback to Static Crew if AI fails enabled if you want a backup. |
| Weather or city placeholders sound wrong | Check that the flight plan and arrival weather information are actually loaded in FSFO. Placeholder output depends on that live data being available. |
Tips
- Start with Static Crew if you want a zero-setup experience.
- Use TTS Crew if you want full text control without API billing.
- Use AI Cabin Crew if you want the most flexible and dynamic wording.
- If your custom announcement shows Manual Only, change its Segment to one that supports automatic triggers.
- If AI replies fail, leave Fallback to Static Crew if AI fails enabled.
- If a not-ready response sounds incomplete, add a {status_reason} placeholder to the TTS text or AI prompt.
- The custom static WAV browser only applies to the custom announcement row, not the built-in announcement rows and not the built-in response rows.
Quick Summary
The Cabin Crew Announcements page now gives you full control over:
- Built-in cabin announcements.
- One custom announcement.
- Cabin replies to the flight deck.
- Flight-deck replies back to the cabin.
- Static, TTS, and AI generation modes.
- OpenAI key setup and AI tuning options.
Once configured, the system keeps the voice behavior consistent by using the selected announcement mode for both announcements and comm-panel responses.
