User Settings Reference: Difference between revisions

From FSFO Support Hub
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
<div style="border:1px solid #d9e2f1; border-radius:14px; padding:22px 24px; margin:0 0 18px 0; background:linear-gradient(135deg,#07111c 0%,#15314f 55%,#1d4ed8 100%); color:#ffffff; box-shadow:0 2px 8px rgba(15,23,42,.18);">
<div style="border:1px solid #d9e2f1; border-radius:14px; padding:22px 24px; margin:0 0 18px 0; background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 55%,#2563eb 100%); color:#ffffff; box-shadow:0 2px 8px rgba(15,23,42,.18);">
<div style="font-size:32px; font-weight:800; letter-spacing:.2px; line-height:1.2;">FSFO Cabin Crew Announcements</div>
<div style="font-size:32px; font-weight:800; letter-spacing:.2px; line-height:1.2;">FSFO Settings Reference</div>
<div style="font-size:16px; line-height:1.55; margin-top:8px; max-width:980px;">Complete reference for the Cabin Crew Announcements page, including Static, TTS, and AI modes, built-in announcements, trigger editing, custom announcements, interphone responses, and OpenAI API setup.</div>
<div style="font-size:16px; line-height:1.55; margin-top:8px; max-width:980px;">A practical guide to every setting in the FSFO Settings window, organized in the same top-to-bottom order as the live WPF interface.</div>
<div style="margin-top:14px; font-size:13px; opacity:.95;">Flight Simulator First Officer &bull; Settings &bull; Cabin Crew Announcements &bull; Responses &bull; OpenAI Setup</div>
<div style="margin-top:14px; font-size:13px; opacity:.95;">Flight Simulator First Officer &bull; Settings &bull; Audio &bull; SOP &bull; Crew &bull; RAAS &bull; Interface</div>
</div>
</div>


<div style="border-left:5px solid #2563eb; background:#eff6ff; padding:12px 15px; margin:0 0 18px 0; border-radius:8px; color:#172554;">
<div style="border-left:5px solid #2563eb; background:#eff6ff; padding:12px 15px; margin:0 0 18px 0; border-radius:8px; color:#172554;">
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.
This page documents the current FSFO Settings window in the same top-to-bottom order that the sections appear in the WPF interface. The Settings window is organized by sections rather than old wiki categories, so this page follows the live app layout.
</div>
</div>


<div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin:18px 0 24px 0;">
<div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin:18px 0 24px 0;">
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Overview|'''Overview''']]<br><span style="color:#475569; font-size:90%;">What this page controls</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Input and Output|'''Input and Output''']]<br><span style="color:#475569; font-size:90%;">Audio, speech, controls</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Crew Modes|'''Crew Modes''']]<br><span style="color:#475569; font-size:90%;">Static, TTS, and AI</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#SOP|'''SOP''']]<br><span style="color:#475569; font-size:90%;">Automation thresholds</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Announcement List|'''Announcement List''']]<br><span style="color:#475569; font-size:90%;">Rows, controls, and defaults</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Crew Options|'''Crew Options''']]<br><span style="color:#475569; font-size:90%;">Copilot and cabin behavior</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Trigger Editor|'''Trigger Editor''']]<br><span style="color:#475569; font-size:90%;">Automatic trigger setup</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Cabin Crew Announcements|'''Cabin Crew Announcements''']]<br><span style="color:#475569; font-size:90%;">Static, TTS, AI, triggers, and responses</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Responses|'''Responses''']]<br><span style="color:#475569; font-size:90%;">Cabin and flight-deck replies</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#General Options|'''General Options''']]<br><span style="color:#475569; font-size:90%;">Integrations and quality-of-life</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Custom Announcements|'''Custom Announcements''']]<br><span style="color:#475569; font-size:90%;">Add your own message</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Portal, Simbrief, and PAX|'''Portal, Simbrief, and PAX''']]<br><span style="color:#475569; font-size:90%;">Portal, SimBrief, passengers</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Content Editor|'''Content Editor''']]<br><span style="color:#475569; font-size:90%;">Edit TTS, AI, or WAV content</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Flow Options|'''Flow Options''']]<br><span style="color:#475569; font-size:90%;">AutoFlow behavior</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Lower Settings Cards|'''Lower Settings Cards''']]<br><span style="color:#475569; font-size:90%;">Static, AI, and TTS settings</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#RAAS Options|'''RAAS Options''']]<br><span style="color:#475569; font-size:90%;">Runway advisories</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#AI Cabin Crew Setup|'''AI Cabin Crew Setup''']]<br><span style="color:#475569; font-size:90%;">How to get and add an API key</span></div>
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:12px;">[[#Interface Options|'''Interface Options''']]<br><span style="color:#475569; font-size:90%;">Startup and appearance</span></div>
</div>
</div>


== Overview ==
<div style="border-left:5px solid #f59e0b; background:#fffbeb; padding:12px 15px; margin:0 0 24px 0; border-radius:8px; color:#78350f;">
'''Tip:''' Most numeric automation thresholds can be set to '''0''' to disable that specific callout or automation. Start with defaults, then adjust only the sections that affect your aircraft or operating style.
</div>
 
== Input and Output ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


The Cabin Crew Announcements page controls three major things:
This section controls audio devices, speech recognition, SAPI voice selection, testing tools, and controller or hot-key assignments.
 
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Settings_InputOutput.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The Input and Output section of the FSFO Settings window.</div>
</div>
 
=== Voice, Audio, and Recognition ===


* Passenger-facing cabin announcements.
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
* Cabin crew and flight-deck interphone responses.
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
* The voice mode used to play those announcements and responses.
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pilots
| style="vertical-align:top; padding:10px;" | Selects the playback device used for captain and first officer voices. Use this if you want pilot voices in a headset while keeping other sounds on speakers.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cabin Crew
| style="vertical-align:top; padding:10px;" | Selects the playback device used for cabin crew announcements. Many users keep this on speakers to make the cabin sound more separate from cockpit audio.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Region
| style="vertical-align:top; padding:10px;" | Chooses the accent or regional voice style FSFO should prefer when supported by the selected voice engine.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Speech Eng
| style="vertical-align:top; padding:10px;" | Selects the speech engine FSFO will use. Microsoft Speech is usually the most accurate. VOSK is useful for offline or alternate-device support. SAPI mode is used when you want to choose installed SAPI voices directly.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Mic Input
| style="vertical-align:top; padding:10px;" | Selects the microphone or input device FSFO should listen to when the chosen speech engine supports direct device selection. Microsoft Speech generally uses the Windows default microphone, while VOSK can use the device selected here.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | SAPI Pilot
| style="vertical-align:top; padding:10px;" | Selects the installed SAPI voice used for the captain voice when SAPI speech is enabled.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | SAPI Co-pilot
| style="vertical-align:top; padding:10px;" | Selects the installed SAPI voice used for the first officer when SAPI speech is enabled.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | SAPI Cabin
| style="vertical-align:top; padding:10px;" | Selects the installed SAPI voice used for cabin announcements when SAPI speech is enabled.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | SAPI Rate
| style="vertical-align:top; padding:10px;" | Controls how quickly SAPI voices speak. If voices feel too slow or too rushed, adjust this before changing other audio settings.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pilot Volume
| style="vertical-align:top; padding:10px;" | Controls the loudness of pilot and copilot speech.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Crew Volume
| style="vertical-align:top; padding:10px;" | Controls the loudness of flight attendant and cabin crew speech.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ambiance Vol
| style="vertical-align:top; padding:10px;" | Controls the loudness of boarding ambience, background sounds, and related non-voice cabin audio.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pilots dB Gain
| style="vertical-align:top; padding:10px;" | Adds or subtracts decibels from pilot voice playback before the normal volume slider is applied. This is useful when a voice is technically too quiet even with the slider raised.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Amb dB Gain
| style="vertical-align:top; padding:10px;" | Adds or subtracts decibels from ambience playback before the normal ambience volume slider is applied.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Readback
| style="vertical-align:top; padding:10px;" | Controls the spacing or pacing used during readbacks, especially where letters, numbers, and short phrase groups need slightly clearer separation.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Headset Tone
| style="vertical-align:top; padding:10px;" | Applies headset or intercom-style coloration to voice playback so the audio sounds more like cockpit comms and less like plain desktop speech.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Comms Texture
| style="vertical-align:top; padding:10px;" | Adds extra radio character such as light hiss or comms-style texture. This is mainly a realism preference.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open Mic
| style="vertical-align:top; padding:10px;" | Keeps speech recognition listening continuously unless it is muted. This is the best choice if you prefer hands-free operation.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Start Speech On Start
| style="vertical-align:top; padding:10px;" | Automatically turns speech recognition on when FSFO starts, so you do not need to enable it manually every session.
|}
 
=== Audio and Speech Test Buttons ===
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | PILOT TEST
| style="vertical-align:top; padding:10px;" | Plays a sample captain, first officer, and ground-audio test through the currently selected output so you can confirm routing and levels.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | CREW TEST
| style="vertical-align:top; padding:10px;" | Plays a standard cabin crew announcement through the current cabin-audio output.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | READBACK TEST
| style="vertical-align:top; padding:10px;" | Plays a sample captain and first officer readback so you can judge clarity, pacing, and balance.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | TEST BOARDING MUSIC
| style="vertical-align:top; padding:10px;" | Plays the current boarding-music audio so you can confirm the selected sound and its level.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | TEST BOARDING AMBIANCE
| style="vertical-align:top; padding:10px;" | Plays the current boarding or background ambience so you can confirm the selected sound and its level.
|}


The page is built around one simple rule:
=== Controller and Hot-Key Setup ===


<div style="border-left:5px solid #f59e0b; background:#fffbeb; padding:12px 15px; margin:0 0 20px 0; border-radius:8px; color:#78350f;">
Use this area to assign a joystick button, yoke button, or keyboard key to a specific FSFO action.
'''FSFO controls when an announcement or reply is used.''' Your selected crew mode controls '''how it sounds'''.
</div>


That means:
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Controller
| style="vertical-align:top; padding:10px;" | Selects the controller or input device FSFO should read from while you are assigning or reviewing bindings.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Action
| style="vertical-align:top; padding:10px;" | Selects which FSFO function you are binding. Current actions include:
<ul style="margin:6px 0 0 18px;">
<li><b>PTT</b> - Push-to-talk. If Open Mic is off, this temporarily opens speech recognition while held. If Open Mic is on, it works more like a hold-to-mute input.</li>
<li><b>MUTE</b> - Toggles speech recognition on or off.</li>
<li><b>BYPASS</b> - Skips a wait state or bypasses the next required checklist or flow hold.</li>
<li><b>PAUSE</b> - Pauses FSFO actions until toggled again.</li>
<li><b>MIN</b> - Minimizes or restores the FSFO main window.</li>
<li><b>ACTION</b> - Starts the currently available checklist or flow action.</li>
<li><b>COPILOT PLANE</b> - Triggers the "Your Plane" request so the copilot can take control when supported.</li>
<li><b>PUSHBACK LEFT</b> - Requests pushback with the nose turning left.</li>
<li><b>PUSHBACK RIGHT</b> - Requests pushback with the nose turning right.</li>
<li><b>PUSHBACK STRAIGHT</b> - Requests straight pushback.</li>
<li><b>PUSHBACK STOP</b> - Stops the current pushback.</li>
<li><b>PUSHBACK ABORT</b> - Cancels the pushback entirely.</li>
</ul>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | GUID
| style="vertical-align:top; padding:10px;" | Displays the unique device identifier for the selected controller. This is mainly for confirming which hardware FSFO is seeing.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | INPUT
| style="vertical-align:top; padding:10px;" | Shows the currently assigned button or key for the selected action.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | SET
| style="vertical-align:top; padding:10px;" | Starts listening for the next key press or button press so a new binding can be assigned.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | CLEAR
| style="vertical-align:top; padding:10px;" | Removes the current binding for the selected action.
|}


