Career Mode User Guide: Difference between revisions

From FSFO Support Hub
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
= FSFO Career Mode User Guide =
= FSFO Career Mode User Guide =


This page explains how Career Mode works in FSFO, including pilot progression, schedules, training, scoring, fatigue, and the permanent flight log.
This page explains how Career Mode works in FSFO, including setup, pilot progression, schedules, training, scoring, fatigue, passenger comfort, company discipline, and the permanent flight log.


<div style="margin:0.8em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
<div style="margin:0.8em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
Line 14: Line 14:


== Overview ==
== Overview ==
Career Mode is designed for pilots who want persistent progression across multiple flights instead of isolated one-off sessions.


Career Mode is built around three main areas:
Career Mode is built around three main areas:
Line 27: Line 29:


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#eef3fb; border-left:4px solid #1f4fa3;">
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#eef3fb; border-left:4px solid #1f4fa3;">
Use Career Mode if you want persistent progression across multiple flights instead of isolated one-off sessions.
Use Career Mode if you want your flights, scores, contracts, and company history to carry forward over time.
</div>
</div>


Line 34: Line 36:
----
----


== Getting Started ==
== Quick Start ==


To begin using Career Mode:
To begin using Career Mode:
Line 40: Line 42:
# Open the '''Career Dashboard'''
# Open the '''Career Dashboard'''
# Click '''Rebuild Database''' the first time you use Career Mode
# Click '''Rebuild Database''' the first time you use Career Mode
# Review, Select and '''Save your Career Options'''
# Enter your pilot name
# Enter your pilot name
# Select a company
# Select a company  
# Optionally select a type rating
## You can click on the underline to see all compaines
# Select a type rating (the first one is free)
# Click '''Apply Company'''
# Click '''Apply Company'''
# Click '''Generate Schedule'''
# Fly the '''next pending leg'''
# Review your results in the '''Flight Log'''


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
Once accepted, your pilot profile is created and Career Mode begins tracking your progress.
Once accepted, your pilot profile is created and Career Mode begins tracking your progress.
</div>
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf7f2; border-left:6px solid #f0ad4e;">
<strong>Important:</strong> A flight does not automatically count toward progression. If schedule enforcement is enabled, you must complete the next pending leg correctly for the flight to advance your career.
</div>
[[#top|Back to top]]
----
== Career Mode Flow at a Glance ==
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Typical Career Mode flow:
1. Create or rebuild the database
2. Apply to a company
3. Configure career options
4. Generate a schedule
5. Fly the next pending leg
6. Receive a Landing Score and Total Score
7. Update pay, balance, progression, fatigue, warnings, and flight log
</pre>
</div>
</div>


Line 126: Line 157:
----
----


== Companies and Company Tiers ==
== Before You Fly: Readiness and Schedule Rules ==
 
Companies are loaded from ''Airlines.cfg''. Each airline has a tier. That tier affects hiring rules, contract leg requirements, and pay scaling.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Current contract-leg requirements by company tier:
 
Tier 1 = 30 legs
Tier 2 = 60 legs
Tier 3 = 90 legs
Tier 4 = 120 legs
Tier 5 = 150 legs
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If you leave a company before satisfying the required legs, Career Mode can apply a contract-break penalty.
</div>
 
[[#top|Back to top]]
 
----
 
== Ranks ==
 
Career Mode uses a five-rank system:
 
* '''Rank 1''' - Cadet
* '''Rank 2''' - Second Officer
* '''Rank 3''' - First Officer
* '''Rank 4''' - Captain
* '''Rank 5''' - Senior Captain
 
Your rank affects:
 
* the maximum leg distance used in automatic scheduling
* your bidding advantage when schedules are generated
* which companies you can apply to if rank-based hiring is enabled
* your promotion eligibility
* your pay multiplier through Career Tier
 
[[#top|Back to top]]
 
----
 
== How Promotions Work ==
 
Promotions are based on two things:
 
* '''Total Legs'''
* '''Average Score'''
 
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<strong>Requirement:</strong> Your <strong>Average Score</strong> must be at least <strong>92.0</strong> before any promotion is possible.
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Promotion thresholds:
 
50 total legs  = Second Officer
125 total legs = First Officer
200 total legs = Captain
350 total legs = Senior Captain
</pre>
</div>
 
If your flight is not credited toward progression, it will not count toward promotion.
 
[[#top|Back to top]]
 
----
 
== Career Tier and Pay ==
 
Each company has a base hourly pay rate. Base pay is assigned by region (e.g. US, Europe, or Middle East) and is intended to reflect the average starting pay for airline pilots in that part of the world.  Career Tier increases with promotion. Pay is recalculated using a fixed hourly raise, not a multiplier.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Current Career Tier hourly raises:
 
Tier 1 = +$0/hr
Tier 2 = +$5/hr
Tier 3 = +$10/hr
Tier 4 = +$18/hr
Tier 5 = +$28/hr
 
Final hourly pay = company base hourly pay + current Career Tier hourly raise
</pre>
</div>
 
When you are promoted, FSFO updates:
 
* your rank
* your career tier
* your pay per hour
 
[[#top|Back to top]]
 
----
 
== Company Applications ==
 
If '''Application based on rank''' is enabled, not every pilot can freely join every airline tier.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Current hiring chances:
 
Cadet
- Tier 1 = 100%
 
Second Officer
- Tier 1 = 100%
- Tier 2 = 50%
 
First Officer
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 50%
 
Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 75%
 
Senior Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 95%
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If you are rejected by the same company, FSFO enforces a 7-day wait before trying again.
</div>
 
[[#top|Back to top]]
 
----
 
== Type Ratings and Training ==
 
Use '''Apply Type Rating''' after you have joined a company.


Type rating requests will be blocked if:
Before a career flight can fully count, FSFO may check:


* no pilot profile exists
* your current company
* the pilot is not currently employed by a company
* your current schedule
* the pilot is already in training
* your current location
* the pilot already holds that type rating
* type-rating requirements
* fatigue
* readiness rules tied to enabled career options


Two training paths are available:
If '''Start from last airport''' is enabled, you must begin near your saved pilot location.


* '''Private Training'''
If '''Lock schedule until complete''' is enabled, you cannot generate a new schedule while your current one still has incomplete legs.
Costs money immediately


* '''Company Training'''
If '''Enable fatigue''' is enabled, readiness fails if your fatigue is too high.
Extends contract legs instead of charging the balance directly


Training duration and costs depend on the type rating group.
If '''Must have type rating''' is enabled, FSFO verifies that you already hold the required type rating for the current aircraft.


[[#top|Back to top]]
[[#top|Back to top]]
Line 300: Line 187:
* rank
* rank
* type rating, if type-rating enforcement is enabled
* type rating, if type-rating enforcement is enabled
* current location and preferred airport logic
* current location and preferred-airport logic


If '''Schedule Based On Rank''' s enabled, FSFO automatically applies a maximum leg distance by rank:
If '''Schedule Based On Rank''' is enabled, FSFO automatically applies a maximum leg distance by rank:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>Rank 1 = 750 NM
<pre>
Rank 2 = 1500 NM
Rank 1 = 600 NM
Rank 3 = 4000 NM
Rank 2 = 1200 NM
Rank 4 = 8000 NM
Rank 3 = 2500 NM
Rank 5 = 10000 NM</pre>
Rank 4 = 5000 NM
Rank 5 = 10000 NM
</pre>
</div>
</div>


Line 324: Line 213:
== Schedule Bidding System ==
== Schedule Bidding System ==


Lets you request specific route segments when generating a Career Mode schedule. Enter your bids in the '''Route Bid''' box using directional airport pairs separated by commas, for example: <code>KBOS-KBGR,KBGR-KDEN</code>. Bids are '''directional only''', so <code>KBOS-KBGR</code> is different from <code>KBGR-KBOS</code>. FSFO applies bids '''in the order entered''', and each bid must maintain schedule continuity — the next bid must depart from the airport where the previous leg ended, otherwise the remaining bid is wasted..
The Schedule Bidding System lets you request specific route segments when generating a Career Mode schedule.


If '''Schedule Based On Rank''' is enabled, each bid leg is awarded based on the pilot’s current rank:  
Enter your bids in the '''Route Bid''' box using directional airport pairs separated by commas, for example:
 
<code>KBOS-KBGR,KBGR-KDEN</code>
 
Bids are '''directional only''', so <code>KBOS-KBGR</code> is different from <code>KBGR-KBOS</code>.
 
FSFO applies bids '''in the order entered''', and each bid must maintain schedule continuity. The next bid must depart from the airport where the previous leg ended, otherwise the remaining bid is wasted.
 
If '''Schedule Based On Rank''' is enabled, each bid leg is awarded based on the pilot's current rank:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
Line 340: Line 237:
</div>
</div>


If '''Schedule Based On Rank''' is disabled, FSFO will try to honor the requested bid exactly as entered, but only if it can still build a continuous schedule from the pilot’s current location.
If '''Schedule Based On Rank''' is disabled, FSFO will try to honor the requested bid exactly as entered, but only if it can still build a continuous schedule from the pilot's current location.
 
[[#top|Back to top]]
 
----
 
== Preferred Airport ==
 
You can set a preferred airport for a company. FSFO uses that airport when generating schedules and gives preference to routes that end there, especially near the end of a generated trip.
 
[[#top|Back to top]]
 
----
 
== Route Map ==
 
After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally.


[[#top|Back to top]]
[[#top|Back to top]]
Line 427: Line 308:
----
----


== Landing Score ==
== Total Score and Qualification ==
 
Career Mode stores both:
 
* '''Landing Score'''
* '''Total Score'''
 
'''Landing Score''' and '''Total Score''' are not the same thing.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Current Total Score model:
 
Each career flight starts at Total Score = 100.
 
Score deductions are then applied for:
- Critical errors
- Configuration errors
- Lights errors
- Speed / angle errors
- General errors
 
Passenger Comfort is tracked separately and can also reduce the final Total Score.
 
Final Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty
</pre>
</div>
 
=== Total Score Deductions ===
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
Critical
 
Crash detected = score set to 0
- Threshold: landing rate greater than 900 FPM
 
Stall detected = -10
- Threshold: stall warning is active
 
Overspeed warning = -10
- Threshold: overspeed warning is active
 
Aircraft overweight = -10
- Threshold: gross weight is greater than maximum gross weight
 
Unstable approach = -10
- Checked only between 1,000 ft AGL and 100 ft AGL
- Triggered if vertical speed is outside -1200 to -300 FPM
  or bank angle is greater than 25°
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
Configuration
 
Flaps misconfigured / flap overspeed = -6
- Triggered if:
  - flap overspeed is detected
  - or, during climb, flaps are not clean below 200 ft AGL
  - or, on final, landing flaps are not set below 1,000 ft AGL
 
Gear misconfigured / gear overspeed = -6
- Triggered if:
  - landing gear overspeed is detected
  - or gear is still down above 499 ft AGL during climb
  - or gear is not extended below 1,000 ft AGL on final
 
Spoilers not deployed on rollout = -6
- Triggered when:
  - spoilers are available
  - IAS is between 80 and 95
  - spoiler position is less than 6000
 
Excess G-force = -6
- Threshold: absolute G-force is greater than 2.5 G
 
Fuel management failure = -2
- Threshold: landing fuel is below 7% of total fuel capacity
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
Lights
 
Navigation lights misconfigured = -2
- Threshold: ground speed greater than 5 during taxi and navigation lights are off
 
Beacon lights misconfigured = -2
- Threshold: ground speed greater than 5 during taxi and beacon light is off
 
Strobe lights misconfigured = -2
- Threshold: strobe lights are off during climb or final
 
Landing lights misconfigured = -2
- Threshold: landing lights are not on when required
- Also triggered if landing lights are left on above 18,500 ft AGL
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
Speed / Angle


Landing Score is based on:
Pitch angle exceeded = -5
- Threshold: absolute pitch angle greater than 25°


* vertical speed
Bank angle exceeded = -5
* G-force
- Threshold: absolute bank angle greater than 35°
* distance from the runway threshold
 
IAS exceeded below 10,000 MSL = -4
- Triggered when:
  - IAS greater than 260
  - altitude is below 10,000 MSL
  - aircraft empty weight is greater than 200,000 lbs
 
Ground speed exceeded while taxiing = -4
- Threshold: ground speed greater than 30
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
General
 
Landing score below passing threshold = -6
- Threshold: Landing Score below 80
</pre>
</div>
 
=== Landing Score ===
 
'''Landing Score''' is calculated separately from touchdown performance.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Landing Score components:
 
Vertical speed             = 35%
Touchdown G-force           = 15%
Runway threshold distance   = 30%
Runway centerline          = 20%
 
A Landing Score below 80 triggers a Landing Evaluation penalty.
</pre>
</div>
 
=== Landing Score Details ===


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
When runway data is available, the current weighting is:
Vertical-speed score buckets:


Vertical speed      = 40%
>= 750 FPM = 0
G-force            = 30%
500-749 FPM = 50
Touchdown distance  = 30%
400-499 FPM = 70
300-399 FPM = 80
200-299 FPM = 90
100-199 FPM = 100
0-99 FPM = 90
</pre>
</pre>
</div>
</div>


If runway threshold data is unavailable, the distance portion is redistributed proportionally between vertical speed and G-force.
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
G-force score:
 
Ideal touchdown G-force is 1.0 G.
The score degrades linearly as touchdown G-force increases toward 2.5 G.
</pre>
</div>
 
=== Qualification for Progression ===
 
A flight is currently marked '''Qualified for Progression''' when '''Total Score is 90 or greater'''.
 
The flight log stores the qualification result along with:
 
* pay earned
* fines paid
* critical, configuration, lights, and speed error counts
* landing rate
* landing G
* block fuel
* landing score
* total score


[[#top|Back to top]]
[[#top|Back to top]]
Line 451: Line 501:
----
----


== Total Score and Qualification ==
== Passenger Comfort ==
 
If '''Passenger comfort''' is turned on, FSFO monitors handling and comfort limits during taxi, rollout, climb, airborne flight, and final approach.
 
Passenger comfort is only monitored when:
 
* '''Passenger comfort''' is enabled
* the flight is a valid career flight
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;"><pre>
Current comfort limits:
 
Taxi speed
- >29 = Taxi Too Fast, level 1
- >34 = Taxi Too Fast, level 2
 
Taxi braking
- both brakes >90% of Max while ground speed >9 and not on a runway
 
Jerky taxi turning
- FSFO uses the same slip/skid thresholds, but the ground-speed trigger now depends on aircraft weight.
 
Jerky taxi turning penalty levels:
- Small aircraft, acftMaxGrossWeight < 60,000 lbs:
  - slip/skid >50 while ground speed >15 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >15 kt and not on a runway = level 2
 
- Narrow-body / medium aircraft, acftMaxGrossWeight 60,000-299,999 lbs:
  - slip/skid >50 while ground speed >12 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >12 kt and not on a runway = level 2
 
- Wide-body / heavy aircraft, acftMaxGrossWeight >= 300,000 lbs:
  - slip/skid >50 while ground speed >10 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >10 kt and not on a runway = level 2
 
G-force in air
- |G - 1.0| >0.45 = level 1
- |G - 1.0| >0.55 = level 2
 
Bank angle in air
- |bank| >30° = level 1
- |bank| >35° = level 2
 
Pitch Change
- pitch rate > 3° per second for 2 seconds = level 1
- pitch rate > 5° per second for 1 second = level 2
- pitch rate > 8° per second immediately = level 3
 
Slip/skid in air
- slip/skid >35 = level 1
- slip/skid >60 = level 2
 
Landing firmness
- Landing G >= 1.40 or landing rate >= 350 = level 1
- Landing G >= 1.80 or landing rate >= 500 = level 2
 
Rollout braking
- both brakes >90% of Max and ground speed >40
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>Current comfort penalty values:
 
Taxi Too Fast                    = 0 / 2 / 4
Braking Too Hard                = 0 / 4 on taxi, 0 / 2 on rollout
Jerky Turning                    = 0 / 1 / 2
Excessive G-Force                = 0 / 2 / 4
Excessive Bank Angle            = 0 / 1 / 2
Pitch Rate Change                = 0 / 1 / 2 / 3
Slip/Skid Too High              = 0 / 1 / 2
Landing Too Firm                = 0 / 1 / 2</pre>
</div>
 
FSFO stores only the highest bucket reached for each comfort category. If the same category is triggered again at the same or a lower level, no additional penalty is added. If a worse level is reached later, only the difference to the higher bucket is added.
 
=== Effect on Final Career Score ===
 
If '''Passenger comfort''' is enabled, the final career score now uses both:
 
* the normal '''comfort event penalty''' from the limits above
* the '''actual passenger condition at shutdown/block-in''' before deboarding starts
 
The final score is calculated as:
 
<pre>
Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty
</pre>
 
The '''Comfort Penalty''' is the running total from the monitored comfort events above.
 
The '''Passenger Outcome Penalty''' is a separate end-of-flight penalty based on how the cabin actually finished the flight. This lets poor passenger outcomes matter even if they were caused by a combination of delay, anxiety, hunger, thirst, health decline, and service timing.
 
=== End-of-Flight Passenger Outcome Score ===
 
At shutdown, FSFO takes the average passenger values and builds a cabin outcome score from:
 
* Satisfaction
* Anxiety
* Health
* Hunger
* Thirst
 
The cabin outcome score is weighted as:
 
<pre>
Cabin Outcome Score =
  (Satisfaction x 0.34) +
  ((100 - Anxiety) x 0.22) +
  (Health x 0.22) +
  ((100 - Hunger) x 0.11) +
  ((100 - Thirst) x 0.11)
</pre>
 
Higher satisfaction and health help the score.
Higher anxiety, hunger, and thirst reduce the score.
 
=== Passenger Outcome Penalty Rules ===
 
At block-in, FSFO adds a modest extra penalty when passenger outcomes are poor:
 
<pre>
If Cabin Outcome Score < 85:
  add ceil((85 - score) / 4)
 
If average Satisfaction < 70:
  add ceil((70 - satisfaction) / 10)
 
If average Anxiety > 40:
  add ceil((anxiety - 40) / 15)
 
Maximum Passenger Outcome Penalty = 15 points
</pre>
 
This penalty is intentionally capped so that passenger outcomes matter, but do not completely overpower the pilot score.


Career Mode stores both:
=== Important Note About Passenger Comfort % ===


* '''Landing Score'''
The live '''Passenger Comfort %''' shown on the Operations page is not used directly for the final score.
* '''Total Score'''


A flight is currently marked '''Qualified for Progression''' when the total score meets the system's qualification rule. The flight log stores that qualification result along with pay, fines, and error counts.
That live value already includes the handling comfort penalty, so using it again for final scoring would double-penalize the same event. To avoid that, FSFO uses the clean '''Cabin Outcome Score''' above for the end-of-flight passenger outcome penalty.


[[#top|Back to top]]
[[#top|Back to top]]
Line 486: Line 669:
</pre>
</pre>
</div>
</div>
The 24-hour window is intentionally stricter, so 4 legs in a day is near the limit and 5 legs in a day will usually fail readiness.


Each load is clamped from 0 to 1.
Each load is clamped from 0 to 1.


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>Final fatigue:
<pre>
Final fatigue:


Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)</pre>
Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)
</pre>
</div>
</div>


Line 501: Line 688:
[[#top|Back to top]]
[[#top|Back to top]]


----
== Companies and Company Tiers ==
Companies are loaded from ''Airlines.cfg''. Each airline has a tier. That tier affects hiring rules, contract-leg requirements, and pay scaling.
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Current contract-leg requirements by company tier:
Tier 1 = 30 legs
Tier 2 = 60 legs
Tier 3 = 90 legs
Tier 4 = 120 legs
Tier 5 = 150 legs
</pre>
</div>
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If you leave a company before satisfying the required legs, Career Mode can apply a contract-break penalty.
</div>
[[#top|Back to top]]
----
== Ranks ==
Career Mode uses a five-rank system:
* '''Rank 1''' - Cadet
* '''Rank 2''' - Second Officer
* '''Rank 3''' - First Officer
* '''Rank 4''' - Captain
* '''Rank 5''' - Senior Captain
Your rank affects:
* the maximum leg distance used in automatic scheduling
* your bidding advantage when schedules are generated
* which companies you can apply to if rank-based hiring is enabled
* your promotion eligibility
* your pay multiplier through Career Tier
[[#top|Back to top]]
----
== How Promotions Work ==
Promotions are based on two things:
* '''Total Legs'''
* '''Average Score'''
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<strong>Requirement:</strong> Your <strong>Average Score</strong> must be at least <strong>92.0</strong> before any promotion is possible.
</div>
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Promotion thresholds:
50 total legs  = Second Officer
125 total legs = First Officer
200 total legs = Captain
350 total legs = Senior Captain
</pre>
</div>
If your flight is not credited toward progression, it will not count toward promotion.
[[#top|Back to top]]


----
----


== Passenger Comfort ==
== Career Tier and Pay ==
 
Each company has a base hourly pay rate. Base pay is assigned by region and is intended to reflect the average starting pay for airline pilots in that part of the world.
 
Career Tier increases with promotion. Pay is recalculated using a fixed hourly raise, not a multiplier.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Current Career Tier hourly raises:
 
Tier 1 = +$0/hr
Tier 2 = +$5/hr
Tier 3 = +$10/hr
Tier 4 = +$18/hr
Tier 5 = +$28/hr
 
Final hourly pay = company base hourly pay + current Career Tier hourly raise
</pre>
</div>
 
When you are promoted, FSFO updates:
 
* your rank
* your career tier
* your pay per hour
 
[[#top|Back to top]]


If '''Passenger comfort''' is turned on, FSFO monitors specific handling and comfort limits during taxi, rollout, climb, airborne flight, and final approach.
----


Passenger comfort is only monitored when:
== Company Applications ==


* '''Passenger comfort''' is enabled
If '''Application based on rank''' is enabled, not every pilot can freely join every airline tier.
* the flight is a valid career flight


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Current comfort limits:
Current hiring chances:
 
Cadet
- Tier 1 = 100%
 
Second Officer
- Tier 1 = 100%
- Tier 2 = 50%
 
First Officer
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 50%
 
Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 75%


Taxi speed
Senior Captain
- >29 = Taxi Too Fast, level 1
- Tier 1 = 100%
- >34 = Taxi Too Fast, level 2
- Tier 2 = 100%
- Tier 3 = 95%
</pre>
</div>


Taxi braking
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
- both brakes >22000 while moving >9 knots and not on a runway
If you are rejected by the same company, FSFO enforces a 7-day wait before trying again.
</div>


Jerky taxi turning
[[#top|Back to top]]
- slip/skid >25 = level 1
- slip/skid >50 = level 2


G-force in air
----
- |G - 1.0| >0.30 = level 1
- |G - 1.0| >0.45 = level 2


Bank angle in air
== Type Ratings ==
- |bank| >25° = level 1
- |bank| >35° = level 2


Vertical speed in climb
Type Ratings are used to control which aircraft a pilot is qualified to fly in Career Mode.
- |VS| >2500 = level 1
- |VS| >3200 = level 2
- |VS| >4000 = level 3


Vertical speed in airborne/cruise
If '''Must Have Type Rating''' is enabled, FSFO checks the current aircraft against the type-rating alias file and verifies that the pilot already holds the required rating before the flight can qualify as career-ready.
- |VS| >1800 = level 1
- |VS| >2500 = level 2
- |VS| >3200 = level 3


Vertical speed on final
A pilot must already belong to a company before applying for a new type rating. FSFO will not allow a new application if:
- |VS| >1000 = level 1
- |VS| >1300 = level 2
- |VS| >1700 = level 3


Slip/skid in air
* the pilot does not currently belong to a company
- slip/skid >25 = level 1
* the pilot is already in training
- slip/skid >50 = level 2
* the pilot already holds the selected type rating
 
When applying for a new type rating, FSFO offers two training paths:


Landing firmness
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
- Landing G >= 1.40 or landing rate >= 350 = level 1
<pre>
- Landing G >= 1.80 or landing rate >= 500 = level 2
Private Training
- deducts the training cost from your balance
- cost is adjusted by region using the current company's hub
- cannot be started if the new balance would fall below -75,000


Rollout braking
Company Training
- both brakes >22000 while ground speed >40
- does not charge the training cost directly to your balance
- increases your Contract Remaining Legs instead
</pre>
</pre>
</div>
</div>
Training length and cost depend on the selected type-rating group:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
<pre>
Current comfort penalty values:
CRJ / F7X
- 5 training days
- Private Training: 15,000 × regional multiplier
- Company Training: +20 contract legs
 
A32 / B73
- 7 training days
- Private Training: 25,000 × regional multiplier
- Company Training: +35 contract legs
 
A31 / A33 / B76 / B77 / MD1 / MD11
- 10 training days
- Private Training: 45,000 × regional multiplier
- Company Training: +60 contract legs


Taxi Too Fast        = 0 / 2 / 4
All other supported type ratings
Braking Too Hard      = 0 / 4 on taxi, 0 / 2 on rollout
- 7 training days
Jerky Turning        = 0 / 1 / 2
- Private Training: 20,000 × regional multiplier
Excessive G-Force    = 0 / 2 / 4
- Company Training: +30 contract legs
Excessive Bank Angle  = 0 / 1 / 2
VS Too High (Climb)  = 0 / 1 / 2 / 3
VS Too High (Airborne)= 0 / 1 / 2 / 3
VS Too High (Final)  = 0 / 1 / 2 / 3
Slip/Skid Too High    = 0 / 1 / 2
Landing Too Firm      = 0 / 1 / 2
</pre>
</pre>
</div>
</div>


FSFO stores the highest bucket reached for each comfort category instead of repeatedly stacking the same category over and over.
Once training is started, FSFO records the training type, start date, duration, and end date in the pilot profile.


[[#top|Back to top]]
[[#top|Back to top]]
----
----


== Can Be Fired ==
== Company Discipline, Warnings, and Termination ==
 
If '''Can be fired''' is turned on, FSFO allows company discipline to escalate from warnings to termination.


Before a pilot can receive a company warning, the pilot must have at least:
If '''Can be fired''' is enabled, FSFO tracks company discipline through warnings and possible termination.


* '''5 company legs'''
Warnings do not begin immediately. A pilot must complete at least '''5 company legs''' before warning thresholds are evaluated.


After that point, FSFO checks four error categories against the pilot's total company legs:
After that point, FSFO checks the pilot's accumulated company error rates against the following warning thresholds:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Current warning thresholds:
Warning thresholds:


Critical errors      = 10% of company legs
Critical errors      = 10% of company legs
Line 607: Line 912:
</div>
</div>


If any category reaches its threshold, FSFO issues a company warning.
If any category reaches its threshold, FSFO issues a company warning and increases the pilot's warning count by 1.
 
A pilot may be terminated from the current company if either of the following occurs:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf3f2; border-left:6px solid #c9302c; border-radius:8px;">
<pre>
<pre>
Termination rules:
Termination conditions:


Fired at 3 warnings
Warnings on file >= 3
or
or
Fired if the last flight total score is below 80
Most recent flight Total Score < 50
or
Pilot's total average score < 80
</pre>
</pre>
</div>
</div>


If the pilot is fired, FSFO currently applies the following career penalties:
If a pilot is terminated, FSFO currently applies the following career penalties:


* clears the current company
* current company is cleared
* demotes the pilot by one rank, down to a minimum of Cadet
* pay per hour is set to 0
* resets pay to 0
* company legs are reset to 0
* resets company legs to 0
* contract remaining legs are reset to 0
* resets remaining contract legs to 0
* critical, configuration, speed, and lights error totals are reset
* resets critical, configuration, lights, and speed error totals to 0
* warnings are reset to 0
* resets warnings to 0
* the current schedule is cleared
* clears the current schedule
* the pilot is demoted by one rank, down to a minimum of Cadet
* Career Tier is adjusted to match the new rank


If '''Can be fired''' is turned off, FSFO does not terminate the pilot through this system.
If '''Can be fired''' is turned off, FSFO does not terminate the pilot through this system.
Line 634: Line 944:
[[#top|Back to top]]
[[#top|Back to top]]


----


== Flight Log ==
== Flight Log ==
Line 659: Line 970:


Use the Flight Log window to review your performance over time.
Use the Flight Log window to review your performance over time.
[[#top|Back to top]]
----
== Route Map ==
After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally.


[[#top|Back to top]]
[[#top|Back to top]]
Line 673: Line 992:
* The current schedule stores only the active trip
* The current schedule stores only the active trip
* The flight log is the permanent historical record
* The flight log is the permanent historical record
* The current '''Show Contract''' button is not implemented yet


[[#top|Back to top]]
[[#top|Back to top]]
Line 709: Line 1,027:


If '''Lock schedule until complete''' is enabled, finish the current schedule first or turn that option off.
If '''Lock schedule until complete''' is enabled, finish the current schedule first or turn that option off.
=== My flight was blocked before departure ===
Check whether one of the following options prevented readiness:
* '''Start from last airport'''
* '''Enable fatigue'''
* '''Must have type rating'''


----
----

Latest revision as of 02:59, 30 April 2026

FSFO Career Mode User Guide

This page explains how Career Mode works in FSFO, including setup, pilot progression, schedules, training, scoring, fatigue, passenger comfort, company discipline, and the permanent flight log.

Career Mode uses a local database to track your pilot profile, your active schedule, and your long-term flight history.


Overview

Career Mode is designed for pilots who want persistent progression across multiple flights instead of isolated one-off sessions.

Career Mode is built around three main areas:

  • Pilot Profile

Your pilot's name, company, rank, tier, balance, location, type ratings, score, errors, contract legs, and training status

  • Current Schedule

Your active scheduled legs

  • Flight Log

Your permanent flight history and performance record

Use Career Mode if you want your flights, scores, contracts, and company history to carry forward over time.

Back to top


Quick Start

To begin using Career Mode:

  1. Open the Career Dashboard
  2. Click Rebuild Database the first time you use Career Mode
  3. Review, Select and Save your Career Options
  4. Enter your pilot name
  5. Select a company
    1. You can click on the underline to see all compaines
  6. Select a type rating (the first one is free)
  7. Click Apply Company
  8. Click Generate Schedule
  9. Fly the next pending leg
  10. Review your results in the Flight Log

Once accepted, your pilot profile is created and Career Mode begins tracking your progress.

Important: A flight does not automatically count toward progression. If schedule enforcement is enabled, you must complete the next pending leg correctly for the flight to advance your career.

Back to top


Career Mode Flow at a Glance

Typical Career Mode flow:

1. Create or rebuild the database
2. Apply to a company
3. Configure career options
4. Generate a schedule
5. Fly the next pending leg
6. Receive a Landing Score and Total Score
7. Update pay, balance, progression, fatigue, warnings, and flight log

Back to top


Career Dashboard

The Career Dashboard includes the following major functions:

  • Rebuild Database

Creates or recreates the local career database

  • Apply Company

Applies for a company and creates your pilot profile if needed

  • Apply Type Rating

Starts type-rating training

  • Generate Schedule

Builds your current schedule

  • Load Stats

Refreshes pilot statistics

  • Save Options

Saves career settings

  • Flight Log

Opens the permanent flight history window

NOTE: The current Show Contract button is not implemented yet.

Back to top


Career Options

These options affect how schedules are generated, when flights count toward progression, and whether readiness checks can block a flight.

  • Start from last airport

Requires you to begin your next career flight from your saved current location. If enabled, FSFO checks that you are within 10 NM of the pilot's stored airport before the flight is considered ready.

  • Fatal crash starts over

If enabled, a fatal crash can end your current career and force you to start over.

  • Must fly scheduled flight

Only credits career progress when you complete the next pending scheduled leg in order. If enabled and you do not fly the correct leg, the flight can still be logged, but it will not advance total legs, average score, balance, rank, or career tier.

  • Passenger comfort

Enables passenger-comfort rules so smoother, better-managed flights matter more to your career results.

  • Can be fired

Enables the career rule that allows poor performance or major failures to put your employment at risk.

  • Enable fatigue

Turns on fatigue tracking. If enabled, FSFO checks recent workload and can block career-flight readiness when fatigue rises above the allowed threshold.

  • Schedule based on rank

Automatically builds schedules using the pilot's current rank and tier to determine the maximum leg distance. If a full schedule cannot be built within that cap, FSFO falls back to the full eligible route set.

  • Must have type rating

Requires the pilot to hold the appropriate type rating before operating aircraft that need one.

  • Lock schedule until complete

Prevents generating a new schedule while an existing schedule still has incomplete legs.

  • Application based on rank

Makes company applications depend on your current rank, including tier eligibility and hiring probability. It also enforces the rejection cooldown for repeat applications.

Back to top


Before You Fly: Readiness and Schedule Rules

Before a career flight can fully count, FSFO may check:

  • your current company
  • your current schedule
  • your current location
  • type-rating requirements
  • fatigue
  • readiness rules tied to enabled career options

If Start from last airport is enabled, you must begin near your saved pilot location.

If Lock schedule until complete is enabled, you cannot generate a new schedule while your current one still has incomplete legs.

If Enable fatigue is enabled, readiness fails if your fatigue is too high.

If Must have type rating is enabled, FSFO verifies that you already hold the required type rating for the current aircraft.

Back to top


Schedule Generation

Schedules are built from your route data and filtered by:

  • current airline
  • rank
  • type rating, if type-rating enforcement is enabled
  • current location and preferred-airport logic

If Schedule Based On Rank is enabled, FSFO automatically applies a maximum leg distance by rank:

Rank 1 = 600 NM
Rank 2 = 1200 NM
Rank 3 = 2500 NM
Rank 4 = 5000 NM
Rank 5 = 10000 NM

FSFO first tries to build a schedule using that cap. If it cannot build a full schedule, it falls back to the full eligible route pool.

If Schedule based on rank is disabled, the Max NM value entered by the user is enforced strictly.

If Lock schedule until complete is enabled, FSFO will not generate a new schedule while an incomplete schedule already exists.

Back to top


Schedule Bidding System

The Schedule Bidding System lets you request specific route segments when generating a Career Mode schedule.

Enter your bids in the Route Bid box using directional airport pairs separated by commas, for example:

KBOS-KBGR,KBGR-KDEN

Bids are directional only, so KBOS-KBGR is different from KBGR-KBOS.

FSFO applies bids in the order entered, and each bid must maintain schedule continuity. The next bid must depart from the airport where the previous leg ended, otherwise the remaining bid is wasted.

If Schedule Based On Rank is enabled, each bid leg is awarded based on the pilot's current rank:

Current rank-based bid chances:

Rank 1 = 20%
Rank 2 = 40%
Rank 3 = 60%
Rank 4 = 80%
Rank 5 = 90%

If Schedule Based On Rank is disabled, FSFO will try to honor the requested bid exactly as entered, but only if it can still build a continuous schedule from the pilot's current location.

Back to top


When a Flight Counts Toward Progression

A flight does not automatically count toward career progression.

If Must fly scheduled flight is enabled, the flight must complete the next pending leg in order.

FSFO compares:

  • the actual departure airport
  • the actual arrival airport

For the leg to count, the pilot must:

  • start at the correct airport
  • arrive at the correct airport
  • match the next pending scheduled leg

If the flight does not meet that requirement:

  • it can still be logged
    • it will not increase Total Legs
    • it will not update Average Score
    • it will not reduce Contract Remaining Legs
    • it will not update Balance
    • it will not trigger promotion

If the next scheduled leg is completed correctly, it is marked COMPLETED. If that was the final remaining leg, the schedule is cleared.

Back to top


Flying a Career Flight

Before flight, FSFO captures:

  • company
  • flight number
  • aircraft
  • departure airport
  • arrival airport

During flight, Career Mode monitors multiple operational and scoring categories.

Examples include:

  • pitch exceedance
  • bank exceedance
  • G-force exceedance
  • IAS exceedance
  • taxi-speed exceedance
  • light misuse
  • fuel-management failures
  • landing-performance issues

These events affect the total score and increment the appropriate error counters.

Back to top


Total Score and Qualification

Career Mode stores both:

  • Landing Score
  • Total Score

Landing Score and Total Score are not the same thing.

Current Total Score model:

Each career flight starts at Total Score = 100.

Score deductions are then applied for:
- Critical errors
- Configuration errors
- Lights errors
- Speed / angle errors
- General errors

Passenger Comfort is tracked separately and can also reduce the final Total Score.

Final Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty

Total Score Deductions

Critical

Crash detected = score set to 0
- Threshold: landing rate greater than 900 FPM

Stall detected = -10
- Threshold: stall warning is active

Overspeed warning = -10
- Threshold: overspeed warning is active

Aircraft overweight = -10
- Threshold: gross weight is greater than maximum gross weight

Unstable approach = -10
- Checked only between 1,000 ft AGL and 100 ft AGL
- Triggered if vertical speed is outside -1200 to -300 FPM
  or bank angle is greater than 25°
Configuration

Flaps misconfigured / flap overspeed = -6
- Triggered if:
  - flap overspeed is detected
  - or, during climb, flaps are not clean below 200 ft AGL
  - or, on final, landing flaps are not set below 1,000 ft AGL

Gear misconfigured / gear overspeed = -6
- Triggered if:
  - landing gear overspeed is detected
  - or gear is still down above 499 ft AGL during climb
  - or gear is not extended below 1,000 ft AGL on final

Spoilers not deployed on rollout = -6
- Triggered when:
  - spoilers are available
  - IAS is between 80 and 95
  - spoiler position is less than 6000

Excess G-force = -6
- Threshold: absolute G-force is greater than 2.5 G

Fuel management failure = -2
- Threshold: landing fuel is below 7% of total fuel capacity
Lights

Navigation lights misconfigured = -2
- Threshold: ground speed greater than 5 during taxi and navigation lights are off

Beacon lights misconfigured = -2
- Threshold: ground speed greater than 5 during taxi and beacon light is off

Strobe lights misconfigured = -2
- Threshold: strobe lights are off during climb or final

Landing lights misconfigured = -2
- Threshold: landing lights are not on when required
- Also triggered if landing lights are left on above 18,500 ft AGL
Speed / Angle

Pitch angle exceeded = -5
- Threshold: absolute pitch angle greater than 25°

Bank angle exceeded = -5
- Threshold: absolute bank angle greater than 35°

IAS exceeded below 10,000 MSL = -4
- Triggered when:
  - IAS greater than 260
  - altitude is below 10,000 MSL
  - aircraft empty weight is greater than 200,000 lbs

Ground speed exceeded while taxiing = -4
- Threshold: ground speed greater than 30
General

Landing score below passing threshold = -6
- Threshold: Landing Score below 80

Landing Score

Landing Score is calculated separately from touchdown performance.

Landing Score components:

Vertical speed              = 35%
Touchdown G-force           = 15%
Runway threshold distance   = 30%
Runway centerline           = 20%

A Landing Score below 80 triggers a Landing Evaluation penalty.

Landing Score Details

Vertical-speed score buckets:

>= 750 FPM = 0
500-749 FPM = 50
400-499 FPM = 70
300-399 FPM = 80
200-299 FPM = 90
100-199 FPM = 100
0-99 FPM = 90
G-force score:

Ideal touchdown G-force is 1.0 G.
The score degrades linearly as touchdown G-force increases toward 2.5 G.

Qualification for Progression

A flight is currently marked Qualified for Progression when Total Score is 90 or greater.

The flight log stores the qualification result along with:

  • pay earned
  • fines paid
  • critical, configuration, lights, and speed error counts
  • landing rate
  • landing G
  • block fuel
  • landing score
  • total score

Back to top


Passenger Comfort

If Passenger comfort is turned on, FSFO monitors handling and comfort limits during taxi, rollout, climb, airborne flight, and final approach.

Passenger comfort is only monitored when:

  • Passenger comfort is enabled
  • the flight is a valid career flight
Current comfort limits:

Taxi speed
- >29 = Taxi Too Fast, level 1
- >34 = Taxi Too Fast, level 2

Taxi braking
- both brakes >90% of Max while ground speed >9 and not on a runway

Jerky taxi turning
- FSFO uses the same slip/skid thresholds, but the ground-speed trigger now depends on aircraft weight.

Jerky taxi turning penalty levels:
- Small aircraft, acftMaxGrossWeight < 60,000 lbs:
  - slip/skid >50 while ground speed >15 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >15 kt and not on a runway = level 2

- Narrow-body / medium aircraft, acftMaxGrossWeight 60,000-299,999 lbs:
  - slip/skid >50 while ground speed >12 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >12 kt and not on a runway = level 2

- Wide-body / heavy aircraft, acftMaxGrossWeight >= 300,000 lbs:
  - slip/skid >50 while ground speed >10 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >10 kt and not on a runway = level 2

G-force in air
- |G - 1.0| >0.45 = level 1
- |G - 1.0| >0.55 = level 2

Bank angle in air
- |bank| >30° = level 1
- |bank| >35° = level 2

Pitch Change
- pitch rate > 3° per second for 2 seconds = level 1
- pitch rate > 5° per second for 1 second = level 2
- pitch rate > 8° per second immediately = level 3

Slip/skid in air
- slip/skid >35 = level 1
- slip/skid >60 = level 2

Landing firmness
- Landing G >= 1.40 or landing rate >= 350 = level 1
- Landing G >= 1.80 or landing rate >= 500 = level 2

Rollout braking
- both brakes >90% of Max and ground speed >40
Current comfort penalty values:

Taxi Too Fast                    = 0 / 2 / 4
Braking Too Hard                 = 0 / 4 on taxi, 0 / 2 on rollout
Jerky Turning                    = 0 / 1 / 2
Excessive G-Force                = 0 / 2 / 4
Excessive Bank Angle             = 0 / 1 / 2
Pitch Rate Change                = 0 / 1 / 2 / 3
Slip/Skid Too High               = 0 / 1 / 2
Landing Too Firm                 = 0 / 1 / 2

FSFO stores only the highest bucket reached for each comfort category. If the same category is triggered again at the same or a lower level, no additional penalty is added. If a worse level is reached later, only the difference to the higher bucket is added.

Effect on Final Career Score

If Passenger comfort is enabled, the final career score now uses both:

  • the normal comfort event penalty from the limits above
  • the actual passenger condition at shutdown/block-in before deboarding starts

The final score is calculated as:

Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty

The Comfort Penalty is the running total from the monitored comfort events above.

The Passenger Outcome Penalty is a separate end-of-flight penalty based on how the cabin actually finished the flight. This lets poor passenger outcomes matter even if they were caused by a combination of delay, anxiety, hunger, thirst, health decline, and service timing.

End-of-Flight Passenger Outcome Score

At shutdown, FSFO takes the average passenger values and builds a cabin outcome score from:

  • Satisfaction
  • Anxiety
  • Health
  • Hunger
  • Thirst

The cabin outcome score is weighted as:

Cabin Outcome Score =
  (Satisfaction x 0.34) +
  ((100 - Anxiety) x 0.22) +
  (Health x 0.22) +
  ((100 - Hunger) x 0.11) +
  ((100 - Thirst) x 0.11)

Higher satisfaction and health help the score. Higher anxiety, hunger, and thirst reduce the score.

Passenger Outcome Penalty Rules

At block-in, FSFO adds a modest extra penalty when passenger outcomes are poor:

If Cabin Outcome Score < 85:
  add ceil((85 - score) / 4)

If average Satisfaction < 70:
  add ceil((70 - satisfaction) / 10)

If average Anxiety > 40:
  add ceil((anxiety - 40) / 15)

Maximum Passenger Outcome Penalty = 15 points

This penalty is intentionally capped so that passenger outcomes matter, but do not completely overpower the pilot score.

Important Note About Passenger Comfort %

The live Passenger Comfort % shown on the Operations page is not used directly for the final score.

That live value already includes the handling comfort penalty, so using it again for final scoring would double-penalize the same event. To avoid that, FSFO uses the clean Cabin Outcome Score above for the end-of-flight passenger outcome penalty.

Back to top


Fatigue

If Enable fatigue is turned on, FSFO calculates fatigue from your recent workload using both:

  • number of legs
  • block hours

It evaluates three rolling workload windows:

  • Last 24 hours
  • Last 72 hours
  • Last 7 days
Current formula:

Acute Load  = max(legs in last 24h / 3.5, block hours in last 24h / 7)
Short Load  = max(legs in last 72h / 7,   block hours in last 72h / 16)
Weekly Load = max(legs in last 7d  / 14,  block hours in last 7d  / 32)

The 24-hour window is intentionally stricter, so 4 legs in a day is near the limit and 5 legs in a day will usually fail readiness.

Each load is clamped from 0 to 1.

Final fatigue:

Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)

The result is capped at 100 and rounded to the nearest whole percent.

Career Mode readiness fails if fatigue is greater than or equal to 75%.

Back to top


Companies and Company Tiers

Companies are loaded from Airlines.cfg. Each airline has a tier. That tier affects hiring rules, contract-leg requirements, and pay scaling.

Current contract-leg requirements by company tier:

Tier 1 = 30 legs
Tier 2 = 60 legs
Tier 3 = 90 legs
Tier 4 = 120 legs
Tier 5 = 150 legs

If you leave a company before satisfying the required legs, Career Mode can apply a contract-break penalty.

Back to top


Ranks

Career Mode uses a five-rank system:

  • Rank 1 - Cadet
  • Rank 2 - Second Officer
  • Rank 3 - First Officer
  • Rank 4 - Captain
  • Rank 5 - Senior Captain

Your rank affects:

  • the maximum leg distance used in automatic scheduling
  • your bidding advantage when schedules are generated
  • which companies you can apply to if rank-based hiring is enabled
  • your promotion eligibility
  • your pay multiplier through Career Tier

Back to top


How Promotions Work

Promotions are based on two things:

  • Total Legs
  • Average Score

Requirement: Your Average Score must be at least 92.0 before any promotion is possible.

Promotion thresholds:

50 total legs  = Second Officer
125 total legs = First Officer
200 total legs = Captain
350 total legs = Senior Captain

If your flight is not credited toward progression, it will not count toward promotion.

Back to top


Career Tier and Pay

Each company has a base hourly pay rate. Base pay is assigned by region and is intended to reflect the average starting pay for airline pilots in that part of the world.

Career Tier increases with promotion. Pay is recalculated using a fixed hourly raise, not a multiplier.

Current Career Tier hourly raises:

Tier 1 = +$0/hr
Tier 2 = +$5/hr
Tier 3 = +$10/hr
Tier 4 = +$18/hr
Tier 5 = +$28/hr

Final hourly pay = company base hourly pay + current Career Tier hourly raise

When you are promoted, FSFO updates:

  • your rank
  • your career tier
  • your pay per hour

Back to top


Company Applications

If Application based on rank is enabled, not every pilot can freely join every airline tier.

Current hiring chances:

Cadet
- Tier 1 = 100%

Second Officer
- Tier 1 = 100%
- Tier 2 = 50%

First Officer
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 50%

Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 75%

Senior Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 95%

If you are rejected by the same company, FSFO enforces a 7-day wait before trying again.

Back to top


Type Ratings

Type Ratings are used to control which aircraft a pilot is qualified to fly in Career Mode.

If Must Have Type Rating is enabled, FSFO checks the current aircraft against the type-rating alias file and verifies that the pilot already holds the required rating before the flight can qualify as career-ready.

A pilot must already belong to a company before applying for a new type rating. FSFO will not allow a new application if:

  • the pilot does not currently belong to a company
  • the pilot is already in training
  • the pilot already holds the selected type rating

When applying for a new type rating, FSFO offers two training paths:

Private Training
- deducts the training cost from your balance
- cost is adjusted by region using the current company's hub
- cannot be started if the new balance would fall below -75,000

Company Training
- does not charge the training cost directly to your balance
- increases your Contract Remaining Legs instead

Training length and cost depend on the selected type-rating group:

CRJ / F7X
- 5 training days
- Private Training: 15,000 × regional multiplier
- Company Training: +20 contract legs

A32 / B73
- 7 training days
- Private Training: 25,000 × regional multiplier
- Company Training: +35 contract legs

A31 / A33 / B76 / B77 / MD1 / MD11
- 10 training days
- Private Training: 45,000 × regional multiplier
- Company Training: +60 contract legs

All other supported type ratings
- 7 training days
- Private Training: 20,000 × regional multiplier
- Company Training: +30 contract legs

Once training is started, FSFO records the training type, start date, duration, and end date in the pilot profile.

Back to top


Company Discipline, Warnings, and Termination

If Can be fired is enabled, FSFO tracks company discipline through warnings and possible termination.

Warnings do not begin immediately. A pilot must complete at least 5 company legs before warning thresholds are evaluated.

After that point, FSFO checks the pilot's accumulated company error rates against the following warning thresholds:

Warning thresholds:

Critical errors      = 10% of company legs
Configuration errors = 25% of company legs
Speed errors         = 35% of company legs
Lights errors        = 50% of company legs

If any category reaches its threshold, FSFO issues a company warning and increases the pilot's warning count by 1.

A pilot may be terminated from the current company if either of the following occurs:

Termination conditions:

Warnings on file >= 3
or
Most recent flight Total Score < 50
or
Pilot's total average score < 80

If a pilot is terminated, FSFO currently applies the following career penalties:

  • current company is cleared
  • pay per hour is set to 0
  • company legs are reset to 0
  • contract remaining legs are reset to 0
  • critical, configuration, speed, and lights error totals are reset
  • warnings are reset to 0
  • the current schedule is cleared
  • the pilot is demoted by one rank, down to a minimum of Cadet
  • Career Tier is adjusted to match the new rank

If Can be fired is turned off, FSFO does not terminate the pilot through this system.

Back to top


Flight Log

The Flight Log is the permanent history of your career flights.

Each flight log entry stores:

  • date
  • company
  • flight number
  • aircraft
  • from airport
  • to airport
  • block time
  • landing score
  • total score
  • landing rate
  • landing G
  • block fuel
  • critical/configuration/lights/speed error counts
  • qualification result
  • pay earned
  • fines paid

Use the Flight Log window to review your performance over time.

Back to top


Route Map

After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally.

Back to top


Notes

Quick reference notes for current Career Mode behavior.

  • Career Mode currently supports one local pilot profile
  • The current schedule stores only the active trip
  • The flight log is the permanent historical record

Back to top


Troubleshooting

"PilotProfile was not found"

Create or rebuild the database, then apply to a company.

No schedule was generated

Check that:

  • routes.csv exists
  • the file format is valid
  • routes match the current airline
  • type-rating rules are not filtering everything out
  • the requested leg count is realistic for the route pool

My flight did not count toward progression

If Must fly scheduled flight is enabled, verify that:

  • you flew the next pending leg in order
  • you started at the scheduled departure airport
  • you arrived at the scheduled arrival airport
  • the flight number matched when required

I cannot generate a new schedule

If Lock schedule until complete is enabled, finish the current schedule first or turn that option off.

My flight was blocked before departure

Check whether one of the following options prevented readiness:

  • Start from last airport
  • Enable fatigue
  • Must have type rating

For additional setup help, see Getting Started. For general problem solving, see Troubleshooting.