Career Mode User Guide: Difference between revisions

From FSFO Support Hub
 
(35 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 ==
 
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.
 
[[#top|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:
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Rank 1 = 600 NM
Rank 2 = 1200 NM
Rank 3 = 2500 NM
Rank 4 = 5000 NM
Rank 5 = 10000 NM
</pre>
</div>
 
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.
 
[[#top|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:
 
<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.


Companies are loaded from ''Airlines.cfg''. Each airline has a tier. That tier affects hiring rules, contract leg requirements, and pay scaling.
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;">
<pre>
<pre>
Current contract-leg requirements by company tier:
Current rank-based bid chances:


Tier 1 = 30 legs
Rank 1 = 20%
Tier 2 = 60 legs
Rank 2 = 40%
Tier 3 = 90 legs
Rank 3 = 60%
Tier 4 = 120 legs
Rank 4 = 80%
Tier 5 = 150 legs
Rank 5 = 90%
</pre>
</pre>
</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.
[[#top|Back to top]]
----
== When a Flight Counts Toward Progression ==
A flight does not automatically count toward career progression.


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<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.
If <strong>Must fly scheduled flight</strong> is enabled, the flight must complete the <strong>next pending leg in order</strong>.
</div>
 
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
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
If the next scheduled leg is completed correctly, it is marked <strong>COMPLETED</strong>. If that was the final remaining leg, the schedule is cleared.
</div>
</div>


Line 150: Line 279:
----
----


== Ranks ==
== Flying a Career Flight ==
 
Before flight, FSFO captures:
 
* company
* flight number
* aircraft
* departure airport
* arrival airport


Career Mode uses a five-rank system:
During flight, Career Mode monitors multiple operational and scoring categories.


* '''Rank 1''' - Cadet
Examples include:
* '''Rank 2''' - Second Officer
* '''Rank 3''' - First Officer
* '''Rank 4''' - Captain
* '''Rank 5''' - Senior Captain


Your rank affects:
* pitch exceedance
* bank exceedance
* G-force exceedance
* IAS exceedance
* taxi-speed exceedance
* light misuse
* fuel-management failures
* landing-performance issues


* the maximum leg distance used in automatic scheduling
These events affect the total score and increment the appropriate error counters.
* 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]]
[[#top|Back to top]]
Line 172: Line 308:
----
----


== How Promotions Work ==
== 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.


Promotions are based on two things:
Score deductions are then applied for:
- Critical errors
- Configuration errors
- Lights errors
- Speed / angle errors
- General errors


* '''Total Legs'''
Passenger Comfort is tracked separately and can also reduce the final Total Score.
* '''Average Score'''


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
Final Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty
<strong>Requirement:</strong> Your <strong>Average Score</strong> must be at least <strong>92.0</strong> before any promotion is possible.
</pre>
</div>
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
=== Total Score Deductions ===
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
<pre>
Promotion thresholds:
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


50 total legs  = Second Officer
Unstable approach = -10
125 total legs = First Officer
- Checked only between 1,000 ft AGL and 100 ft AGL
200 total legs = Captain
- Triggered if vertical speed is outside -1200 to -300 FPM
350 total legs = Senior Captain
  or bank angle is greater than 25°
</pre>
</pre>
</div>
</div>


If your flight is not credited toward progression, it will not count toward promotion.
<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


[[#top|Back to top]]
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


== Career Tier and Pay ==
Excess G-force = -6
- Threshold: absolute G-force is greater than 2.5 G


Career Tier increases with promotion. Pay is recalculated using a tier multiplier.
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:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
<pre>
Current pay multipliers:
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


Tier 1 = 1.00x
Landing lights misconfigured = -2
Tier 2 = 1.04x
- Threshold: landing lights are not on when required
Tier 3 = 1.08x
- Also triggered if landing lights are left on above 18,500 ft AGL
Tier 4 = 1.12x
Tier 5 = 1.16x
</pre>
</pre>
</div>
</div>


When you are promoted, FSFO updates:
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
<pre>
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


* your rank
Ground speed exceeded while taxiing = -4
* your career tier
- Threshold: ground speed greater than 30
* your pay per hour
</pre>
</div>


[[#top|Back to top]]
<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>


== Company Applications ==
=== Landing Score ===


If '''Application based on rank''' is enabled, not every pilot can freely join every airline tier.
'''Landing Score''' is calculated separately from touchdown performance.


<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:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
<pre>
Current hiring chances:
Landing Score components:


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


Second Officer
A Landing Score below 80 triggers a Landing Evaluation penalty.
- Tier 1 = 100%
</pre>
- Tier 2 = 50%
</div>


First Officer
=== Landing Score Details ===
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 50%


Captain
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
- Tier 1 = 100%
<pre>
- Tier 2 = 100%
Vertical-speed score buckets:
- Tier 3 = 75%


Senior Captain
>= 750 FPM = 0
- Tier 1 = 100%
500-749 FPM = 50
- Tier 2 = 100%
400-499 FPM = 70
- Tier 3 = 95%
300-399 FPM = 80
200-299 FPM = 90
100-199 FPM = 100
0-99 FPM = 90
</pre>
</pre>
</div>
</div>


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
If you are rejected by the same company, FSFO enforces a 7-day wait before trying again.
<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>
</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 266: Line 501:
----
----


== Type Ratings and Training ==
== 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


Use '''Apply Type Rating''' after you have joined a company.
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;"><pre>
Current comfort limits:


Type rating requests will be blocked if:
Taxi speed
- >29 = Taxi Too Fast, level 1
- >34 = Taxi Too Fast, level 2


* no pilot profile exists
Taxi braking
* the pilot is not currently employed by a company
- both brakes >90% of Max while ground speed >9 and not on a runway
* the pilot is already in training
* the pilot already holds that type rating


Two training paths are available:
Jerky taxi turning
- FSFO uses the same slip/skid thresholds, but the ground-speed trigger now depends on aircraft weight.


* '''Private Training'''
Jerky taxi turning penalty levels:
Costs money immediately
- 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


* '''Company Training'''
- Narrow-body / medium aircraft, acftMaxGrossWeight 60,000-299,999 lbs:
Extends contract legs instead of charging the balance directly
  - 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


Training duration and costs depend on the type rating group.
- 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


[[#top|Back to top]]
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


== Schedule Generation ==
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


Schedules are built from your route data and filtered by:
Slip/skid in air
- slip/skid >35 = level 1
- slip/skid >60 = level 2


* current airline
Landing firmness
* rank
- Landing G >= 1.40 or landing rate >= 350 = level 1
* type rating, if type-rating enforcement is enabled
- Landing G >= 1.80 or landing rate >= 500 = level 2
* current location and preferred airport logic


If '''Schedule Based On Rank''' s enabled, FSFO automatically applies a maximum leg distance by rank:
Rollout braking
- both brakes >90% of Max and ground speed >40
</pre>
</div>


<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:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>Rank 1 = 750 NM
<pre>Current comfort penalty values:
Rank 2 = 1500 NM
 
Rank 3 = 4000 NM
Taxi Too Fast                    = 0 / 2 / 4
Rank 4 = 8000 NM
Braking Too Hard                = 0 / 4 on taxi, 0 / 2 on rollout
Rank 5 = 10000 NM</pre>
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>
</div>


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.
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.
 
=== Important Note About Passenger Comfort % ===


If '''Schedule based on rank''' is disabled, the Max NM value entered by the user is enforced strictly.
The live '''Passenger Comfort %''' shown on the Operations page is not used directly for the final score.


If '''Lock schedule until complete''' is enabled, FSFO will not generate a new schedule while an incomplete schedule already exists.
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 320: Line 647:
----
----


== Schedule Bidding System ==
== Fatigue ==
 
If '''Enable fatigue''' is turned on, FSFO calculates fatigue from your recent workload using both:


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..
* number of legs
* block hours


If '''Schedule Based On Rank''' is enabled, each bid leg is awarded based on the pilot’s current rank:
It evaluates three rolling workload windows:
 
* '''Last 24 hours'''
* '''Last 72 hours'''
* '''Last 7 days'''


<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 rank-based bid chances:
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)
</pre>
</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.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Final fatigue:


Rank 1 = 20%
Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)
Rank 2 = 40%
Rank 3 = 60%
Rank 4 = 80%
Rank 5 = 90%
</pre>
</pre>
</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.
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%.


[[#top|Back to top]]
[[#top|Back to top]]
Line 344: Line 690:
----
----


== Preferred Airport ==
== 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.


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.
<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]]
[[#top|Back to top]]
Line 352: Line 714:
----
----


== Route Map ==
== 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:


After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally.
* 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]]
[[#top|Back to top]]
Line 360: Line 736:
----
----


== When a Flight Counts Toward Progression ==
== How Promotions Work ==
 
Promotions are based on two things:


A flight does not automatically count toward career progression.
* '''Total Legs'''
* '''Average Score'''


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If <strong>Must fly scheduled flight</strong> is enabled, the flight must complete the <strong>next pending leg in order</strong>.
<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>
</div>


FSFO compares:
If your flight is not credited toward progression, it will not count toward promotion.
 
[[#top|Back to top]]
 
----


* the actual flight number
== Career Tier and Pay ==
* the actual departure airport
* the actual arrival airport


For the leg to count, the pilot must:
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.


* start at the correct airport
Career Tier increases with promotion. Pay is recalculated using a fixed hourly raise, not a multiplier.
* arrive at the correct airport
* match the next pending scheduled leg


If the flight does not meet that requirement:
<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:


* it can still be logged
Tier 1 = +$0/hr
* it will not increase Total Legs
Tier 2 = +$5/hr
* it will not update Average Score
Tier 3 = +$10/hr
* it will not reduce Contract Remaining Legs
Tier 4 = +$18/hr
* it will not update Balance
Tier 5 = +$28/hr
* it will not trigger promotion


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
Final hourly pay = company base hourly pay + current Career Tier hourly raise
If the next scheduled leg is completed correctly, it is marked <strong>COMPLETED</strong>. If that was the final remaining leg, the schedule is cleared.
</pre>
</div>
</div>
When you are promoted, FSFO updates:
* your rank
* your career tier
* your pay per hour


[[#top|Back to top]]
[[#top|Back to top]]
Line 397: Line 794:
----
----


== Flying a Career Flight ==
== 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:


Before flight, FSFO captures:
Cadet
- Tier 1 = 100%


* company
Second Officer
* flight number
- Tier 1 = 100%
* aircraft
- Tier 2 = 50%
* departure airport
* arrival airport


During flight, Career Mode monitors multiple operational and scoring categories.
First Officer
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 50%


Examples include:
Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 75%


* pitch exceedance
Senior Captain
* bank exceedance
- Tier 1 = 100%
* G-force exceedance
- Tier 2 = 100%
* IAS exceedance
- Tier 3 = 95%
* taxi-speed exceedance
</pre>
* light misuse
</div>
* fuel-management failures
* landing-performance issues


These events affect the total score and increment the appropriate error counters.
<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]]
[[#top|Back to top]]
Line 426: Line 834:
----
----


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


Landing Score is based on:
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.


* vertical speed
A pilot must already belong to a company before applying for a new type rating. FSFO will not allow a new application if:
* G-force
 
* distance from the runway threshold
* 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:


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


Vertical speed      = 40%
Company Training
G-force            = 30%
- does not charge the training cost directly to your balance
Touchdown distance  = 30%
- increases your Contract Remaining Legs instead
</pre>
</pre>
</div>
</div>


If runway threshold data is unavailable, the distance portion is redistributed proportionally between vertical speed and G-force.
Training length and cost depend on the selected type-rating group:


[[#top|Back to top]]
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
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


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


Career Mode stores both:
All other supported type ratings
- 7 training days
- Private Training: 20,000 × regional multiplier
- Company Training: +30 contract legs
</pre>
</div>


* '''Landing Score'''
Once training is started, FSFO records the training type, start date, duration, and end date in the pilot profile.
* '''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.


[[#top|Back to top]]
[[#top|Back to top]]
Line 463: Line 893:
----
----


== Fatigue ==
== Company Discipline, Warnings, and Termination ==


If '''Enable fatigue''' is turned on, FSFO calculates fatigue from your recent workload using both:
If '''Can be fired''' is enabled, FSFO tracks company discipline through warnings and possible termination.
 
* number of legs
* block hours


It evaluates three rolling workload windows:
Warnings do not begin immediately. A pilot must complete at least '''5 company legs''' before warning thresholds are evaluated.


* '''Last 24 hours'''
After that point, FSFO checks the pilot's accumulated company error rates against the following warning thresholds:
* '''Last 72 hours'''
* '''Last 7 days'''


<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 formula:
Warning thresholds:


Acute Load  = max(legs in last 24h / 3.5, block hours in last 24h / 7)
Critical errors      = 10% of company legs
Short Load  = max(legs in last 72h / 7,  block hours in last 72h / 16)
Configuration errors = 25% of company legs
Weekly Load = max(legs in last 7d  / 14,  block hours in last 7d  / 32)
Speed errors        = 35% of company legs
Lights errors        = 50% of company legs
</pre>
</pre>
</div>
</div>


Each load is clamped from 0 to 1.
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>Final fatigue:
<pre>
Termination conditions:


Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)</pre>
Warnings on file >= 3
or
Most recent flight Total Score < 50
or
Pilot's total average score < 80
</pre>
</div>
</div>


The result is capped at 100 and rounded to the nearest whole percent.
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


Career Mode readiness fails if fatigue is greater than or equal to 75%.
If '''Can be fired''' is turned off, FSFO does not terminate the pilot through this system.


[[#top|Back to top]]
[[#top|Back to top]]
Line 526: 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 540: 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 576: 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.