* '''Static Crew''' uses built-in WAV files.
=== Support and Maintenance Buttons ===
* '''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:
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | TRAIN SPEECH
| style="vertical-align:top; padding:10px;" | Opens the Windows speech-training workflow so you can improve recognition quality.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | GET HELP
| style="vertical-align:top; padding:10px;" | Opens FSFO help or support resources from the Settings page.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | CHECK FOR UPDATE
| style="vertical-align:top; padding:10px;" | Manually checks whether a newer FSFO version is available.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | DELETE
| style="vertical-align:top; padding:10px;" | Deletes the saved controller-assignment configuration so you can rebuild bindings from scratch.
|}


* Automatic cabin announcements.
== SOP ==
* Manual preview playback.
* Cabin replies to flight-deck calls.
* Flight-deck replies to cabin crew calls.


== Crew Modes ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


At the top of the page, click one of the three mode cards to choose how cabin announcements and interphone responses should be generated.
This section controls the standard operating thresholds FSFO uses during takeoff, climb, descent, approach, and landing. Most altitude values can be set to zero to disable that specific automation.


<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Announcements_ModeCards.png|1100px|frameless]]
[[File:FSFO_Settings_SOP.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The three crew mode cards at the top of the Cabin Crew Announcements page.</div>
<div style="font-size:90%; color:#64748b; margin-top:7px;">The SOP section of the FSFO Settings window.</div>
</div>
</div>


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:190px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Mode
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="width:230px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Card text
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Behavior
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Acceleration (AGL)
| style="vertical-align:top; padding:10px;" | Altitude above ground where the copilot calls "Acceleration Altitude." This is often used as a visual or procedural cue during the initial climb.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Landing Lights (MSL)
| style="vertical-align:top; padding:10px;" | Mean-sea-level altitude where FSFO manages landing lights. This lets you align light usage with your preferred transition altitude.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Engage VNAV (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot engages vertical navigation, when supported by the aircraft.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Engage LNAV (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot engages lateral navigation, when supported by the aircraft.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Engage AP (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot engages the autopilot.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Engage APPR (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot engages approach mode during landing.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Disconnect AT (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot disconnects autothrottle during landing.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Disconnect AP (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot disconnects the autopilot during landing.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Extend Gear (AGL)
| style="vertical-align:top; padding:10px;" | Above-ground altitude where the copilot extends the landing gear during approach and landing.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Min Flap Extension (AGL)
| style="vertical-align:top; padding:10px;" | Lowest above-ground altitude where the copilot is allowed to extend flaps. This can be used to prevent very early flap deployment.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ground Speed Warn (MPH)
| style="vertical-align:top; padding:10px;" | Speed threshold used for ground-speed warnings while taxiing or rolling on the ground.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Stabilized Call (N1)
| style="vertical-align:top; padding:10px;" | N1 percentage where the copilot calls "Stabilized." This is mainly used during takeoff thrust application.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Flow Pause (sec)
| style="vertical-align:top; padding:10px;" | Controls the delay FSFO uses between flow actions. Larger values make flows feel slower and more deliberate.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Checklist Pause (sec)
| style="vertical-align:top; padding:10px;" | Controls the pause between checklist items or responses.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Checklist Repeat (sec)
| style="vertical-align:top; padding:10px;" | Controls how long FSFO waits before repeating a checklist prompt when a response or matching aircraft state is still missing.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Passing Call (MSL)
| style="vertical-align:top; padding:10px;" | Mean-sea-level altitude used for "Passing" callouts during climb or descent.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Couple Taxi Lndg Lights
| style="vertical-align:top; padding:10px;" | Ties taxi-light behavior to landing-light behavior so they move together automatically.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Couple Wing Logo Lights
| style="vertical-align:top; padding:10px;" | Ties wing-light behavior to logo-light behavior.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Manage Grnd Lights
| style="vertical-align:top; padding:10px;" | Lets the copilot manage ground-light logic automatically, including combinations involving NAV, beacon, taxi, landing, strobe, and wing lights.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Eng Start
| style="vertical-align:top; padding:10px;" | Defines how many engines must be running before FSFO considers the aircraft ready to transition from preflight toward taxi-out. On multi-engine aircraft, this can change when flows continue automatically.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Battery Equals Turn Around
| style="vertical-align:top; padding:10px;" | If the aircraft is already powered when FSFO connects, the flight is treated more like a turnaround than a cold-and-dark startup.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Music
| style="vertical-align:top; padding:10px;" | Selects the boarding-music file or theme used by FSFO.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Safety Message
| style="vertical-align:top; padding:10px;" | Selects the safety-message file or theme used by FSFO.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Static Crew
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Flaps Call
| style="vertical-align:top; padding:10px;" | Play pre-recorded WAV files from your selected voice pack.
| style="vertical-align:top; padding:10px;" | Controls how flap callouts are spoken. Depending on the selected option, FSFO can call the flap setting itself, the speed check, or both.
| style="vertical-align:top; padding:10px;" | 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.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | TTS Crew
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | VSpeed Call
| style="vertical-align:top; padding:10px;" | Use your custom messages spoken by a Windows voice.
| style="vertical-align:top; padding:10px;" | Controls how takeoff V-speed callouts are handled, such as none, full V1-and-Rotate behavior, or reduced callout behavior.
| style="vertical-align:top; padding:10px;" | Uses the editable text you define for each announcement or response and plays it with the selected SAPI voice.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | AI Cabin Crew
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Note
| style="vertical-align:top; padding:10px;" | Generate dynamic announcements with ChatGPT / OpenAI.
| style="vertical-align:top; padding:10px;" | Most threshold values in this section can be set to '''0''' to disable that specific automation or callout.
| style="vertical-align:top; padding:10px;" | 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:
== Crew Options ==
 
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
This section controls what the copilot, captain, and cabin crew are allowed to say or do automatically.
 
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Settings_Crew.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The Crew Options section of the FSFO Settings window.</div>
</div>
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Attendant Messages
| style="vertical-align:top; padding:10px;" | Enables flight attendant cabin announcements such as boarding complete, cabin-ready reminders, descent stowage reminders, and deboarding completion.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pilot Messages
| style="vertical-align:top; padding:10px;" | Enables first officer or pilot-facing passenger messages such as taxi-out welcome, cruise announcements, and descent announcements.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Apply Brakes
| style="vertical-align:top; padding:10px;" | Allows the copilot to apply braking during supported situations.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Set Landing Gear
| style="vertical-align:top; padding:10px;" | Allows the copilot to raise and lower the landing gear automatically when required by flows or flight logic.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Set Flaps
| style="vertical-align:top; padding:10px;" | Allows the copilot to retract and extend flaps automatically when required by flows or flight logic.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Set Altimeter
| style="vertical-align:top; padding:10px;" | Allows the copilot to set standard or local pressure during the flight.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Set Seatbelts
| style="vertical-align:top; padding:10px;" | Allows the copilot to manage the seatbelt sign automatically.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Set Ctr Fuel Tanks
| style="vertical-align:top; padding:10px;" | Allows the copilot to manage center-tank fuel logic where supported.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Set Lights
| style="vertical-align:top; padding:10px;" | Allows the copilot to manage lighting changes tied to the current phase of flight.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Repeat Readback
| style="vertical-align:top; padding:10px;" | Makes the copilot repeat values heard in voice commands, which is helpful for catching recognition mistakes.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Confirm Checklist Item
| style="vertical-align:top; padding:10px;" | During voice-driven checklists, the copilot checks whether the requested aircraft state is actually set and prompts again if it is not.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | First Ofcr Handles Intercom
| style="vertical-align:top; padding:10px;" | Lets the first officer handle intercom-related prompts automatically instead of requiring the captain to respond manually.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Missed Checklist
| style="vertical-align:top; padding:10px;" | Warns you if FSFO believes an expected checklist was skipped.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Roll Phrases
| style="vertical-align:top; padding:10px;" | Enables takeoff-roll and landing-roll phraseology such as thrust-set, speed checks, and rollout callouts.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Captain Callouts
| style="vertical-align:top; padding:10px;" | When the copilot is flying the takeoff, this enables the captain-side callouts and responses as part of the exchange.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call 400 Feet
| style="vertical-align:top; padding:10px;" | Adds the 400-foot callout during climb.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Minimums
| style="vertical-align:top; padding:10px;" | Enables minimums callouts on approach.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Glideslope Alive
| style="vertical-align:top; padding:10px;" | Enables "glideslope alive" and "glideslope captured" callouts during approach.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call System Changes
| style="vertical-align:top; padding:10px;" | Makes the copilot announce important system changes such as gear, flaps, autopilot, autothrottle, and related mode changes.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Reserved
| style="vertical-align:top; padding:10px;" | Reserved for future use.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Engine Start
| style="vertical-align:top; padding:10px;" | Enables engine-start callouts during the start sequence.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Warnings
| style="vertical-align:top; padding:10px;" | Enables spoken warnings where supported by FSFO.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Auto Inflight Services
| style="vertical-align:top; padding:10px;" | Allows cabin service to run automatically on qualifying passenger flights.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Press Takeoff Screw/AutoFlt
| style="vertical-align:top; padding:10px;" | Allows FSFO to press the PMDG takeoff screw or the TFDi MD-11 Auto Flight button when the aircraft and checklist state support it.
|}


* The '''Preview''' buttons start using that mode immediately.
== Cabin Crew Announcements ==
* 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 ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


The main table is the Announcement List. It shows the built-in announcement rows plus one optional custom announcement row.
This section documents the dedicated Cabin Crew Announcements page. It controls passenger announcements, interphone replies, crew voice mode, automatic trigger timing, and OpenAI-based AI cabin crew features.
 
<div style="border-left:5px solid #2563eb; background:#eff6ff; padding:12px 15px; margin:0 0 18px 0; border-radius:8px; color:#172554;">
'''Important:''' FSFO controls '''when''' an announcement or reply is used. Your selected crew mode controls '''how it sounds'''. Static uses WAV files, TTS uses a Windows SAPI voice, and AI uses your OpenAI API key plus the AI settings on this page.
</div>
 
=== Page Overview ===
 
The Cabin Crew Announcements page controls:
 
* Passenger-facing cabin announcements.
* Cabin replies to flight-deck calls.
* Flight-deck replies back to cabin crew calls.
* Custom announcement content for Static, TTS, and AI users.
* OpenAI setup and AI tuning options for dynamic cabin speech.


<div style="clear:both; margin:18px 0 20px 0; text-align:center;">
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Announcements.png|520px|frameless]]
[[File:FSFO_Announcements.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The top-right controls switch between Announcements and Responses or open the custom announcement editor.</div>
<div style="font-size:90%; color:#64748b; margin-top:7px;">The three crew-mode cards at the top of the Cabin Crew Announcements page.</div>
</div>
</div>


=== Top Controls ===
=== Crew Modes ===


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:220px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Control
! style="width:190px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Mode
! style="width:220px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Card text
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Enable All
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Static Crew
| style="vertical-align:top; padding:10px;" | Turns the overall attendant announcement system on or off without deleting your saved settings.
| style="vertical-align:top; padding:10px;" | Play pre-recorded WAV files
| style="vertical-align:top; padding:10px;" | Uses built-in WAV files for built-in announcements and built-in responses. For the custom announcement only, Static mode lets the user browse to a WAV file instead of typing TTS text.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Responses
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | TTS Crew
| style="vertical-align:top; padding:10px;" | Switches the table into the Responses view. When active, this button changes to '''Announcements''' so you can switch back.
| style="vertical-align:top; padding:10px;" | Use your custom messages spoken by a Windows voice
| style="vertical-align:top; padding:10px;" | Uses the saved TTS text for each announcement or response and plays it with the selected SAPI voice.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | + Add Announcement
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | AI Cabin Crew
| style="vertical-align:top; padding:10px;" | Opens the custom announcement editor so you can create the single optional custom announcement row.
| style="vertical-align:top; padding:10px;" | Generate dynamic announcements with ChatGPT / OpenAI
| style="vertical-align:top; padding:10px;" | Uses the saved AI prompt, AI style, voice output, creativity, message length, and global prompt settings to generate dynamic spoken announcements and interphone replies.
|}
|}


When the Responses view is active:
When you switch crew modes:
 
* Preview buttons immediately use that mode.
* The Edit panel changes to match that mode.
* The Responses page follows that same mode.
* Flight-deck answers stay consistent with the selected announcement mode, so replies sound like the same system the user chose.
 
=== Announcement List ===
 
The main data grid is the Announcement List. It contains the built-in announcement rows plus one optional custom announcement row.
 
<div style="clear:both; margin:18px 0 20px 0; text-align:center;">
[[File:FSFO_Announcements_Responses.png|520px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The top-right controls switch between Announcements and Responses or open the custom announcement editor.</div>
</div>


* The announcement header is hidden.
The top controls are:
* The response header is shown.
* '''Enable All''' is hidden.
* '''+ Add Announcement''' is hidden.


=== Table Columns ===
* '''Enable All''' - turns the attendant announcement system on or off without deleting row settings.
* '''Responses''' - switches the data grid from announcement rows to response rows. When active, this button changes to '''Announcements'''.
* '''+ Add Announcement''' - opens the custom announcement editor.


In Announcement view, the columns are:
The announcement grid columns are:


* '''#''' - display order.
* '''#''' - display order.
Line 126: Line 437:
* '''Trigger''' - current trigger selection.
* '''Trigger''' - current trigger selection.
* '''Delay''' - delay before playback.
* '''Delay''' - delay before playback.
* '''Segment''' - the flight segment used by the automatic trigger system.
* '''Segment''' - the flight segment used for trigger logic.
* '''Conditions''' - operational note or phase reminder.
* '''Conditions''' - operational note or phase reminder.
* '''Status / Actions''' - row checkbox plus Preview, Trigger, and Edit buttons.
* '''Status / Actions''' - row checkbox plus Preview, Trigger, and Edit buttons.


=== Row Actions ===
The row actions are:


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
* '''Row checkbox''' - enables or disables that announcement.
! style="width:220px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Action
* '''Preview''' - plays a preview using the current crew mode.
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
* '''Trigger''' - opens the trigger editor for that row.
|-
* '''Edit''' - opens the content editor. In Static mode, only the custom announcement switches to a WAV browser; built-in static rows still use their stock WAV files.
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Row checkbox
| style="vertical-align:top; padding:10px;" | Enables or disables that individual announcement row.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Preview
| style="vertical-align:top; padding:10px;" | Plays a preview using the current crew mode.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Trigger
| style="vertical-align:top; padding:10px;" | Opens the Trigger Editor for that row. Clicking the trigger icon again after editing saves the trigger and closes the editor.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Edit
| style="vertical-align:top; padding:10px;" | 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 ===
=== Built-In Announcement Rows ===
The current built-in announcement set is:


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:40px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | #
! style="width:40px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | #
! style="width:220px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Announcement
! style="width:210px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Announcement
! style="width:120px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default Segment
! style="width:120px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default Segment
! style="width:170px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default Trigger
! style="width:170px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default Trigger
Line 166: Line 463:
| style="padding:10px;" | Boarding Started
| style="padding:10px;" | Boarding Started
| style="padding:10px;" | 00:45
| style="padding:10px;" | 00:45
| style="padding:10px;" | Initial welcome once boarding begins.
| style="padding:10px;" | Welcome passengers once boarding begins.
|-
|-
| style="padding:10px; background:#f8fafc;" | 2
| style="padding:10px; background:#f8fafc;" | 2
Line 173: Line 470:
| style="padding:10px;" | Boarding Complete
| style="padding:10px;" | Boarding Complete
| style="padding:10px;" | 00:05
| style="padding:10px;" | 00:05
| style="padding:10px;" | Final boarding completion announcement.
| style="padding:10px;" | Final boarding-complete style cabin message.
|-
|-
| style="padding:10px; background:#f8fafc;" | 3
| style="padding:10px; background:#f8fafc;" | 3
Line 187: Line 484:
| style="padding:10px;" | Doors Closed
| style="padding:10px;" | Doors Closed
| style="padding:10px;" | 00:40
| style="padding:10px;" | 00:40
| style="padding:10px;" | Directs passenger attention to the safety demo.
| style="padding:10px;" | Safety demonstration introduction.
|-
|-
| style="padding:10px; background:#f8fafc;" | 5
| style="padding:10px; background:#f8fafc;" | 5
Line 194: Line 491:
| style="padding:10px;" | Service Started
| style="padding:10px;" | Service Started
| style="padding:10px;" | 00:00
| style="padding:10px;" | 00:00
| style="padding:10px;" | Announces start of cabin service.
| style="padding:10px;" | Announces the start of cabin service.
|-
|-
| style="padding:10px; background:#f8fafc;" | 6
| style="padding:10px; background:#f8fafc;" | 6
Line 201: Line 498:
| style="padding:10px;" | Start of Descent
| style="padding:10px;" | Start of Descent
| style="padding:10px;" | 00:00
| style="padding:10px;" | 00:00
| style="padding:10px;" | Descent and arrival preparation call.
| style="padding:10px;" | Descent and arrival-preparation call.
|-
|-
| style="padding:10px; background:#f8fafc;" | 7
| style="padding:10px; background:#f8fafc;" | 7
Line 208: Line 505:
| style="padding:10px;" | Below 10,000 ft
| style="padding:10px;" | Below 10,000 ft
| style="padding:10px;" | 00:20
| style="padding:10px;" | 00:20
| style="padding:10px;" | Final cabin secure reminder before landing.
| style="padding:10px;" | Final cabin-secure reminder before landing.
|-
|-
| style="padding:10px; background:#f8fafc;" | 8
| style="padding:10px; background:#f8fafc;" | 8
Line 223: Line 520:
| style="padding:10px;" | 00:05
| style="padding:10px;" | 00:05
| style="padding:10px;" | Doors disarmed and cross-check complete.
| style="padding:10px;" | Doors disarmed and cross-check complete.
|-
| style="padding:10px; background:#f8fafc;" | 10
| style="padding:10px;" | Custom Announcement
| style="padding:10px;" | All
| style="padding:10px;" | Boarding Started
| style="padding:10px;" | 00:10
| style="padding:10px;" | User-defined row that appears only after a custom announcement name is saved.
|}
|}


