Career Mode User Guide: Difference between revisions
Created page with "= FSFO Career Mode User Guide = == Overview == Career Mode adds a persistent pilot progression system to FSFO. It uses a local database to track your pilot profile, your active schedule, and your permanent flight history. The system 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 * '''..." |
|||
| (9 intermediate revisions by 2 users 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. | |||
<div style="margin:0.8em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;"> | |||
Career Mode uses a local database to track your pilot profile, your active schedule, and your long-term flight history. | |||
</div> | |||
<span id="top"></span> | |||
__TOC__ | |||
---- | |||
== Overview == | == Overview == | ||
Career Mode is built around three main areas: | |||
* '''Pilot Profile''' | |||
* '''Current Schedule''' | * '''Pilot Profile''' | ||
* '''Flight Log''' | 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 | |||
<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. | |||
</div> | |||
[[#top|Back to top]] | |||
---- | |||
== Getting Started == | == Getting Started == | ||
To begin using Career Mode: | |||
# 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 | ||
| Line 17: | Line 45: | ||
# Click '''Apply Company''' | # Click '''Apply Company''' | ||
Once accepted, your pilot profile is created and Career Mode | <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. | |||
</div> | |||
[[#top|Back to top]] | |||
---- | |||
== Career Dashboard == | == Career Dashboard == | ||
The Career Dashboard includes the following major functions: | 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 | |||
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;"> | |||
<strong>NOTE:</strong> The current <strong>Show Contract</strong> button is not implemented yet. | |||
</div> | |||
[[#top|Back to top]] | |||
---- | |||
== Career Options == | == Career Options == | ||
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;"> | |||
These options affect how schedules are generated, when flights count toward progression, and whether readiness checks can block a flight. | |||
</div> | |||
* '''Start from last airport''' | * '''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''' | * '''Fatal crash starts over''' | ||
If enabled, a fatal crash can end your current career and force you to start over. | |||
* '''Must fly scheduled flight''' | * '''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''' | * '''Passenger comfort''' | ||
Enables passenger-comfort rules so smoother, better-managed flights matter more to your career results. | |||
* '''Can be fired''' | * '''Can be fired''' | ||
Enables the career rule that allows poor performance or major failures to put your employment at risk. | |||
* '''Enable fatigue''' | * '''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''' | * '''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''' | * '''Must have type rating''' | ||
Requires the pilot to hold the appropriate type rating before operating aircraft that need one. | |||
* '''Lock schedule until complete''' | * '''Lock schedule until complete''' | ||
Prevents generating a new schedule while an existing schedule still has incomplete legs. | |||
* '''Application based on rank''' | * '''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. | |||
[[#top|Back to top]] | |||
---- | |||
== Companies and Company Tiers == | == 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. | 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: | 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. | If you leave a company before satisfying the required legs, Career Mode can apply a contract-break penalty. | ||
</div> | |||
[[#top|Back to top]] | |||
---- | |||
== Ranks == | == Ranks == | ||
Career Mode uses a five-rank system: | Career Mode uses a five-rank system: | ||
* '''Rank 1''' - Cadet | * '''Rank 1''' - Cadet | ||
* '''Rank 2''' - Second Officer | * '''Rank 2''' - Second Officer | ||
| Line 67: | Line 161: | ||
Your rank affects: | Your rank affects: | ||
* the maximum leg distance used in automatic scheduling | * the maximum leg distance used in automatic scheduling | ||
* your bidding advantage when schedules are generated | * your bidding advantage when schedules are generated | ||
| Line 72: | Line 167: | ||
* your promotion eligibility | * your promotion eligibility | ||
* your pay multiplier through Career Tier | * your pay multiplier through Career Tier | ||
[[#top|Back to top]] | |||
---- | |||
== How Promotions Work == | == How Promotions Work == | ||
Promotions are based on two things: | Promotions are based on two things: | ||
* '''Total Legs''' | * '''Total Legs''' | ||
* '''Average Score''' | * '''Average Score''' | ||
Your | <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: | 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. | If your flight is not credited toward progression, it will not count toward promotion. | ||
[[#top|Back to top]] | |||
---- | |||
== Career Tier and Pay == | == Career Tier and Pay == | ||
Career Tier increases with promotion. Pay is recalculated using a tier multiplier. | Career Tier increases with promotion. Pay is recalculated using a tier multiplier. | ||
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;"> | |||
<pre> | |||
Current pay multipliers: | Current pay multipliers: | ||
Tier 1 = 1.00x | |||
Tier 2 = 1.04x | |||
Tier 3 = 1.08x | |||
Tier 4 = 1.12x | |||
Tier 5 = 1.16x | |||
</pre> | |||
</div> | |||
When you are promoted, FSFO updates: | When you are promoted, FSFO updates: | ||
* your rank | * your rank | ||
* your career tier | * your career tier | ||
* your pay per hour | * your pay per hour | ||
[[#top|Back to top]] | |||
---- | |||
== Company Applications == | == Company Applications == | ||
If '''Application based on rank''' is enabled, not every pilot can freely join every airline tier. | 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: | 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. | 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 == | == Type Ratings and Training == | ||
Use '''Apply Type Rating''' after you have joined a company. | Use '''Apply Type Rating''' after you have joined a company. | ||
Type rating requests will be blocked if: | Type rating requests will be blocked if: | ||
* no pilot profile exists | * no pilot profile exists | ||
* the pilot is not currently employed by a company | * the pilot is not currently employed by a company | ||
| Line 137: | Line 278: | ||
Two training paths are available: | Two training paths are available: | ||
* '''Private Training''' | |||
* '''Company Training''' | * '''Private Training''' | ||
Costs money immediately | |||
* '''Company Training''' | |||
Extends contract legs instead of charging the balance directly | |||
Training duration and costs depend on the type rating group. | Training duration and costs depend on the type rating group. | ||
[[#top|Back to top]] | |||
---- | |||
== Schedule Generation == | == Schedule Generation == | ||
Schedules are built from your route data and filtered by: | Schedules are built from your route data and filtered by: | ||
* current airline | * current airline | ||
* rank | * rank | ||
| Line 149: | Line 300: | ||
* current location and preferred airport logic | * current location and preferred airport logic | ||
If '''Schedule | If '''Schedule Based On Rank''' s 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 = 750 NM | |||
Rank 2 = 1500 NM | |||
Rank 3 = 4000 NM | |||
Rank 4 = 8000 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. | 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. | ||
| Line 161: | Line 315: | ||
If '''Lock schedule until complete''' is enabled, FSFO will not generate a new schedule while an incomplete schedule already exists. | 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 == | == Schedule Bidding System == | ||
Route | 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.. | ||
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;"> | |||
<pre> | |||
Current rank-based bid chances: | |||
Rank 1 = 20% | |||
Rank 2 = 40% | |||
Rank 3 = 60% | |||
Rank 4 = 80% | |||
Rank 5 = 90% | |||
</pre> | |||
</div> | |||
FSFO | 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 == | == 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. | 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 == | == Route Map == | ||
After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally. | After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally. | ||
[[#top|Back to top]] | |||
---- | |||
== When a Flight Counts Toward Progression == | == When a Flight Counts Toward Progression == | ||
A flight does not automatically count toward career progression. | A flight does not automatically count toward career progression. | ||
If | <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>. | |||
</div> | |||
FSFO compares: | |||
* the actual flight number | * the actual flight number | ||
* the actual departure airport | * the actual departure airport | ||
| Line 197: | Line 375: | ||
For the leg to count, the pilot must: | For the leg to count, the pilot must: | ||
* start at the correct airport | * start at the correct airport | ||
* arrive at the correct airport | * arrive at the correct airport | ||
| Line 202: | Line 381: | ||
If the flight does not meet that requirement: | If the flight does not meet that requirement: | ||
* it can still be logged | * it can still be logged | ||
* it will not increase Total Legs | * it will not increase Total Legs | ||
| Line 209: | Line 389: | ||
* it will not trigger promotion | * it will not trigger promotion | ||
If the next scheduled leg is completed correctly, it is marked | <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> | |||
[[#top|Back to top]] | |||
---- | |||
== Flying a Career Flight == | == Flying a Career Flight == | ||
Before flight, FSFO captures: | Before flight, FSFO captures: | ||
* company | * company | ||
* flight number | * flight number | ||
| Line 222: | Line 410: | ||
Examples include: | Examples include: | ||
* pitch exceedance | * pitch exceedance | ||
* bank exceedance | * bank exceedance | ||
| Line 232: | Line 421: | ||
These events affect the total score and increment the appropriate error counters. | These events affect the total score and increment the appropriate error counters. | ||
[[#top|Back to top]] | |||
---- | |||
== Landing Score == | == Landing Score == | ||
Landing Score is based on: | Landing Score is based on: | ||
* vertical speed | * vertical speed | ||
* G-force | * G-force | ||
* distance from the runway threshold | * distance from the runway threshold | ||
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;"> | |||
<pre> | |||
When runway data is available, the current weighting is: | When runway data is available, the current weighting is: | ||
Vertical speed = 40% | |||
G-force = 30% | |||
Touchdown distance = 30% | |||
</pre> | |||
</div> | |||
If runway threshold data is unavailable, the distance portion is redistributed proportionally between vertical speed and G-force. | If runway threshold data is unavailable, the distance portion is redistributed proportionally between vertical speed and G-force. | ||
[[#top|Back to top]] | |||
---- | |||
== Total Score and Qualification == | == Total Score and Qualification == | ||
Career Mode stores both: | Career Mode stores both: | ||
* '''Landing Score''' | * '''Landing Score''' | ||
* '''Total 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. | 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]] | |||
---- | |||
== Fatigue == | == Fatigue == | ||
If '''Enable fatigue''' is turned on, FSFO calculates fatigue from your recent workload using both: | If '''Enable fatigue''' is turned on, FSFO calculates fatigue from your recent workload using both: | ||
* number of legs | * number of legs | ||
* block hours | * block hours | ||
It evaluates three rolling workload windows: | It evaluates three rolling workload windows: | ||
* '''Last 24 hours''' | * '''Last 24 hours''' | ||
* '''Last 72 hours''' | * '''Last 72 hours''' | ||
* '''Last 7 days''' | * '''Last 7 days''' | ||
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;"> | |||
<pre> | |||
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> | |||
Each load is clamped from 0 to 1. | Each load is clamped from 0 to 1. | ||
Final fatigue: | <div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;"> | ||
<pre>Final fatigue: | |||
Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)</pre> | |||
</div> | |||
The result is capped at 100 and rounded to the nearest whole percent. | 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]] | |||
---- | |||
== Flight Log == | == Flight Log == | ||
The Flight Log is the permanent history of your career flights. | The Flight Log is the permanent history of your career flights. | ||
Each flight log entry stores: | Each flight log entry stores: | ||
* date | * date | ||
* company | * company | ||
| Line 300: | Line 526: | ||
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]] | |||
---- | |||
== Notes == | == Notes == | ||
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;"> | |||
Quick reference notes for current Career Mode behavior. | |||
</div> | |||
* Career Mode currently supports one local pilot profile | * Career Mode currently supports one local pilot profile | ||
* 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 | * The current '''Show Contract''' button is not implemented yet | ||
[[#top|Back to top]] | |||
---- | |||
== Troubleshooting == | == Troubleshooting == | ||
=== "PilotProfile was not found" === | === "PilotProfile was not found" === | ||
<div style="margin:0.4em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;"> | |||
Create or rebuild the database, then apply to a company. | Create or rebuild the database, then apply to a company. | ||
</div> | |||
=== No schedule was generated === | === No schedule was generated === | ||
Check that: | Check that: | ||
* ''routes.csv'' exists | * ''routes.csv'' exists | ||
* the file format is valid | * the file format is valid | ||
| Line 320: | Line 565: | ||
=== My flight did not count toward progression === | === My flight did not count toward progression === | ||
If '''Must fly scheduled flight''' is enabled, verify that: | If '''Must fly scheduled flight''' is enabled, verify that: | ||
* you flew the next pending leg in order | * you flew the next pending leg in order | ||
* you started at the scheduled departure airport | * you started at the scheduled departure airport | ||
| Line 327: | Line 574: | ||
=== I cannot generate a new schedule === | === I cannot generate a new schedule === | ||
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. | ||
---- | |||
<div style="margin:1em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;"> | |||
For additional setup help, see [[Getting Started]]. For general problem solving, see [[Troubleshooting]]. | |||
</div> | |||
[[Category:User Guide]] | [[Category:User Guide]] | ||
[[Category:Career Mode]] | [[Category:Career Mode]] | ||
Latest revision as of 04:24, 28 March 2026
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.
Career Mode uses a local database to track your pilot profile, your active schedule, and your long-term flight history.
Overview
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 persistent progression across multiple flights instead of isolated one-off sessions.
Getting Started
To begin using Career Mode:
- Open the Career Dashboard
- Click Rebuild Database the first time you use Career Mode
- Enter your pilot name
- Select a company
- Optionally select a type rating
- Click Apply Company
Once accepted, your pilot profile is created and Career Mode begins tracking your progress.
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.
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.
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.
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
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.
Career Tier and Pay
Career Tier increases with promotion. Pay is recalculated using a tier multiplier.
Current pay multipliers: Tier 1 = 1.00x Tier 2 = 1.04x Tier 3 = 1.08x Tier 4 = 1.12x Tier 5 = 1.16x
When you are promoted, FSFO updates:
- your rank
- your career tier
- your pay per hour
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.
Type Ratings and Training
Use Apply Type Rating after you have joined a company.
Type rating requests will be blocked if:
- no pilot profile exists
- the pilot is not currently employed by a company
- the pilot is already in training
- the pilot already holds that type rating
Two training paths are available:
- Private Training
Costs money immediately
- Company Training
Extends contract legs instead of charging the balance directly
Training duration and costs depend on the type rating group.
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 s enabled, FSFO automatically applies a maximum leg distance by rank:
Rank 1 = 750 NM Rank 2 = 1500 NM Rank 3 = 4000 NM Rank 4 = 8000 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.
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.
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.
Route Map
After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally.
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 flight number
- 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.
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.
Landing Score
Landing Score is based on:
- vertical speed
- G-force
- distance from the runway threshold
When runway data is available, the current weighting is: Vertical speed = 40% G-force = 30% Touchdown distance = 30%
If runway threshold data is unavailable, the distance portion is redistributed proportionally between vertical speed and G-force.
Total Score and Qualification
Career Mode stores both:
- Landing 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.
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)
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%.
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.
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
- The current Show Contract button is not implemented yet
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.
For additional setup help, see Getting Started. For general problem solving, see Troubleshooting.