=== Custom Announcement Row ===
=== Trigger Editor ===
 
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 ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
Click the '''Trigger''' button on any announcement row to open the Trigger Editor card.


The Trigger Editor contains:
The trigger editor is opened with the '''Trigger''' button on an announcement row. It contains:


* '''Trigger Point''' - the automatic event to watch for.
* '''Trigger Point''' - the automatic event to watch for.
* '''Delay''' - the delay before playback.
* '''Delay''' - the delay before playback.
* '''Selected Trigger''' - a preview of the currently selected trigger.
* '''Selected Trigger''' - a readback preview of the selected trigger.
 
If a row is manual-only, the Trigger Point box is disabled and shows '''Manual Only'''.


=== Available Trigger Segments ===
If a row is manual-only, the trigger selector is disabled and shows '''Manual Only'''.


FSFO uses these automatic trigger segments:
The available flight segments are:


* Preflight
* Preflight
Line 262: Line 553:
* All
* All


'''All''' does not have automatic triggers. On the custom announcement, that effectively means '''Manual Only''' until you choose a segment that supports triggers.
General trigger availability by segment:
 
=== Segment-Based Trigger Matrix ===


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
Line 295: Line 584:
|}
|}


=== Special Trigger Rules ===
Special trigger notes:


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
* '''Service Start''' only supports '''Service Started'''.
! style="width:250px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Row
* '''Cabin Secure for Landing''' supports the full approach trigger set from '''Below 15,000 ft''' through '''Below 5,000 ft''' plus '''Landing Lights On'''.
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Special behavior
* '''Arrival Welcome''' supports '''Runway Exit''', '''Landing Lights Off''', '''Ground Speed Below 45 MPH''', and '''Ground Speed Below 20 MPH'''.
|-
* '''Doors Disarmed''' supports '''Beacon Off''', '''Taxi Off''', '''Engines Off''', and '''Doors Open'''. The default is '''Engines Off'''.
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Service Start
* If the custom announcement is left on the '''All''' segment, it has no automatic trigger list and behaves as '''Manual Only''' until the segment is changed.
| style="vertical-align:top; padding:10px;" | Only supports '''Service Started'''.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cabin Secure for Landing
| style="vertical-align:top; padding:10px;" | Supports the full approach/final altitude set from '''Below 15,000 ft''' through '''Below 5,000 ft''', plus '''Landing Lights On'''.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Arrival Welcome
| style="vertical-align:top; padding:10px;" | Supports '''Runway Exit''', '''Landing Lights Off''', '''Ground Speed Below 45 MPH''', and '''Ground Speed Below 20 MPH'''.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Doors Disarmed
| style="vertical-align:top; padding:10px;" | Uses a dedicated trigger set: '''Beacon Off''', '''Taxi Off''', '''Engines Off''', or '''Doors Open'''. The default is '''Engines Off'''.
|}
 
== Responses ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
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:
=== Responses ===


* Cabin replies.
The '''Responses''' button switches the grid from passenger announcements to interphone response definitions. These responses are used when:
* Flight-deck replies.


=== Response View Columns ===
* The comm panel asks the cabin or the flight deck a question.
* The user presses a related button in the communications panel.
* A supported voice-command workflow triggers an interphone exchange.


In Responses view, the grid shows:
In Responses view, the columns are:


* '''#''' - display order.
* '''#''' - display order.
* '''Flight Deck Command''' - the call or statement that triggered the response.
* '''Flight Deck Command''' - the call or statement that triggered the response.
* '''Response''' - the response type.
* '''Response''' - the response type.
* '''Outcome''' - the branch or result, such as Approved, Standby, Ready, or Not Ready.
* '''Outcome''' - branch or result such as Approved, Standby, Ready, or Not Ready.
* '''Static WAV''' - the built-in static WAV used in Static mode.
* '''Static WAV''' - the built-in static WAV for Static mode.
* '''Actions''' - Preview and Edit.
* '''Actions''' - Preview and Edit.


=== Cabin Replies To Flight Deck Calls ===
Static, TTS, and AI response behavior:
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:40px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | #
! style="width:260px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Flight Deck Command
! style="width:170px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Response
! style="width:120px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Outcome
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Static WAV
|-
| style="padding:10px; background:#f8fafc;" | 1
| style="padding:10px;" | Is boarding complete?
| style="padding:10px;" | Boarding Complete
| style="padding:10px;" | Complete
| style="padding:10px;" | Crew\Boarding_Completed.wav
|-
| style="padding:10px; background:#f8fafc;" | 2
| style="padding:10px;" | Is boarding complete?
| style="padding:10px;" | Boarding Complete
| style="padding:10px;" | Still In Progress
| style="padding:10px;" | Crew\Boarding_NotCompleted.wav
|-
| style="padding:10px; background:#f8fafc;" | 3
| style="padding:10px;" | You're cleared to start boarding.
| style="padding:10px;" | Start Boarding
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Start_Boarding1.wav
|-
| style="padding:10px; background:#f8fafc;" | 4
| style="padding:10px;" | Cabin ready for takeoff?
| style="padding:10px;" | Ready for Takeoff
| style="padding:10px;" | Ready
| style="padding:10px;" | Crew\Rdy_Takeoff1.wav
|-
| style="padding:10px; background:#f8fafc;" | 5
| style="padding:10px;" | Cabin ready for takeoff?
| style="padding:10px;" | Ready for Takeoff
| style="padding:10px;" | Not Ready
| style="padding:10px;" | Crew\Not_Rdy_Takeoff1.wav
|-
| style="padding:10px; background:#f8fafc;" | 6
| style="padding:10px;" | You may leave your seats.
| style="padding:10px;" | Release Seats
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Cabin_Crew_Released_Ack.wav
|-
| style="padding:10px; background:#f8fafc;" | 7
| style="padding:10px;" | You may begin cabin service.
| style="padding:10px;" | Cabin Service
| style="padding:10px;" | Starting
| style="padding:10px;" | Crew\Cabin_Service_Starting.wav
|-
| style="padding:10px; background:#f8fafc;" | 8
| style="padding:10px;" | We have turbulence ahead.
| style="padding:10px;" | Turbulence Ahead
| style="padding:10px;" | Cabin Securing
| style="padding:10px;" | Crew\Turbulence1.wav
|-
| style="padding:10px; background:#f8fafc;" | 9
| style="padding:10px;" | We are delayed.
| style="padding:10px;" | Delay Advisory
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Delayed1.wav
|-
| style="padding:10px; background:#f8fafc;" | 10
| style="padding:10px;" | We have cleared the turbulence.
| style="padding:10px;" | Turbulence Cleared
| style="padding:10px;" | Resuming Service
| style="padding:10px;" | Crew\Turbulence_Cleared1.wav
|-
| style="padding:10px; background:#f8fafc;" | 11
| style="padding:10px;" | Prepare the cabin for landing.
| style="padding:10px;" | Prepare for Landing
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Yes1.wav
|-
| style="padding:10px; background:#f8fafc;" | 12
| style="padding:10px;" | Prepare the cabin for takeoff.
| style="padding:10px;" | Prepare for Takeoff
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Yes1.wav
|-
| style="padding:10px; background:#f8fafc;" | 13
| style="padding:10px;" | Cabin ready for landing?
| style="padding:10px;" | Ready for Landing
| style="padding:10px;" | Ready
| style="padding:10px;" | Crew\Rdy_Landing1.wav
|-
| style="padding:10px; background:#f8fafc;" | 14
| style="padding:10px;" | Cabin ready for landing?
| style="padding:10px;" | Ready for Landing
| style="padding:10px;" | Not Ready
| style="padding:10px;" | Crew\Not_Rdy_Landing1.wav
|-
| style="padding:10px; background:#f8fafc;" | 15
| style="padding:10px;" | Would you mind bringing me a cup of coffee?
| style="padding:10px;" | Coffee Request
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Yes1.wav
|-
| style="padding:10px; background:#f8fafc;" | 16
| style="padding:10px;" | Would you mind covering so I can use the restroom?
| style="padding:10px;" | Cockpit Door Cover
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Crew\Yes1.wav
|}
 
=== Flight-Deck Replies To Cabin Calls ===


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
* '''Static Crew''' uses the listed built-in WAV.
! style="width:40px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | #
* '''TTS Crew''' speaks the configured response text with the cabin TTS voice.
! style="width:300px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Cabin Crew Call
* '''AI Cabin Crew''' generates the reply from the configured AI prompt using the AI settings on this page.
! style="width:170px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Response
! style="width:120px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Outcome
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Static WAV
|-
| style="padding:10px; background:#f8fafc;" | 17
| style="padding:10px;" | Flight deck, this is the cabin crew. Is it okay to start boarding passengers?
| style="padding:10px;" | Boarding Request
| style="padding:10px;" | Approved
| style="padding:10px;" | Capt\Yes1.wav
|-
| style="padding:10px; background:#f8fafc;" | 18
| style="padding:10px;" | Flight deck, this is the cabin crew. Is it okay to start boarding passengers?
| style="padding:10px;" | Boarding Request
| style="padding:10px;" | Standby
| style="padding:10px;" | Capt\Not_Yet.wav
|-
| style="padding:10px; background:#f8fafc;" | 19
| style="padding:10px;" | All passengers have boarded. I'll bring the manifest to the cockpit once we get everyone seated.
| style="padding:10px;" | Boarding Complete
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Capt\Acknowledged1.wav
|-
| style="padding:10px; background:#f8fafc;" | 20
| style="padding:10px;" | Flight deck, this is the cabin crew. Is it okay to start deboarding the passengers?
| style="padding:10px;" | Deboarding Request
| style="padding:10px;" | Approved
| style="padding:10px;" | Capt\Yes1.wav
|-
| style="padding:10px; background:#f8fafc;" | 21
| style="padding:10px;" | Flight deck, this is the cabin crew. Is it okay to start deboarding the passengers?
| style="padding:10px;" | Deboarding Request
| style="padding:10px;" | Standby
| style="padding:10px;" | Capt\Not_Yet.wav
|-
| style="padding:10px; background:#f8fafc;" | 22
| style="padding:10px;" | Cabin secure and all crew seated; ready for takeoff.
| style="padding:10px;" | Ready for Takeoff Call
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Capt\Acknowledged1.wav
|-
| style="padding:10px; background:#f8fafc;" | 23
| style="padding:10px;" | Cabin secure and equipment stowed; ready for landing.
| style="padding:10px;" | Ready for Landing Call
| style="padding:10px;" | Acknowledged
| style="padding:10px;" | Capt\Acknowledged1.wav
|-
| style="padding:10px; background:#f8fafc;" | 24
| style="padding:10px;" | Captain, you good if we start cabin service now?
| style="padding:10px;" | Cabin Service Request
| style="padding:10px;" | Approved
| style="padding:10px;" | Capt\Yes1.wav
|-
| style="padding:10px; background:#f8fafc;" | 25
| style="padding:10px;" | Captain, you good if we start cabin service now?
| style="padding:10px;" | Cabin Service Request
| style="padding:10px;" | Standby
| style="padding:10px;" | Capt\Not_Yet.wav
|}


=== Editing Responses ===
Common cabin response types include:


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.
* Boarding Complete / Still In Progress
* Start Boarding acknowledged
* Ready for Takeoff / Not Ready
* Release Seats acknowledged
* Cabin Service starting
* Turbulence Ahead secured
* Delay Advisory acknowledged
* Turbulence Cleared / Resuming Service
* Prepare for Landing acknowledged
* Prepare for Takeoff acknowledged
* Ready for Landing / Not Ready
* Coffee Request acknowledged
* Cockpit Door Cover acknowledged


Important response notes:
Common flight-deck response types include:


* In '''Static Crew''', built-in responses keep using their fixed built-in WAV files.
* Boarding Request approved or standby
* In '''TTS Crew''', the response text is what gets spoken.
* Boarding Complete acknowledged
* In '''AI Cabin Crew''', the response prompt is what gets sent to OpenAI.
* Deboarding Request approved or standby
* The not-ready responses support the placeholder '''{status_reason}'''.
* Ready for Takeoff Call acknowledged
* '''{response_reason}''' is also accepted anywhere a reason placeholder is needed.
* Ready for Landing Call acknowledged
* Cabin Service Request approved or standby


== Custom Announcements ==
Response-specific placeholders:
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


Use '''+ Add Announcement''' to create or update the single custom announcement slot.
* '''{status_reason}''' - reason for a not-ready or delayed response.
* '''{response_reason}''' - alternate reason placeholder accepted by the response system.


<div style="border-left:5px solid #0ea5e9; background:#eff6ff; padding:12px 15px; margin:0 0 18px 0; border-radius:8px; color:#0c4a6e;">
=== Custom Announcements ===
'''Note:''' The custom announcement row stays hidden until an announcement name is saved.
</div>


=== Custom Announcement Editor Fields ===
The '''+ Add Announcement''' button opens the custom announcement editor. The custom row remains hidden until an announcement name is saved.


The custom editor contains these fields:
The custom editor fields are:


* '''Announcement Name''' - required. If blank, the row is not created.
* '''Announcement Name''' - required.
* '''Trigger''' - the selected automatic trigger for the chosen segment.
* '''Trigger''' - automatic trigger for the selected segment.
* '''Delay''' - playback delay, such as 00:10.
* '''Delay''' - playback delay such as 00:10.
* '''Segment''' - the flight segment used to determine available triggers.
* '''Segment''' - determines which automatic triggers are available.
* '''Conditions''' - free-form note shown in the grid.
* '''Conditions''' - free-form note shown in the grid.
* '''Save Announcement''' - saves the row and shows it in the list.
* '''Save Announcement''' - saves the row and reveals it in the list.
* '''Cancel''' - closes the editor without saving.
* '''Cancel''' - closes the editor without saving.


=== Important Custom Announcement Behavior ===
Important custom-announcement behavior:


* The Segment selection controls which triggers are available.
* Only one custom announcement entry is currently supported.
* If the selected Segment does not support automatic triggers, the custom announcement becomes '''Manual Only'''.
* The selected segment controls whether automatic triggers are available.
* The custom row stores its own name, trigger, delay, segment, conditions, text, AI prompt, enabled state, and optional static WAV path.
* The custom row stores its own name, segment, trigger, delay, 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.
* After saving the row, use the pencil icon to edit the actual content.


== Content Editor ==
=== Content Editing By Mode ===
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


The Content Editor card opens when you click '''Edit''' on an announcement or response row.
The Edit panel changes based on the crew mode and the item being edited.
 
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:
In '''TTS Crew''' mode:


* The title becomes '''TTS Message: <name>'''.
* The title becomes a TTS message editor.
* The field label is '''TTS Message'''.
* The user edits the exact message that FSFO will speak.
* The preview box shows the resolved message text.
* This works for both announcements and response rows.
* Built-in announcements and built-in responses both use editable text.
 
=== AI Mode ===


In '''AI Cabin Crew''' mode:
In '''AI Cabin Crew''' mode:


* The title becomes '''AI Prompt: <name>'''.
* The title becomes an AI prompt editor.
* The field label is '''AI Prompt'''.
* The user edits the prompt that FSFO sends to OpenAI.
* The preview box shows the resolved prompt text.
* This works for both announcements and response rows.
* 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:
In '''Static Crew''' mode:


* The title becomes '''Static WAV: <name>'''.
* Built-in announcements and built-in responses continue using their stock WAV files.
* The field label becomes '''Static WAV File'''.
* The '''custom announcement''' switches to a WAV-path editor with a '''Browse WAV...''' button.
* The editor shows a '''Browse WAV...''' button.
* The preview box shows the selected WAV file path for that custom row.
* 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 ===
Common placeholders supported in TTS messages and AI prompts:
 
Standard announcement placeholders include:


* '''{airline}'''
* '''{airline}'''
Line 614: Line 702:
* '''{local_time}'''
* '''{local_time}'''


Response-specific placeholders also include:
=== Static, AI, and TTS Settings ===
 
* '''{status_reason}'''
* '''{response_reason}'''
 
== Lower Settings Cards ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
The lower half of the page contains three settings cards plus a small note about OpenAI billing.


<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Announcements_CrewSettings.png|1100px|frameless]]
[[File:Attendant.png|frameless|1036x1036px]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The Static Crew Settings, AI Cabin Crew Settings, and TTS Crew Settings cards.</div>
<div style="font-size:90%; color:#64748b; margin-top:7px;">The lower Static Crew Settings, AI Cabin Crew Settings, and TTS Crew Settings cards.</div>
</div>
</div>


=== Static Crew Settings ===
'''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 ===
* '''Voice Pack Region''' - which regional static voice pack is used.


The AI Cabin Crew Settings card contains:
'''AI Cabin Crew Settings'''


* '''OpenAI API Key''' - the stored API key used by FSFO.
* '''OpenAI API Key''' - stored API key for FSFO AI cabin speech.
* '''Test Key''' - checks that the API key works.
* '''Test Key''' - verifies the key works.
* '''Show Key / Hide Key''' - toggles key visibility.
* '''Show Key / Hide Key''' - toggles key visibility.
* '''AI Style''' - currently includes Professional Airline, Warm and Friendly, and Premium International.
* '''AI Style''' - tone preset such as Professional Airline, Warm and Friendly, or Premium International.
* '''Voice Output''' - chooses the AI voice output selection.
* '''Voice Output''' - selected AI voice output or SAPI voice output.
* '''Creativity''' - numeric value from 0 to 1.
* '''AI Speech Pace''' - speed at which the voice will be played.
* '''Message Length''' - currently includes Short (up to 60 words), Normal (up to 90 words), and Extended (up to 120 words).
* '''AI Output Language''' - Built-in AI announcements follow this language. Custom AI announcements use the language you type
* '''Global AI Prompt''' - a reusable instruction applied to all AI-generated cabin content.
* '''Creativity''' - numeric creativity value from 0 to 1.
* '''Cache generated audio''' - reuses generated audio when enabled.
* '''Message Length''' - Short, Normal, or Extended.
* '''Fallback to Static Crew if AI fails''' - automatically falls back to Static Crew if AI generation fails.
* '''Global AI Prompt''' - shared instruction applied to all AI-generated cabin content.
* '''Cache generated audio''' - reuses the AI-generated announcement text for the current flight so FSFO does not need to regenerate the same automatic AI announcement every time that event is encountered again during that flight session. Clears when start a new flight.  
* '''Fallback to Static Crew if AI fails''' - uses static audio if AI generation fails.


=== TTS Crew Settings ===
'''TTS Crew Settings'''
 
The TTS Crew Settings card contains:


* '''TTS Voice''' - the Windows SAPI voice used for cabin announcements and responses.
* '''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:
<div style="border-left:5px solid #8b5cf6; background:#f5f3ff; padding:12px 15px; margin:0 0 18px 0; border-radius:8px; color:#4c1d95;">
OpenAI API usage is billed separately by OpenAI and is not included with ChatGPT Plus or Pro.
</div>
== AI Cabin Crew Setup ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
The AI Cabin Crew feature requires an '''OpenAI API key'''. This is separate from a regular ChatGPT subscription.


<div style="border-left:5px solid #8b5cf6; background:#f5f3ff; padding:12px 15px; margin:0 0 18px 0; border-radius:8px; color:#4c1d95;">
=== AI Cabin Crew Setup ===
'''Important:''' ChatGPT Plus or Pro is '''not required''' for FSFO AI Cabin Crew. API billing is managed separately through the OpenAI Platform.
</div>


=== Step 1: Open the OpenAI Platform ===
FSFO AI Cabin Crew requires an '''OpenAI API key'''. ChatGPT Plus or Pro is '''not''' required. API usage is billed separately through the OpenAI Platform.


Go to:
Step 1: Open the OpenAI Platform


<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
Line 687: Line 742:
</div>
</div>


Sign in or create an OpenAI Platform account.
Step 2: Add billing or prepaid credits
 
=== Step 2: Add billing or prepaid credits ===
 
Open:


<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
Line 697: Line 748:
</div>
</div>


Then:
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 off.
 
* 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:
Step 3: Create an API key


<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
Line 716: Line 760:
# Click '''Create new secret key'''.
# Click '''Create new secret key'''.
# Give it a name such as '''FSFO AI Cabin Crew'''.
# Give it a name such as '''FSFO AI Cabin Crew'''.
# Leave the default project unless you intentionally use a different one.
# Leave the default project unless you intentionally use another one.
# Leave permissions at the default unless OpenAI specifically requires something else.
# Leave permissions at the default unless OpenAI specifically requires something else.
# Click '''Create secret key'''.
# Click '''Create secret key'''.
Line 724: Line 768:
</div>
</div>


Do not share your API key in:
Step 4: Add the key to FSFO
 
* Screenshots
* Discord posts
* Forums
* Public bug reports
* Email
 
=== Step 4: Add the key to FSFO ===
 
In FSFO:


# Open the Cabin Crew Announcements page.
# Open the Cabin Crew Announcements page.
Line 741: Line 775:
# Click '''Test Key'''.
# Click '''Test Key'''.


If the test succeeds, the AI system is ready.
Step 5: Finish configuration
 
=== Step 5: Finish your AI setup ===
 
After the key is working:


* Choose an '''AI Style'''.
* Choose an '''AI Style'''.
Line 751: Line 781:
* Adjust '''Creativity''' and '''Message Length''' if needed.
* Adjust '''Creativity''' and '''Message Length''' if needed.
* Add a '''Global AI Prompt''' if you want all AI announcements to share a consistent tone.
* 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.
* Edit individual announcement or response prompts as needed.


=== Suggested Starting Prompt Style ===
=== Best Practices ===


If you want a clean starting point, keep your AI prompts:
* Start with '''Static Crew''' if you want a zero-setup experience.
* Move to '''TTS Crew''' if you want full message control without API billing.
* Use '''AI Cabin Crew''' if you want the most flexible and dynamic wording.
* For later arrival timing, use '''Landing Lights Off''', '''Ground Speed Below 45 MPH''', or '''Ground Speed Below 20 MPH''' instead of '''Runway Exit'''.
* For a reliable post-arrival door-disarm message, '''Engines Off''' is usually the safest default.
* If a custom announcement shows '''Manual Only''', change its segment from '''All''' to a segment that supports automatic triggers.
* If a not-ready reply sounds incomplete, include '''{status_reason}''' in the response text or AI prompt.


* Professional
== General Options ==
* Concise
* Passenger-friendly
* Focused only on information that FSFO actually knows


This helps avoid invented weather, gate numbers, delays, or timings.
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


== Built-In Announcement Templates ==
This section contains behavior toggles, interface integrations, and quality-of-life options that do not fit cleanly into one of the more specialized sections.
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


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.
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Settings_Window_Overview.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The FSFO Settings window.</div>
</div>


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:180px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Announcement
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="width:180px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default Static WAV
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
! style="width:330px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default TTS text
|-
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default AI prompt
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Disable Gear/Flaps/Throttles
| style="vertical-align:top; padding:10px;" | Prevents speech-recognition commands from changing gear, flaps, or throttles.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Disable Radio Cmds
| style="vertical-align:top; padding:10px;" | Prevents speech-recognition commands from controlling radios or the transponder.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Disable Flap Calls
| style="vertical-align:top; padding:10px;" | Prevents flap-related callouts and flap-response behavior tied to manual flap changes.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Skip Eng Start (AutoFlow)
| style="vertical-align:top; padding:10px;" | Makes AutoFlow stop short of starting the engines so you can handle the engine start manually.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | GSX Interface
| style="vertical-align:top; padding:10px;" | Uses GSX rather than the default FSFO/MSFS service logic for supported ground services.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | SAY Intentions Interface
| style="vertical-align:top; padding:10px;" | Pauses FSFO activity during ATC interactions handled by Say Intentions.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Welcome
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open Door On Start
| style="vertical-align:top; padding:10px;" | <code>Crew\Boarding_Welcome1.wav</code>
| style="vertical-align:top; padding:10px;" | Opens the L1 door when FSFO first connects.
| style="vertical-align:top; padding:10px;" | <code>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.</code>
| style="vertical-align:top; padding:10px;" | <code>Welcome passengers aboard flight {flight_number} from {dep_city} to {arr_city}, and invite them to settle in for departure.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Complete Call
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Use FMC Vspeeds
| style="vertical-align:top; padding:10px;" | <code>Crew\Boarding_Completed.wav</code>
| style="vertical-align:top; padding:10px;" | Uses aircraft FMC V-speeds instead of SimBrief values when the aircraft supports that workflow.
| style="vertical-align:top; padding:10px;" | <code>Boarding is now complete. Please ensure your seatbelt is fastened and your larger electronic devices are stowed.</code>
| style="vertical-align:top; padding:10px;" | <code>Advise passengers that boarding is complete and remind them to settle in for departure.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Doors Armed
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Play Ding Before Msg
| style="vertical-align:top; padding:10px;" | <code>Crew\Arm_Doors.wav</code>
| style="vertical-align:top; padding:10px;" | Plays a cabin-style chime before announcements.
| style="vertical-align:top; padding:10px;" | <code>Cabin crew, doors armed and cross-check complete.</code>
| style="vertical-align:top; padding:10px;" | <code>Announce that the doors are armed and cross-check is complete in a short, professional cabin crew tone.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Departure Safety Briefing
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding/Cargo Sounds
| style="vertical-align:top; padding:10px;" | <code>Crew\Safety_Message.wav</code>
| style="vertical-align:top; padding:10px;" | Enables boarding ambience or cargo-loading ambience.
| style="vertical-align:top; padding:10px;" | <code>Ladies and gentlemen, please direct your attention to the cabin crew for an important safety demonstration.</code>
| style="vertical-align:top; padding:10px;" | <code>Invite passengers to pay attention to the safety demonstration in a calm, professional tone.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Service Start
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Verbose Mode
| style="vertical-align:top; padding:10px;" | <code>Crew\Food_Service1.wav</code>
| style="vertical-align:top; padding:10px;" | Makes the copilot announce what flow action is about to happen instead of performing flows silently.
| style="vertical-align:top; padding:10px;" | <code>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.</code>
| style="vertical-align:top; padding:10px;" | <code>Announce that cabin service is now beginning and briefly let passengers know refreshments will be offered.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Top of Descent
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Play Squelch
| style="vertical-align:top; padding:10px;" | <code>Crew\Descent_Message.wav</code>
| style="vertical-align:top; padding:10px;" | Adds a radio squelch sound effect.
| style="vertical-align:top; padding:10px;" | <code>We have begun our descent into {arr_city}. Please return to your seats and fasten your seatbelt.</code>
| style="vertical-align:top; padding:10px;" | <code>Advise passengers that descent into {arr_city} has begun and ask them to prepare for arrival.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Arrival Welcome
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cold Weather Ops
| style="vertical-align:top; padding:10px;" | <code>Crew\Welcome_Message1.wav</code>
| style="vertical-align:top; padding:10px;" | Adds the cold-weather flap-movement check logic when temperatures are below freezing.
| style="vertical-align:top; padding:10px;" | <code>Welcome to {arr_city}. Local weather is {weather}. Please remain seated until we arrive at the gate.</code>
| style="vertical-align:top; padding:10px;" | <code>Welcome passengers to {arr_city} and mention the local weather as {weather}.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cabin Secure for Landing
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Confirm Loadsheet
| style="vertical-align:top; padding:10px;" | <code>Crew\Seatbelts_Landing1.wav</code>
| style="vertical-align:top; padding:10px;" | Makes ground operations confirm the loadsheet or related performance/load information.
| style="vertical-align:top; padding:10px;" | <code>We will be landing shortly in {arr_city}. Please ensure your seatbelt is fastened, your tray table is stowed, and your seatback is upright.</code>
| style="vertical-align:top; padding:10px;" | <code>Prepare passengers for landing into {arr_city} and remind them about seatbelts, tray tables, and seatbacks.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Doors Disarmed
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Kilograms
| style="vertical-align:top; padding:10px;" | <code>Crew\Disarm_Doors.wav</code>
| style="vertical-align:top; padding:10px;" | Reads and reports supported values in kilograms instead of pounds.
| style="vertical-align:top; padding:10px;" | <code>Cabin crew, doors disarmed and cross-check complete. Please remain seated until the seatbelt sign has been switched off.</code>
| style="vertical-align:top; padding:10px;" | <code>Announce that the doors are disarmed and cross-check is complete, while reminding passengers to remain seated until the seatbelt sign is off.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Custom Announcement
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | RAAS
| style="vertical-align:top; padding:10px;" | <code>Crew\Boarding_Welcome1.wav</code> until you browse to a different WAV in Static mode.
| style="vertical-align:top; padding:10px;" | Enables the Runway Awareness and Advisory System.
| style="vertical-align:top; padding:10px;" | <code>Welcome aboard flight {flight_number}. We are preparing for departure to {arr_city}.</code>
|-
| style="vertical-align:top; padding:10px;" | <code>Create a professional custom cabin announcement for flight {flight_number} to {arr_city}.</code>
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Include ICAOs in Briefs
| style="vertical-align:top; padding:10px;" | Includes ICAO identifiers in departure and approach briefings.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Notify ATC Boundaries
| style="vertical-align:top; padding:10px;" | Announces VATSIM ATC boundary changes when supported.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Call Pushback Direction
| style="vertical-align:top; padding:10px;" | Includes pushback-direction callouts when pushback is requested.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Announce Flow
| style="vertical-align:top; padding:10px;" | Announces when a flow starts and finishes.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Announce Checklist
| style="vertical-align:top; padding:10px;" | Announces when a checklist starts and finishes.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Rudder Flight Control Test
| style="vertical-align:top; padding:10px;" | Includes rudder movement in the flight-control check.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Up/Down Flight Control Test
| style="vertical-align:top; padding:10px;" | Uses "full up" and "full down" style wording during the flight-control check.
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ask if Ready for Briefing
| style="vertical-align:top; padding:10px;" | Makes the copilot ask before starting departure or approach briefings.
|}
|}


== Default Response Templates ==
== Portal, Simbrief, and PAX ==
 
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


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.
This section groups licensing, Pilot Portal access, user-data access, and the timing controls used for passenger-facing operations.
 
=== Cabin Reply Defaults ===


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:170px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Response
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="width:120px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Outcome
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
! style="width:250px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default TTS text
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default AI prompt
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Complete
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open License Manager
| style="vertical-align:top; padding:10px;" | Complete
| style="vertical-align:top; padding:10px;" | Opens the FSFO license manager.
| style="vertical-align:top; padding:10px;" | <code>Boarding is complete.</code>
| style="vertical-align:top; padding:10px;" | <code>Confirm to the flight deck that boarding is complete and all passengers are on board.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Complete
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pilot Portal Sign-In
| style="vertical-align:top; padding:10px;" | Still In Progress
| style="vertical-align:top; padding:10px;" | Opens the Pilot Portal sign-in window.
| style="vertical-align:top; padding:10px;" | <code>Negative, boarding is still in progress.</code>
| style="vertical-align:top; padding:10px;" | <code>Tell the flight deck that boarding is still in progress and the cabin is not ready yet.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Start Boarding
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open User Data Folder
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | Opens the FSFO user-data folder in Windows.
| style="vertical-align:top; padding:10px;" | <code>Copy. Boarding will begin now.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the clearance from the flight deck and confirm that boarding will begin now.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ready for Takeoff
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Simbrief ID
| style="vertical-align:top; padding:10px;" | Ready
| style="vertical-align:top; padding:10px;" | Stores the SimBrief numeric user ID FSFO should use for dispatch and flight-plan integration.
| style="vertical-align:top; padding:10px;" | <code>Cabin secure and ready for takeoff.</code>
| style="vertical-align:top; padding:10px;" | <code>Reply over the interphone that the cabin is secure and ready for takeoff.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ready for Takeoff
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding
| style="vertical-align:top; padding:10px;" | Not Ready
| style="vertical-align:top; padding:10px;" | Controls boarding speed. Sliding to the right makes boarding slower and more extended.
| style="vertical-align:top; padding:10px;" | <code>Negative, not ready for takeoff. {status_reason}</code>
| style="vertical-align:top; padding:10px;" | <code>Reply over the interphone that the cabin is not ready for takeoff yet. Reason: {status_reason}</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Release Seats
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Food Service
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | Controls inflight-service speed. Sliding to the right makes service slower and more extended.
| style="vertical-align:top; padding:10px;" | <code>Copy. Cabin crew released.</code>
|}
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the release from seats and confirm that the cabin crew is released.</code>
 
== Flow Options ==
 
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
This section controls how FSFO starts flows automatically. If you leave Auto Flow Policy on one of the built-in modes, FSFO uses its internal logic. If you switch to USER, you can define your own event logic phase by phase.
 
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Settings_FlowOptions.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The Flow Options section of the FSFO Settings window.</div>
</div>
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cabin Service
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Auto Flow Policy
| style="vertical-align:top; padding:10px;" | Starting
| style="vertical-align:top; padding:10px;" | Selects the overall automation style:
| style="vertical-align:top; padding:10px;" | <code>Copy. Cabin service starting.</code>
<ul style="margin:6px 0 0 18px;">
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the clearance to begin cabin service and confirm that service is starting.</code>
<li><b>SMART</b> - Uses FSFO's more complete automatic logic based on aircraft state, phase of flight, runway proximity, doors, brakes, and altitude.</li>
<li><b>LIGHTS</b> - Uses aircraft lighting and related state cues as the primary automation trigger.</li>
<li><b>USER</b> - Lets you define your own trigger logic for each flow phase.</li>
<li><b>NONE</b> - Turns off automatic flow starts so you can trigger items manually.</li>
</ul>
|}
 
=== Custom USER Flow Phases ===
 
When Auto Flow Policy is set to '''USER''', each phase row has three controls:
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Turbulence Ahead
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Event
| style="vertical-align:top; padding:10px;" | Cabin Securing
| style="vertical-align:top; padding:10px;" | The type of condition FSFO should watch for. Available event types include '''OFF''', '''NONE''', '''TIME''', '''IAS''', '''AGL''', '''MSL''', '''TOD''', '''SYSTEM''', '''LIGHTS''', and '''EVENT'''.
| style="vertical-align:top; padding:10px;" | <code>Cabin being secured.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the turbulence warning and confirm that the cabin is being secured.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Delay Advisory
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Trigger
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | The sub-condition FSFO should watch within that event type. Available triggers include '''NA''', '''BRAKE''', '''DOORS''', '''FLAPS''', '''LANDING''', '''BEACON''', '''TAXI''', '''NAV''', '''RUNWAY''', and '''PUSHBACK'''.
| style="vertical-align:top; padding:10px;" | <code>Delay advisory acknowledged.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the delay advisory from the flight deck and confirm that the cabin will be kept updated.</code>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Turbulence Cleared
| style="vertical-align:top; padding:10px;" | Resuming Service
| style="vertical-align:top; padding:10px;" | <code>Cabin crew resuming service.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge that the turbulence has cleared and confirm that the cabin crew is resuming service.</code>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Prepare for Landing
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | <code>Cabin crew preparing.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the landing preparation call and confirm that the cabin crew is preparing.</code>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Prepare for Takeoff
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | <code>Cabin crew preparing for takeoff.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the takeoff preparation call and confirm that the cabin crew is preparing for takeoff.</code>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ready for Landing
| style="vertical-align:top; padding:10px;" | Ready
| style="vertical-align:top; padding:10px;" | <code>Cabin secure and ready for landing.</code>
| style="vertical-align:top; padding:10px;" | <code>Reply over the interphone that the cabin is secure and ready for landing.</code>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ready for Landing
| style="vertical-align:top; padding:10px;" | Not Ready
| style="vertical-align:top; padding:10px;" | <code>Negative, not ready for landing. {status_reason}</code>
| style="vertical-align:top; padding:10px;" | <code>Reply over the interphone that the cabin is not ready for landing yet. Reason: {status_reason}</code>
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Coffee Request
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | <code>Coffee coming up.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the coffee request and confirm that it is on the way.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cockpit Door Cover
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Value
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | The comparison value used by the event. For numeric event types this is usually a number. For SYSTEM, LIGHTS, or EVENT-based rows this is usually a logical state such as TRUE or FALSE.
| style="vertical-align:top; padding:10px;" | <code>Copy. We'll secure the cockpit door.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge the cockpit door coverage request and confirm that the cabin crew will secure the door.</code>
|}
|}


=== Flight-Deck Reply Defaults ===
FSFO currently exposes custom rows for these phases, in this exact order:
 
# Preflight
# Before Start
# Start
# After Start
# Taxi
# Before Takeoff
# After Takeoff
# Descent
# Approach
# Landing
# After Landing
# Shutdown
 
<div style="border-left:5px solid #f59e0b; background:#fffbeb; padding:12px 15px; margin:16px 0 24px 0; border-radius:8px; color:#78350f;">
'''Tip:''' Set Event to '''OFF''' or '''NONE''' to disable a row. '''SYSTEM''', '''LIGHTS''', and '''EVENT''' use Trigger plus TRUE/FALSE style values. '''TIME''', '''IAS''', '''AGL''', '''MSL''', and '''TOD''' use numeric values. TOD is entered in nautical miles.
</div>
 
== RAAS Options ==
 
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
These settings tune the Runway Awareness and Advisory System thresholds. Each threshold can be set to zero if you want that specific alert disabled.
 
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:FSFO_Settings_RAAS.png|1100px|frameless]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The RAAS Options section of the FSFO Settings window.</div>
</div>


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:170px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Response
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="width:120px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Outcome
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
! style="width:250px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default TTS text
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Default AI prompt
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Request
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Short Runway (FT)
| style="vertical-align:top; padding:10px;" | Approved
| style="vertical-align:top; padding:10px;" | Runway length, in feet, below which FSFO treats a runway as short for RAAS alerting purposes.
| style="vertical-align:top; padding:10px;" | <code>You can start boarding.</code>
| style="vertical-align:top; padding:10px;" | <code>Approve the cabin crew request to start boarding passengers.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Request
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Approach Rwy Threshold (FT)
| style="vertical-align:top; padding:10px;" | Standby
| style="vertical-align:top; padding:10px;" | Distance threshold, in feet, used for the "Approaching Runway" advisory.
| style="vertical-align:top; padding:10px;" | <code>We're not quite ready up here.</code>
| style="vertical-align:top; padding:10px;" | <code>Tell the cabin crew to stand by before starting boarding.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Complete
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | On Runway Threshold (FT)
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | Distance threshold, in feet, used to determine when the aircraft is considered on a runway.
| style="vertical-align:top; padding:10px;" | <code>Roger.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge that boarding is complete.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Deboarding Request
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Unstable Approach (AGL)
| style="vertical-align:top; padding:10px;" | Approved
| style="vertical-align:top; padding:10px;" | Above-ground altitude threshold used for unstable-approach checking.
| style="vertical-align:top; padding:10px;" | <code>You can start deboarding.</code>
| style="vertical-align:top; padding:10px;" | <code>Approve the cabin crew request to start deboarding the passengers.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Deboarding Request
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Altimeter Warning (AGL)
| style="vertical-align:top; padding:10px;" | Standby
| style="vertical-align:top; padding:10px;" | Above-ground altitude where FSFO checks for an incorrect altimeter setting and can trigger an altimeter warning.
| style="vertical-align:top; padding:10px;" | <code>Please standby.</code>
| style="vertical-align:top; padding:10px;" | <code>Tell the cabin crew to stand by before starting deboarding.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ready for Takeoff Call
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | On Taxiway (IAS)
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | Speed threshold used for the on-taxiway advisory or warning.
| style="vertical-align:top; padding:10px;" | <code>Roger.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge that the cabin is ready for takeoff.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ready for Landing Call
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Long Landing (%)
| style="vertical-align:top; padding:10px;" | Acknowledged
| style="vertical-align:top; padding:10px;" | Percentage of runway used at touchdown that will trigger the long-landing advisory.
| style="vertical-align:top; padding:10px;" | <code>Thank you.</code>
| style="vertical-align:top; padding:10px;" | <code>Acknowledge that the cabin is ready for landing.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cabin Service Request
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Approach Rwy Landing (AGL)
| style="vertical-align:top; padding:10px;" | Approved
| style="vertical-align:top; padding:10px;" | Above-ground altitude used for the landing-side "Approaching Runway" advisory.
| style="vertical-align:top; padding:10px;" | <code>Cleared to start your service; thank you.</code>
| style="vertical-align:top; padding:10px;" | <code>Approve the cabin crew request to begin cabin service.</code>
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Cabin Service Request
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Note
| style="vertical-align:top; padding:10px;" | Standby
| style="vertical-align:top; padding:10px;" | Set any individual RAAS threshold to '''0''' to disable that specific advisory.
| style="vertical-align:top; padding:10px;" | <code>Let's give it a few more minutes for the air to smooth out.</code>
| style="vertical-align:top; padding:10px;" | <code>Tell the cabin crew to wait before starting cabin service.</code>
|}
|}


== Trigger Meaning Reference ==
== Interface Options ==
 
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>


The trigger names on this page are short on purpose. The following glossary explains what each one is intended to mean operationally.
This section controls startup behavior, convenience prompts, visual appearance, and several small interface features. Some appearance-related changes require an FSFO restart before they fully take effect.
 
<div style="clear:both; margin:18px 0 28px 0; text-align:center;">
[[File:UI.png|frameless|1483x1483px]]
<div style="font-size:90%; color:#64748b; margin-top:7px;">The Interface Options section of the FSFO Settings window.</div>
</div>


{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:220px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Trigger
! style="width:235px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Setting
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Operational meaning
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What it does
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Started
| style="vertical-align:top; padding:10px;" | Fires once boarding has actually begun.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Boarding Complete
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Auto Connect
| style="vertical-align:top; padding:10px;" | Fires when boarding is detected as complete.
| style="vertical-align:top; padding:10px;" | Attempts to connect FSFO to the simulator automatically when the sim is available.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Doors Closed
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Show Portal Logon
| style="vertical-align:top; padding:10px;" | Fires after cabin doors are closed.
| style="vertical-align:top; padding:10px;" | Shows the Pilot Portal sign-in window on startup if you are not already signed in.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pushback Start
| style="vertical-align: top;" |'''Check For Updates'''
| style="vertical-align:top; padding:10px;" | Fires when pushback begins.
| style="vertical-align: top;" |Checks for new FSFO versions when the app starts.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Pushback Complete
|'''Check FSUIPC'''
| style="vertical-align:top; padding:10px;" | Fires when pushback has finished.
|Verifies FSUIPC status or version on startup.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Beacon On
|'''Warning Beeps'''
| style="vertical-align:top; padding:10px;" | Fires when the beacon light changes to on.
|Plays warning beeps for important notices such as stale flight-plan or METAR-related issues.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Above 10,000 ft / Above 18,000 ft
|'''Verify Exit'''
| style="vertical-align:top; padding:10px;" | Fires when the aircraft climbs above the selected MSL threshold.
|Prompts before closing FSFO.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Top of Climb
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Show Post Flt Rpt
| style="vertical-align:top; padding:10px;" | Intended for cruise-entry style announcements when climb completes.
| style="vertical-align:top; padding:10px;" | Shows the Post Flight Report when supported by the current operating mode.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Start of Descent / TOD
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open Cloud Sync
| style="vertical-align:top; padding:10px;" | Intended for descent-entry announcements.
| style="vertical-align:top; padding:10px;" | Opens Crew Portal or Cloud Sync on startup if you are not already signed in there.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | -1000 / -2000 to -5000
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | FSFO On Top
| style="vertical-align:top; padding:10px;" | Descent-phase altitude-loss style triggers used by the page's descent logic.
| style="vertical-align:top; padding:10px;" | Keeps the FSFO window above other windows.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Below 15,000 ft through Below 5,000 ft
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Remember Last Location
| style="vertical-align:top; padding:10px;" | Fires when the aircraft descends below the selected MSL altitude threshold.
| style="vertical-align:top; padding:10px;" | Restores the previous window position when FSFO is reopened.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Landing Lights On
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Start On Flight Plan
| style="vertical-align:top; padding:10px;" | Useful for final approach style cabin-secure announcements tied to light usage rather than altitude alone.
| style="vertical-align:top; padding:10px;" | Opens FSFO on the Flight Plan page instead of the default home area.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Runway Exit
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Switch To Checklist
| style="vertical-align:top; padding:10px;" | Fires once landing rollout is complete and the aircraft exits the runway.
| style="vertical-align:top; padding:10px;" | Automatically switches to the Checklist or SOP page during relevant phases.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Landing Lights Off
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Display ACARS
| style="vertical-align:top; padding:10px;" | Useful for arrival welcome timing after clearing the runway.
| style="vertical-align:top; padding:10px;" | Shows ACARS-related flight information in the interface.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ground Speed Below 45 MPH
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Hide Home Button
| style="vertical-align:top; padding:10px;" | Fires during rollout or taxi-in when groundspeed slows below 45 MPH.
| style="vertical-align:top; padding:10px;" | Hides the Home button on the main toolbar.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ground Speed Below 20 MPH
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Include Pilot Actions
| style="vertical-align:top; padding:10px;" | Fires later in taxi-in, useful when you want a more delayed arrival welcome.
| style="vertical-align:top; padding:10px;" | Includes pilot-side actions in the displayed task or action information.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Beacon Off
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Hide User Data Folder
| style="vertical-align:top; padding:10px;" | Useful for post-arrival or shutdown messaging once the aircraft is secured.
| style="vertical-align:top; padding:10px;" | Hides the Open User Data Folder button from the main page.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Taxi Off
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Voice Status Callout
| style="vertical-align:top; padding:10px;" | Useful when tying post-arrival behavior to taxi light usage.
| style="vertical-align:top; padding:10px;" | Uses the configured SAPI pilot voice for voice-test feedback and speech-recognition status callouts.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Engines Off
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Show Scroll Bar
| style="vertical-align:top; padding:10px;" | Useful for door-disarm timing when engine shutdown is the most reliable post-arrival event.
| style="vertical-align:top; padding:10px;" | Displays scroll bars in SOP text areas when content is longer than the visible panel.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Doors Open
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open OPS
| style="vertical-align:top; padding:10px;" | Fires when a door-open state is detected.
| style="vertical-align:top; padding:10px;" | Automatically opens the Operations window the first time a preflight flow starts.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Service Started
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Hide PAX Status
| style="vertical-align:top; padding:10px;" | Dedicated trigger for the Service Start announcement.
| style="vertical-align:top; padding:10px;" | Hide the passenger status strip on the SOPs page and let the lower panels use the extra room.
|}
 
== Automatic Playback Rules ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
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 ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
The editor on this page intentionally behaves differently depending on what you are editing:
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:220px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Scenario
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What happens
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Built-in announcement in Static mode
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Auto Close Comm Pnl
| style="vertical-align:top; padding:10px;" | Uses the built-in WAV. Static content is not meant to be edited as free text for stock rows.
| style="vertical-align:top; padding:10px;" | When enabled, the comm ribbon returns to its minimized state after an action.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Built-in response in Static mode
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Open Comm Pnl
| style="vertical-align:top; padding:10px;" | Uses the built-in response WAV listed in the Responses grid.
| style="vertical-align:top; padding:10px;" | Opens the comm panel automatically when FSFO connects to the sim.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Any announcement or response in TTS mode
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Remote Access
| style="vertical-align:top; padding:10px;" | Uses the editable TTS message text and the configured cabin SAPI voice.
| style="vertical-align:top; padding:10px;" | Enables certain features to be controlled on another device on your network using a web browser.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Any announcement or response in AI mode
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Mask IP Address
| style="vertical-align:top; padding:10px;" | Uses the editable AI prompt plus the AI settings card.
| style="vertical-align:top; padding:10px;" | Hides your private IP address and remote access pages and only shows masked details only.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Custom announcement in Static mode
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Upload To VATSIM
| style="vertical-align:top; padding:10px;" | The editor switches from a text editor to a WAV path field with a '''Browse WAV...''' button.
| style="vertical-align:top; padding:10px;" | After importing a SimBrief dispatch, opens a prefilled VATSIM flight-plan page in the embedded browser.
|}
 
== Examples and Best Practices ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
=== 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:
 
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
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.
</div>
 
=== Example: AI Custom Announcement Prompt ===
 
For an AI custom prompt, you might use:
 
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
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.
</div>
 
=== 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:
 
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:12px 14px; margin:10px 0 18px 0; font-family:Consolas,monospace;">
Negative, not ready for takeoff. {status_reason}
</div>
 
== Troubleshooting ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
{| class="wikitable" style="width:100%; margin:10px 0 26px 0; border-collapse:collapse;"
! style="width:260px; background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | Problem
! style="background:#dbeafe; color:#0f172a; padding:10px; text-align:left;" | What to check
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | The custom announcement row never appears
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Ask Seat Config
| style="vertical-align:top; padding:10px;" | Make sure '''Announcement Name''' is filled in and the announcement has been saved. The row remains hidden until a name exists.
| style="vertical-align:top; padding:10px;" | Prompts once per aircraft to store seat-count and cabin-layout information for the Operations page.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | The custom announcement says Manual Only
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Opacity
| style="vertical-align:top; padding:10px;" | Change the custom announcement '''Segment''' from '''All''' to a segment that supports triggers, such as Preflight, Descent, or Taxi-In.
| style="vertical-align:top; padding:10px;" | Controls window opacity from more transparent to more opaque.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | The arrival message plays too early
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Font size
| style="vertical-align:top; padding:10px;" | Use '''Landing Lights Off''', '''Ground Speed Below 45 MPH''', or '''Ground Speed Below 20 MPH''' instead of '''Runway Exit'''.
| style="vertical-align:top; padding:10px;" | Controls the size of interface text.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | The doors-disarmed message plays at the wrong time
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Background picture
| style="vertical-align:top; padding:10px;" | Try '''Engines Off''' first. It is the default because it is often the most reliable general-purpose shutdown trigger.
| style="vertical-align:top; padding:10px;" | Selects the FSFO background image theme.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | AI replies sound different from the rest of the cabin system
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Border color
| style="vertical-align:top; padding:10px;" | Check the selected crew mode and AI Voice Output. The Responses view follows the same announcement-mode logic as the main announcement list.
| style="vertical-align:top; padding:10px;" | Selects the panel border color.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | TTS replies sound wrong or robotic
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Border thickness
| style="vertical-align:top; padding:10px;" | Recheck the '''TTS Voice''' selection in the TTS Crew Settings card and use the Preview button on a response row to confirm it.
| style="vertical-align:top; padding:10px;" | Selects the thickness of the border.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | AI generation fails
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Border brush
| style="vertical-align:top; padding:10px;" | 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.
| style="vertical-align:top; padding:10px;" | Selects the brush style used for the border.
|-
|-
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Weather or city placeholders sound wrong
| style="font-weight:700; vertical-align:top; padding:10px; background:#f8fafc;" | Padding
| style="vertical-align:top; padding:10px;" | Check that the flight plan and arrival weather information are actually loaded in FSFO. Placeholder output depends on that live data being available.
| style="vertical-align:top; padding:10px;" | Controls the spacing between the panel border and the contents inside it.
|}
|}
 
<div style="border-left:5px solid #dc2626; background:#fef2f2; padding:12px 15px; margin:0 0 22px 0; border-radius:8px; color:#7f1d1d;">
== Tips ==
'''Note:''' Some visual settings in this section require an FSFO restart before the full change is visible everywhere.
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
</div>
 
* 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 ==
<div style="height:4px; width:100%; background:#2563eb; border-radius:99px; margin:0 0 16px 0;"></div>
 
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.
 
[[Category:FSFO]]
[[Category:FSFO]]
[[Category:Settings]]
[[Category:Settings]]
[[Category:User Guide]]
[[Category:User Guide]]

Latest revision as of 20:28, 30 June 2026

FSFO Settings Reference
A practical guide to every setting in the FSFO Settings window, organized in the same top-to-bottom order as the live WPF interface.
Flight Simulator First Officer • Settings • Audio • SOP • Crew • RAAS • Interface

This page documents the current FSFO Settings window in the same top-to-bottom order that the sections appear in the WPF interface. The Settings window is organized by sections rather than old wiki categories, so this page follows the live app layout.

Input and Output
Audio, speech, controls
SOP
Automation thresholds
Crew Options
Copilot and cabin behavior
Cabin Crew Announcements
Static, TTS, AI, triggers, and responses
General Options
Integrations and quality-of-life
Portal, Simbrief, and PAX
Portal, SimBrief, passengers
Flow Options
AutoFlow behavior
RAAS Options
Runway advisories
Interface Options
Startup and appearance

Tip: Most numeric automation thresholds can be set to 0 to disable that specific callout or automation. Start with defaults, then adjust only the sections that affect your aircraft or operating style.

Input and Output

This section controls audio devices, speech recognition, SAPI voice selection, testing tools, and controller or hot-key assignments.

The Input and Output section of the FSFO Settings window.

Voice, Audio, and Recognition

Setting What it does
Pilots Selects the playback device used for captain and first officer voices. Use this if you want pilot voices in a headset while keeping other sounds on speakers.
Cabin Crew Selects the playback device used for cabin crew announcements. Many users keep this on speakers to make the cabin sound more separate from cockpit audio.
Region Chooses the accent or regional voice style FSFO should prefer when supported by the selected voice engine.
Speech Eng Selects the speech engine FSFO will use. Microsoft Speech is usually the most accurate. VOSK is useful for offline or alternate-device support. SAPI mode is used when you want to choose installed SAPI voices directly.
Mic Input Selects the microphone or input device FSFO should listen to when the chosen speech engine supports direct device selection. Microsoft Speech generally uses the Windows default microphone, while VOSK can use the device selected here.
SAPI Pilot Selects the installed SAPI voice used for the captain voice when SAPI speech is enabled.
SAPI Co-pilot Selects the installed SAPI voice used for the first officer when SAPI speech is enabled.
SAPI Cabin Selects the installed SAPI voice used for cabin announcements when SAPI speech is enabled.
SAPI Rate Controls how quickly SAPI voices speak. If voices feel too slow or too rushed, adjust this before changing other audio settings.
Pilot Volume Controls the loudness of pilot and copilot speech.
Crew Volume Controls the loudness of flight attendant and cabin crew speech.
Ambiance Vol Controls the loudness of boarding ambience, background sounds, and related non-voice cabin audio.
Pilots dB Gain Adds or subtracts decibels from pilot voice playback before the normal volume slider is applied. This is useful when a voice is technically too quiet even with the slider raised.
Amb dB Gain Adds or subtracts decibels from ambience playback before the normal ambience volume slider is applied.
Readback Controls the spacing or pacing used during readbacks, especially where letters, numbers, and short phrase groups need slightly clearer separation.
Headset Tone Applies headset or intercom-style coloration to voice playback so the audio sounds more like cockpit comms and less like plain desktop speech.
Comms Texture Adds extra radio character such as light hiss or comms-style texture. This is mainly a realism preference.
Open Mic Keeps speech recognition listening continuously unless it is muted. This is the best choice if you prefer hands-free operation.
Start Speech On Start Automatically turns speech recognition on when FSFO starts, so you do not need to enable it manually every session.

Audio and Speech Test Buttons

Setting What it does
PILOT TEST Plays a sample captain, first officer, and ground-audio test through the currently selected output so you can confirm routing and levels.
CREW TEST Plays a standard cabin crew announcement through the current cabin-audio output.
READBACK TEST Plays a sample captain and first officer readback so you can judge clarity, pacing, and balance.
TEST BOARDING MUSIC Plays the current boarding-music audio so you can confirm the selected sound and its level.
TEST BOARDING AMBIANCE Plays the current boarding or background ambience so you can confirm the selected sound and its level.

Controller and Hot-Key Setup

Use this area to assign a joystick button, yoke button, or keyboard key to a specific FSFO action.

Setting What it does
Controller Selects the controller or input device FSFO should read from while you are assigning or reviewing bindings.
Action Selects which FSFO function you are binding. Current actions include:
  • PTT - Push-to-talk. If Open Mic is off, this temporarily opens speech recognition while held. If Open Mic is on, it works more like a hold-to-mute input.
  • MUTE - Toggles speech recognition on or off.
  • BYPASS - Skips a wait state or bypasses the next required checklist or flow hold.
  • PAUSE - Pauses FSFO actions until toggled again.
  • MIN - Minimizes or restores the FSFO main window.
  • ACTION - Starts the currently available checklist or flow action.
  • COPILOT PLANE - Triggers the "Your Plane" request so the copilot can take control when supported.
  • PUSHBACK LEFT - Requests pushback with the nose turning left.
  • PUSHBACK RIGHT - Requests pushback with the nose turning right.
  • PUSHBACK STRAIGHT - Requests straight pushback.
  • PUSHBACK STOP - Stops the current pushback.
  • PUSHBACK ABORT - Cancels the pushback entirely.
GUID Displays the unique device identifier for the selected controller. This is mainly for confirming which hardware FSFO is seeing.
INPUT Shows the currently assigned button or key for the selected action.
SET Starts listening for the next key press or button press so a new binding can be assigned.
CLEAR Removes the current binding for the selected action.

Support and Maintenance Buttons

Setting What it does
TRAIN SPEECH Opens the Windows speech-training workflow so you can improve recognition quality.
GET HELP Opens FSFO help or support resources from the Settings page.
CHECK FOR UPDATE Manually checks whether a newer FSFO version is available.
DELETE Deletes the saved controller-assignment configuration so you can rebuild bindings from scratch.

SOP

This section controls the standard operating thresholds FSFO uses during takeoff, climb, descent, approach, and landing. Most altitude values can be set to zero to disable that specific automation.

The SOP section of the FSFO Settings window.
Setting What it does
Acceleration (AGL) Altitude above ground where the copilot calls "Acceleration Altitude." This is often used as a visual or procedural cue during the initial climb.
Landing Lights (MSL) Mean-sea-level altitude where FSFO manages landing lights. This lets you align light usage with your preferred transition altitude.
Engage VNAV (AGL) Above-ground altitude where the copilot engages vertical navigation, when supported by the aircraft.
Engage LNAV (AGL) Above-ground altitude where the copilot engages lateral navigation, when supported by the aircraft.
Engage AP (AGL) Above-ground altitude where the copilot engages the autopilot.
Engage APPR (AGL) Above-ground altitude where the copilot engages approach mode during landing.
Disconnect AT (AGL) Above-ground altitude where the copilot disconnects autothrottle during landing.
Disconnect AP (AGL) Above-ground altitude where the copilot disconnects the autopilot during landing.
Extend Gear (AGL) Above-ground altitude where the copilot extends the landing gear during approach and landing.
Min Flap Extension (AGL) Lowest above-ground altitude where the copilot is allowed to extend flaps. This can be used to prevent very early flap deployment.
Ground Speed Warn (MPH) Speed threshold used for ground-speed warnings while taxiing or rolling on the ground.
Stabilized Call (N1) N1 percentage where the copilot calls "Stabilized." This is mainly used during takeoff thrust application.
Flow Pause (sec) Controls the delay FSFO uses between flow actions. Larger values make flows feel slower and more deliberate.
Checklist Pause (sec) Controls the pause between checklist items or responses.
Checklist Repeat (sec) Controls how long FSFO waits before repeating a checklist prompt when a response or matching aircraft state is still missing.
Passing Call (MSL) Mean-sea-level altitude used for "Passing" callouts during climb or descent.
Couple Taxi Lndg Lights Ties taxi-light behavior to landing-light behavior so they move together automatically.
Couple Wing Logo Lights Ties wing-light behavior to logo-light behavior.
Manage Grnd Lights Lets the copilot manage ground-light logic automatically, including combinations involving NAV, beacon, taxi, landing, strobe, and wing lights.
Eng Start Defines how many engines must be running before FSFO considers the aircraft ready to transition from preflight toward taxi-out. On multi-engine aircraft, this can change when flows continue automatically.
Battery Equals Turn Around If the aircraft is already powered when FSFO connects, the flight is treated more like a turnaround than a cold-and-dark startup.
Boarding Music Selects the boarding-music file or theme used by FSFO.
Safety Message Selects the safety-message file or theme used by FSFO.
Flaps Call Controls how flap callouts are spoken. Depending on the selected option, FSFO can call the flap setting itself, the speed check, or both.
VSpeed Call Controls how takeoff V-speed callouts are handled, such as none, full V1-and-Rotate behavior, or reduced callout behavior.
Note Most threshold values in this section can be set to 0 to disable that specific automation or callout.

Crew Options

This section controls what the copilot, captain, and cabin crew are allowed to say or do automatically.

The Crew Options section of the FSFO Settings window.
Setting What it does
Attendant Messages Enables flight attendant cabin announcements such as boarding complete, cabin-ready reminders, descent stowage reminders, and deboarding completion.
Pilot Messages Enables first officer or pilot-facing passenger messages such as taxi-out welcome, cruise announcements, and descent announcements.
Apply Brakes Allows the copilot to apply braking during supported situations.
Set Landing Gear Allows the copilot to raise and lower the landing gear automatically when required by flows or flight logic.
Set Flaps Allows the copilot to retract and extend flaps automatically when required by flows or flight logic.
Set Altimeter Allows the copilot to set standard or local pressure during the flight.
Set Seatbelts Allows the copilot to manage the seatbelt sign automatically.
Set Ctr Fuel Tanks Allows the copilot to manage center-tank fuel logic where supported.
Set Lights Allows the copilot to manage lighting changes tied to the current phase of flight.
Repeat Readback Makes the copilot repeat values heard in voice commands, which is helpful for catching recognition mistakes.
Confirm Checklist Item During voice-driven checklists, the copilot checks whether the requested aircraft state is actually set and prompts again if it is not.
First Ofcr Handles Intercom Lets the first officer handle intercom-related prompts automatically instead of requiring the captain to respond manually.
Call Missed Checklist Warns you if FSFO believes an expected checklist was skipped.
Call Roll Phrases Enables takeoff-roll and landing-roll phraseology such as thrust-set, speed checks, and rollout callouts.
Captain Callouts When the copilot is flying the takeoff, this enables the captain-side callouts and responses as part of the exchange.
Call 400 Feet Adds the 400-foot callout during climb.
Call Minimums Enables minimums callouts on approach.
Call Glideslope Alive Enables "glideslope alive" and "glideslope captured" callouts during approach.
Call System Changes Makes the copilot announce important system changes such as gear, flaps, autopilot, autothrottle, and related mode changes.
Reserved Reserved for future use.
Call Engine Start Enables engine-start callouts during the start sequence.
Call Warnings Enables spoken warnings where supported by FSFO.
Auto Inflight Services Allows cabin service to run automatically on qualifying passenger flights.
Press Takeoff Screw/AutoFlt Allows FSFO to press the PMDG takeoff screw or the TFDi MD-11 Auto Flight button when the aircraft and checklist state support it.

Cabin Crew Announcements

This section documents the dedicated Cabin Crew Announcements page. It controls passenger announcements, interphone replies, crew voice mode, automatic trigger timing, and OpenAI-based AI cabin crew features.

Important: FSFO controls when an announcement or reply is used. Your selected crew mode controls how it sounds. Static uses WAV files, TTS uses a Windows SAPI voice, and AI uses your OpenAI API key plus the AI settings on this page.

Page Overview

The Cabin Crew Announcements page controls:

  • Passenger-facing cabin announcements.
  • Cabin replies to flight-deck calls.
  • Flight-deck replies back to cabin crew calls.
  • Custom announcement content for Static, TTS, and AI users.
  • OpenAI setup and AI tuning options for dynamic cabin speech.

The three crew-mode cards at the top of the Cabin Crew Announcements page.

Crew Modes

Mode Card text What it does
Static Crew Play pre-recorded WAV files Uses built-in WAV files for built-in announcements and built-in responses. For the custom announcement only, Static mode lets the user browse to a WAV file instead of typing TTS text.
TTS Crew Use your custom messages spoken by a Windows voice Uses the saved TTS text for each announcement or response and plays it with the selected SAPI voice.
AI Cabin Crew Generate dynamic announcements with ChatGPT / OpenAI Uses the saved AI prompt, AI style, voice output, creativity, message length, and global prompt settings to generate dynamic spoken announcements and interphone replies.

When you switch crew modes:

  • Preview buttons immediately use that mode.
  • The Edit panel changes to match that mode.
  • The Responses page follows that same mode.
  • Flight-deck answers stay consistent with the selected announcement mode, so replies sound like the same system the user chose.

Announcement List

The main data grid is the Announcement List. It contains the built-in announcement rows plus one optional custom announcement row.

The top-right controls switch between Announcements and Responses or open the custom announcement editor.

The top controls are:

  • Enable All - turns the attendant announcement system on or off without deleting row settings.
  • Responses - switches the data grid from announcement rows to response rows. When active, this button changes to Announcements.
  • + Add Announcement - opens the custom announcement editor.

The announcement grid columns are:

  • # - display order.
  • Announcement - row name.
  • Trigger - current trigger selection.
  • Delay - delay before playback.
  • Segment - the flight segment used for trigger logic.
  • Conditions - operational note or phase reminder.
  • Status / Actions - row checkbox plus Preview, Trigger, and Edit buttons.

The row actions are:

  • Row checkbox - enables or disables that announcement.
  • Preview - plays a preview using the current crew mode.
  • Trigger - opens the trigger editor for that row.
  • Edit - opens the content editor. In Static mode, only the custom announcement switches to a WAV browser; built-in static rows still use their stock WAV files.

Built-In Announcement Rows

# Announcement Default Segment Default Trigger Default Delay Purpose
1 Boarding Welcome Preflight Boarding Started 00:45 Welcome passengers once boarding begins.
2 Boarding Complete Call Preflight Boarding Complete 00:05 Final boarding-complete style cabin message.
3 Doors Armed Preflight Doors Closed 00:05 Doors armed and cross-check complete.
4 Departure Safety Briefing Preflight Doors Closed 00:40 Safety demonstration introduction.
5 Service Start Airborne Service Started 00:00 Announces the 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.
10 Custom Announcement All Boarding Started 00:10 User-defined row that appears only after a custom announcement name is saved.

Trigger Editor

The trigger editor is opened with the Trigger button on an announcement row. It contains:

  • Trigger Point - the automatic event to watch for.
  • Delay - the delay before playback.
  • Selected Trigger - a readback preview of the selected trigger.

If a row is manual-only, the trigger selector is disabled and shows Manual Only.

The available flight segments are:

  • Preflight
  • Taxi-Out
  • Climb
  • Airborne
  • Descent
  • Approach
  • Final
  • Rollout
  • Taxi-In
  • Shutdown
  • All

General trigger availability by segment:

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 notes:

  • Service Start only supports Service Started.
  • Cabin Secure for Landing supports the full approach trigger 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 supports Beacon Off, Taxi Off, Engines Off, and Doors Open. The default is Engines Off.
  • If the custom announcement is left on the All segment, it has no automatic trigger list and behaves as Manual Only until the segment is changed.

Responses

The Responses button switches the grid from passenger announcements to interphone response definitions. These responses are used when:

  • The comm panel asks the cabin or the flight deck a question.
  • The user presses a related button in the communications panel.
  • A supported voice-command workflow triggers an interphone exchange.

In Responses view, the columns are:

  • # - display order.
  • Flight Deck Command - the call or statement that triggered the response.
  • Response - the response type.
  • Outcome - branch or result such as Approved, Standby, Ready, or Not Ready.
  • Static WAV - the built-in static WAV for Static mode.
  • Actions - Preview and Edit.

Static, TTS, and AI response behavior:

  • Static Crew uses the listed built-in WAV.
  • TTS Crew speaks the configured response text with the cabin TTS voice.
  • AI Cabin Crew generates the reply from the configured AI prompt using the AI settings on this page.

Common cabin response types include:

  • Boarding Complete / Still In Progress
  • Start Boarding acknowledged
  • Ready for Takeoff / Not Ready
  • Release Seats acknowledged
  • Cabin Service starting
  • Turbulence Ahead secured
  • Delay Advisory acknowledged
  • Turbulence Cleared / Resuming Service
  • Prepare for Landing acknowledged
  • Prepare for Takeoff acknowledged
  • Ready for Landing / Not Ready
  • Coffee Request acknowledged
  • Cockpit Door Cover acknowledged

Common flight-deck response types include:

  • Boarding Request approved or standby
  • Boarding Complete acknowledged
  • Deboarding Request approved or standby
  • Ready for Takeoff Call acknowledged
  • Ready for Landing Call acknowledged
  • Cabin Service Request approved or standby

Response-specific placeholders:

  • {status_reason} - reason for a not-ready or delayed response.
  • {response_reason} - alternate reason placeholder accepted by the response system.

Custom Announcements

The + Add Announcement button opens the custom announcement editor. The custom row remains hidden until an announcement name is saved.

The custom editor fields are:

  • Announcement Name - required.
  • Trigger - automatic trigger for the selected segment.
  • Delay - playback delay such as 00:10.
  • Segment - determines which automatic triggers are available.
  • Conditions - free-form note shown in the grid.
  • Save Announcement - saves the row and reveals it in the list.
  • Cancel - closes the editor without saving.

Important custom-announcement behavior:

  • Only one custom announcement entry is currently supported.
  • The selected segment controls whether automatic triggers are available.
  • The custom row stores its own name, segment, trigger, delay, conditions, text, AI prompt, enabled state, and optional static WAV path.
  • After saving the row, use the pencil icon to edit the actual content.

Content Editing By Mode

The Edit panel changes based on the crew mode and the item being edited.

In TTS Crew mode:

  • The title becomes a TTS message editor.
  • The user edits the exact message that FSFO will speak.
  • This works for both announcements and response rows.

In AI Cabin Crew mode:

  • The title becomes an AI prompt editor.
  • The user edits the prompt that FSFO sends to OpenAI.
  • This works for both announcements and response rows.

In Static Crew mode:

  • Built-in announcements and built-in responses continue using their stock WAV files.
  • The custom announcement switches to a WAV-path editor with a Browse WAV... button.
  • The preview box shows the selected WAV file path for that custom row.

Common placeholders supported in TTS messages and AI prompts:

  • {airline}
  • {flight_number}
  • {origin}
  • {destination}
  • {dep_city}
  • {arr_city}
  • {aircraft}
  • {cruise_altitude}
  • {weather}
  • {time}
  • {local_time}

Static, AI, and TTS Settings

The lower Static Crew Settings, AI Cabin Crew Settings, and TTS Crew Settings cards.

Static Crew Settings

  • Voice Pack Region - which regional static voice pack is used.

AI Cabin Crew Settings

  • OpenAI API Key - stored API key for FSFO AI cabin speech.
  • Test Key - verifies the key works.
  • Show Key / Hide Key - toggles key visibility.
  • AI Style - tone preset such as Professional Airline, Warm and Friendly, or Premium International.
  • Voice Output - selected AI voice output or SAPI voice output.
  • AI Speech Pace - speed at which the voice will be played.
  • AI Output Language - Built-in AI announcements follow this language. Custom AI announcements use the language you type
  • Creativity - numeric creativity value from 0 to 1.
  • Message Length - Short, Normal, or Extended.
  • Global AI Prompt - shared instruction applied to all AI-generated cabin content.
  • Cache generated audio - reuses the AI-generated announcement text for the current flight so FSFO does not need to regenerate the same automatic AI announcement every time that event is encountered again during that flight session. Clears when start a new flight.
  • Fallback to Static Crew if AI fails - uses static audio if AI generation fails.

TTS Crew Settings

  • TTS Voice - the Windows SAPI voice used for cabin announcements and responses.

AI Cabin Crew Setup

FSFO AI Cabin Crew requires an OpenAI API key. ChatGPT Plus or Pro is not required. API usage is billed separately through the OpenAI Platform.

Step 1: Open the OpenAI Platform

Step 2: Add billing or prepaid credits

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 off.

Step 3: Create an API key

Then:

  1. Click Create new secret key.
  2. Give it a name such as FSFO AI Cabin Crew.
  3. Leave the default project unless you intentionally use another one.
  4. Leave permissions at the default unless OpenAI specifically requires something else.
  5. Click Create secret key.

Important security note: OpenAI normally shows the full secret key only once. Copy it immediately and keep it private.

Step 4: Add the key to FSFO

  1. Open the Cabin Crew Announcements page.
  2. Select the AI Cabin Crew mode card.
  3. Paste the key into OpenAI API Key.
  4. Click Test Key.

Step 5: Finish configuration

  • 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 individual announcement or response prompts as needed.

Best Practices

  • Start with Static Crew if you want a zero-setup experience.
  • Move to TTS Crew if you want full message control without API billing.
  • Use AI Cabin Crew if you want the most flexible and dynamic wording.
  • For later arrival timing, use Landing Lights Off, Ground Speed Below 45 MPH, or Ground Speed Below 20 MPH instead of Runway Exit.
  • For a reliable post-arrival door-disarm message, Engines Off is usually the safest default.
  • If a custom announcement shows Manual Only, change its segment from All to a segment that supports automatic triggers.
  • If a not-ready reply sounds incomplete, include {status_reason} in the response text or AI prompt.

General Options

This section contains behavior toggles, interface integrations, and quality-of-life options that do not fit cleanly into one of the more specialized sections.

The FSFO Settings window.
Setting What it does
Disable Gear/Flaps/Throttles Prevents speech-recognition commands from changing gear, flaps, or throttles.
Disable Radio Cmds Prevents speech-recognition commands from controlling radios or the transponder.
Disable Flap Calls Prevents flap-related callouts and flap-response behavior tied to manual flap changes.
Skip Eng Start (AutoFlow) Makes AutoFlow stop short of starting the engines so you can handle the engine start manually.
GSX Interface Uses GSX rather than the default FSFO/MSFS service logic for supported ground services.
SAY Intentions Interface Pauses FSFO activity during ATC interactions handled by Say Intentions.
Open Door On Start Opens the L1 door when FSFO first connects.
Use FMC Vspeeds Uses aircraft FMC V-speeds instead of SimBrief values when the aircraft supports that workflow.
Play Ding Before Msg Plays a cabin-style chime before announcements.
Boarding/Cargo Sounds Enables boarding ambience or cargo-loading ambience.
Verbose Mode Makes the copilot announce what flow action is about to happen instead of performing flows silently.
Play Squelch Adds a radio squelch sound effect.
Cold Weather Ops Adds the cold-weather flap-movement check logic when temperatures are below freezing.
Confirm Loadsheet Makes ground operations confirm the loadsheet or related performance/load information.
Kilograms Reads and reports supported values in kilograms instead of pounds.
RAAS Enables the Runway Awareness and Advisory System.
Include ICAOs in Briefs Includes ICAO identifiers in departure and approach briefings.
Notify ATC Boundaries Announces VATSIM ATC boundary changes when supported.
Call Pushback Direction Includes pushback-direction callouts when pushback is requested.
Announce Flow Announces when a flow starts and finishes.
Announce Checklist Announces when a checklist starts and finishes.
Rudder Flight Control Test Includes rudder movement in the flight-control check.
Up/Down Flight Control Test Uses "full up" and "full down" style wording during the flight-control check.
Ask if Ready for Briefing Makes the copilot ask before starting departure or approach briefings.

Portal, Simbrief, and PAX

This section groups licensing, Pilot Portal access, user-data access, and the timing controls used for passenger-facing operations.

Setting What it does
Open License Manager Opens the FSFO license manager.
Pilot Portal Sign-In Opens the Pilot Portal sign-in window.
Open User Data Folder Opens the FSFO user-data folder in Windows.
Simbrief ID Stores the SimBrief numeric user ID FSFO should use for dispatch and flight-plan integration.
Boarding Controls boarding speed. Sliding to the right makes boarding slower and more extended.
Food Service Controls inflight-service speed. Sliding to the right makes service slower and more extended.

Flow Options

This section controls how FSFO starts flows automatically. If you leave Auto Flow Policy on one of the built-in modes, FSFO uses its internal logic. If you switch to USER, you can define your own event logic phase by phase.

The Flow Options section of the FSFO Settings window.
Setting What it does
Auto Flow Policy Selects the overall automation style:
  • SMART - Uses FSFO's more complete automatic logic based on aircraft state, phase of flight, runway proximity, doors, brakes, and altitude.
  • LIGHTS - Uses aircraft lighting and related state cues as the primary automation trigger.
  • USER - Lets you define your own trigger logic for each flow phase.
  • NONE - Turns off automatic flow starts so you can trigger items manually.

Custom USER Flow Phases

When Auto Flow Policy is set to USER, each phase row has three controls:

Setting What it does
Event The type of condition FSFO should watch for. Available event types include OFF, NONE, TIME, IAS, AGL, MSL, TOD, SYSTEM, LIGHTS, and EVENT.
Trigger The sub-condition FSFO should watch within that event type. Available triggers include NA, BRAKE, DOORS, FLAPS, LANDING, BEACON, TAXI, NAV, RUNWAY, and PUSHBACK.
Value The comparison value used by the event. For numeric event types this is usually a number. For SYSTEM, LIGHTS, or EVENT-based rows this is usually a logical state such as TRUE or FALSE.

FSFO currently exposes custom rows for these phases, in this exact order:

  1. Preflight
  2. Before Start
  3. Start
  4. After Start
  5. Taxi
  6. Before Takeoff
  7. After Takeoff
  8. Descent
  9. Approach
  10. Landing
  11. After Landing
  12. Shutdown

Tip: Set Event to OFF or NONE to disable a row. SYSTEM, LIGHTS, and EVENT use Trigger plus TRUE/FALSE style values. TIME, IAS, AGL, MSL, and TOD use numeric values. TOD is entered in nautical miles.

RAAS Options

These settings tune the Runway Awareness and Advisory System thresholds. Each threshold can be set to zero if you want that specific alert disabled.

The RAAS Options section of the FSFO Settings window.
Setting What it does
Short Runway (FT) Runway length, in feet, below which FSFO treats a runway as short for RAAS alerting purposes.
Approach Rwy Threshold (FT) Distance threshold, in feet, used for the "Approaching Runway" advisory.
On Runway Threshold (FT) Distance threshold, in feet, used to determine when the aircraft is considered on a runway.
Unstable Approach (AGL) Above-ground altitude threshold used for unstable-approach checking.
Altimeter Warning (AGL) Above-ground altitude where FSFO checks for an incorrect altimeter setting and can trigger an altimeter warning.
On Taxiway (IAS) Speed threshold used for the on-taxiway advisory or warning.
Long Landing (%) Percentage of runway used at touchdown that will trigger the long-landing advisory.
Approach Rwy Landing (AGL) Above-ground altitude used for the landing-side "Approaching Runway" advisory.
Note Set any individual RAAS threshold to 0 to disable that specific advisory.

Interface Options

This section controls startup behavior, convenience prompts, visual appearance, and several small interface features. Some appearance-related changes require an FSFO restart before they fully take effect.

The Interface Options section of the FSFO Settings window.
Setting What it does
Auto Connect Attempts to connect FSFO to the simulator automatically when the sim is available.
Show Portal Logon Shows the Pilot Portal sign-in window on startup if you are not already signed in.
Check For Updates Checks for new FSFO versions when the app starts.
Check FSUIPC Verifies FSUIPC status or version on startup.
Warning Beeps Plays warning beeps for important notices such as stale flight-plan or METAR-related issues.
Verify Exit Prompts before closing FSFO.
Show Post Flt Rpt Shows the Post Flight Report when supported by the current operating mode.
Open Cloud Sync Opens Crew Portal or Cloud Sync on startup if you are not already signed in there.
FSFO On Top Keeps the FSFO window above other windows.
Remember Last Location Restores the previous window position when FSFO is reopened.
Start On Flight Plan Opens FSFO on the Flight Plan page instead of the default home area.
Switch To Checklist Automatically switches to the Checklist or SOP page during relevant phases.
Display ACARS Shows ACARS-related flight information in the interface.
Hide Home Button Hides the Home button on the main toolbar.
Include Pilot Actions Includes pilot-side actions in the displayed task or action information.
Hide User Data Folder Hides the Open User Data Folder button from the main page.
Voice Status Callout Uses the configured SAPI pilot voice for voice-test feedback and speech-recognition status callouts.
Show Scroll Bar Displays scroll bars in SOP text areas when content is longer than the visible panel.
Open OPS Automatically opens the Operations window the first time a preflight flow starts.
Hide PAX Status Hide the passenger status strip on the SOPs page and let the lower panels use the extra room.
Auto Close Comm Pnl When enabled, the comm ribbon returns to its minimized state after an action.
Open Comm Pnl Opens the comm panel automatically when FSFO connects to the sim.
Remote Access Enables certain features to be controlled on another device on your network using a web browser.
Mask IP Address Hides your private IP address and remote access pages and only shows masked details only.
Upload To VATSIM After importing a SimBrief dispatch, opens a prefilled VATSIM flight-plan page in the embedded browser.
Ask Seat Config Prompts once per aircraft to store seat-count and cabin-layout information for the Operations page.
Opacity Controls window opacity from more transparent to more opaque.
Font size Controls the size of interface text.
Background picture Selects the FSFO background image theme.
Border color Selects the panel border color.
Border thickness Selects the thickness of the border.
Border brush Selects the brush style used for the border.
Padding Controls the spacing between the panel border and the contents inside it.

Note: Some visual settings in this section require an FSFO restart before the full change is visible everywhere.