The Hub is the home screen of career mode — a one-page dashboard of everything that changed since you last looked, plus the button that moves the career forward. It replaces the old icon desktop as the default view, and it is where every blocking prompt (build the car, resume a weekend, answer your mail) is shown. If you learn one screen in this game, learn this one.
How to open it
- It is the screen you land on after loading a save, after finishing a turn, and after most “Back” actions.
- Sidebar → Hub (the house icon, always the first entry).
- From anywhere with a sidebar, the D-pad walks the app list; Hub is the top stop.
- Escape on the Hub opens the Quit to Menu confirmation (“Your progress has been saved”). Escape again closes it.
Title bar and subtitle
| State | Title | Subtitle |
|---|---|---|
| Pre-season | <Team> — Phase N: <Step> | Pre-Season — Phase N: <Step> |
| In season | <Team> — GP n/20 | Season N |
| Season finished | <Team> — Season Complete | Season N |
The in-season GP number is current_gp − 1, i.e. races completed, not the race you are about to run.
Budget panel
Top-left. Four things stacked:
- Cash on hand, coloured green while
current_budget / budget_tier.amount()is above 0.25, red below. - A fill bar on the same fraction, clamped 0–100 %: green above 50 %, amber above 25 %, red below.
- Net per GP —
income_per_gp(), which is sponsor income + supplier flow − driver cost − running cost, plus any academy-loan fee contributions. - Projection —
current_budget + income_per_gp() × gps_remaining, wheregps_remainingis20 − (current_gp − 1)in season and a flat 20 in pre-season. A negative result prints asProjected: <amount> (DEFICIT).
Under it, a hand-drawn bar chart of that same projection, one bar per remaining GP, walking the balance forward at the current net. Bars are green when healthy, amber once they fall under a quarter of today’s balance, red below zero, with a red zero line drawn when the run goes negative. It is a straight-line extrapolation — it does not know about race prizes, the end-of-season championship pot or a planned build. For the honest version see Finance.
The small View button opens the Finance app.
Sponsors / Suppliers panels
One row per signed partner: brand logo, brand name drawn in the sponsor’s own typeface, its type (Principal / Secondary) or category (Engine / Tires / Fuel), and a happiness bar — green ≥ 70, amber ≥ 40, red below.
Under the signed list, any ongoing negotiation missions appear as slim purple progress rows (progress / wu_required), and flip to green with the label DEAL READY (sponsors) or PARTNERSHIP READY (suppliers) the moment the deal completes. That is your cue: a ready deal is still stealable by a rival until you actually sign it in Marketing.
Pre-season with nothing signed, each panel shows a centred handshake icon and the caption “Upcoming negotiation” instead.
Drivers panel
Your line-up sorted Primary → Secondary → Reserve, each with country flag, helmet, name, role, and a happiness bar on the same 70/40 colour thresholds. Empty pre-season → the handshake placeholder again (“Upcoming negotiation”).
Championship panel (in season) / Pre-season stepper (before it)
In season it is the driver standings: top 10 only, with position, flag, helmet, name, team logo, team, points, and a points bar scaled against the leader. Your own drivers highlight green. Drivers of yours ranked outside the top 10 are deliberately not appended — that used to push the table to 12 rows and overflow into the panel below.
Pre-season the same panel becomes the milestone stepper plus a “What to do now” card.
The stepper nodes
Six nodes, connected by arrows. Done = green with a check, current = purple with its number and a halo, upcoming = grey, final = a checkered-flag disc.
| Node | Phase span | Completed by |
|---|---|---|
| Infra | 1 | Ending phase 1. On the way out it resets and refills the hidden sponsor pool and unlocks marketing_level × sponsors_per_marketing_level pre-negotiated sponsors (AI teams do the same) |
| Negotiation | 2–3 | Ten turns across both phases. End of phase 3 closes the window: unclaimed ready deals expire with an email each, and any missing supplier category is auto-signed with an emergency contract |
| Drivers | 4 | Five turns of offers; the dev-series ladder hires from the same pool each turn |
| Car & Testing | 5 | The season car build and the pre-season test session that runs the moment the build completes |
| Dev | 6 | R&D work before race one; cannot end until the pre-season test has actually run |
| GP 1 | — | The checkered node: the first race weekend |
Under the active node, multi-turn phases print a turn counter spanning the whole node: Negotiation reads Turn X/10, not two separate X/5. It turns red on the last turn of the span.
The card below carries the phase’s guidance text, and a turn chip (amber, red at ≤ 1 turn remaining).
Next Race panel
- GP name — clickable (blue link), opens that round’s Circuit Profile.
- Location and country flag.
- Track mini-map, drawn only when the round has been
announced. It is a real analysis of the layout, not decoration: sectors coloured S1 blue / S2 red / S3 green at the thirds, a checkered start/finish mark, yellow sector-boundary ticks, three direction arrows, and an approximated pit lane — found by locating the longest low-curvature run (the longest straight) and offsetting it toward the centroid. - Facts table: character, laps, track length, turns, race distance, and a weather forecast generated once and cached for as long as the Hub is open.
- Downforce / Tire Wear / Overtaking are derived purely from the track’s character, colour-coded green→amber→red→dark red:
| Character | Downforce | Tire wear | Overtaking |
|---|---|---|---|
| High Speed | Low | Low | Easier |
| Technical | High | High | Difficult |
| Street | High | Medium | Very Difficult |
| Balanced | Medium | Medium | Moderate |
The View button opens the Calendar.
Factory Load (Work Units)
A pie chart plus a readout of used / total WL (pct %), and your Engineering level.
The denominator prefers the seeded pool rnd_wu_pool (which already includes break-weekend and supplier-partnership bonuses); on legacy saves where that is 0 it falls back to compute_wu_pool(engineering_level) + partnership_wu_bonus(suppliers). The used slice is total − rnd_wu_remaining, and it recolours as it fills: blue up to 50 %, amber above 50 %, red above 80 %.
Any active design projects are listed as “N project(s)”. The View button opens R&D.
Car Status (in season)
Left: your car, baked with the current sponsor set and team logo — the same compositing the race uses.
Right: a 6-stat ranking grid — Speed, Handling, Aero, Reliability, Acceleration, Fuel Efficiency — each shown as rank / total. The rank compares your effective_car_model (infrastructure + suppliers + the parts actually fitted, so it moves with in-season development, not just facilities) against every non-retired AI team’s effective model. Retired and bankrupt teams are excluded on purpose — ranking against them used to inflate the field to “1/33 teams” after a few seasons of attrition. Colours: green in the top 3, olive in the top 6, red beyond.
Below it, a per-part badge table: Front Wing, Rear Wing, Floor, Engine, Gearbox, Suspension, each as a performance percentage from the effective model.
Both tables are computed once and cached — they only change between races.
Pre-season, the whole panel is a box icon with the caption “Delivered soon”.
Alerts
A short triage list, in this order:
- “Budget shortage projected” (red) — in season only, when the straight-line projection goes negative.
- “Sponsor
unhappy (N%)” (orange) — one line per sponsor under 40 % happiness. - ”
reliability critical (N%)” (red) — the first fitted part whosefiabilityis under 0.85. Only one is ever shown.
If none apply: “All systems nominal” in green.
Inbox panel
The 17 most recent mails, newest first, unread in bold navy on a blue-tinted row, with a header line counting unread. Mails needing action carry a red ! before the subject, exactly like the full PFS Mail app. Clicking a row opens Mail at that message. The View button opens the inbox.
Did You Know
In season only, a small ranked panel at the bottom of the Championship column. One of seven categories is picked at random when the Hub is created and then cached for the session:
Income/GP · Driver Salaries · Driver Fame · Team Reputation · Team Budgets · Sponsor Countries · Supplier Revenue.
Each shows a top-5 with your team (or your country, or your suppliers) highlighted green.
The advance button and every gate on it
The sidebar’s advance entry is the same button in both halves of the career, relabelled:
| Situation | Label |
|---|---|
| Multi-turn phase with turns left | Next Turn |
| Last turn of a phase / single-turn phase | End Phase |
| In season | Next GP |
| Just finished a break round (GP 5, 10 or 15) | Free Weekend |
| Inside the mid-season window | Free Weekend n/3 |
| Season over | Next Season (behind a confirm popup) |
On a gamepad, Start triggers it from any app screen.
Pre-season gates (End Phase / Next Turn)
- Auto-burn of dead turns — only if the opt-in
preseason_auto_skipcareer setting is on and every contract slot of the current stage is already filled. It fast-forwards the remaining intermediate turns (still ticking AI, R&D and scouting for fairness) so one press lands on the phase advance. - Car build gate (phase 5) — if not every player car is fitted, the turn is refused and the Season Car Build prompt opens instead.
- Pre-season test gate (phase 6) — if
preseason_test_doneis false, the Development phase cannot end; the pre-season test plan opens instead.
Gates 2 and 3 exist because of a real exploit: they used to sit after the R&D advance, the AI turn and the scouting tick, so an early return kept everything those had handed out while the phase never committed. Leaving one car unfitted and spamming the button gained your designs a GP of development on every press. The rule now encoded is a turn grants nothing until it is certain to commit.
The Season Car Build prompt
Your 2 race cars plus the reserve car must be fully built before the season can start ($X of parts still missing).
Two buttons:
- Auto-Build (Recommended) — $Y — orders 4 of each part and 6 of each wing, produces them and fits all three cars in one click, keeping the spares in stock.
- Build Manually (Pro) — opens R&D; the tutorial then starts you at Inventory → Production.
If you cannot afford the auto-build it still offers it, with a warning: “this puts the team in the red. Debt is allowed, but 3 consecutive GPs in deficit means bankruptcy.” The build is deliberately never budget-walled — the 3-red-GPs rule is the real constraint, not an upfront wall.
In-season gates (Next GP), in evaluation order
- Two-driver minimum. Fewer than 2 drivers in Primary/Secondary roles → “Cannot race: team needs Primary AND Secondary drivers. Promote the Reserve or hire a replacement.” Mid-season firings are the usual cause.
- Season complete → the Next Season confirmation.
- Bankrupt / control lost → “Your team is bankrupt and cannot race.” or, if your equity fell below the control threshold, “You have lost majority control of the team and can no longer race.”
- Demo build (Steam Next Fest) → the demo-end screen after weekend one. Compile-time gate; no config or save re-enables it.
- Weekend already in progress (
weekend_step ≥ 1) → the Race Weekend In Progress prompt (below). This fires from the Desk too — the handler switches you to the Hub first, because without that the button looked dead after quitting a live session. - Mail-decision gate. Any inbox mail still awaiting a YES/NO answer blocks the advance and lists the pending subjects. Checked before the part warning so the two never stack. See PFS Mail.
- Race-ready gate. For each of your two racing drivers:
- a destroyed fitted part → ”
— destroyed : that car will not take the start and is classified DNS;” - a worn part (performance collapsed to zero, or condition under 70 %) → ”
— worn : the car starts, but you have been told. The dialog lets you race anyway or jump to the Inventory to Equip a spare.(perf N, condition N%)”
- a destroyed fitted part → ”
Once everything clears, the game wipes stale weekend leftovers (weekend_plan, quali order, exclusions, weekend_step), reconciles the season rosters so any promoted reserve / mid-season signing / academy step-up appears in the standings, saves, takes a weekend rollback snapshot, and opens the Weekend Loadout.
The Race Weekend In Progress prompt
A race weekend is underway at
: practice is done — qualifying is next / qualifying is done — the race is next.
- Resume Weekend picks up at the persisted step.
- Abandon Weekend rolls the career back to the
.weekend.dbsnapshot taken at the start of that weekend — repairing the damage and wear already suffered.
This exists so a mid-weekend reload can never silently restart the weekend on top of the persisted damage.
Advanced
- Everything below the panels is a link. BUDGET → Finance, SPONSORS/SUPPLIERS → Marketing, NEXT RACE → Calendar, the GP name → Circuit Profile, DRIVERS → Scouting, FACTORY LOAD → R&D, CAR STATUS → the Car app, INBOX → Mail, the championship header → Standings.
- The Hub scrolls. Like every sidebar screen except the Desk, it opts into the generic career-app scroll: mouse wheel to the right of the sidebar, purple scrollbar on the right edge when content actually overflows (past a 16 px tolerance). Necessary at 125 % / 150 % UI scale.
- Clicks are inert while a tutorial card is up. The tour cards sit over the Hub’s mail rows and quick links, and a “Got it” click used to fall through into whatever was underneath.
- The car-status ranking is cached until the Hub is rebuilt. Fit a part and come back later and the ranking will have moved; it does not animate live inside a single visit.
- The budget bar’s denominator is your original tier, forever. A Large team on $30M shows a redder bar than a Small team on the same $30M. Read the net per GP and the chart, not the bar colour.
- The projection ignores prize money entirely. Race prizes and the (very large) end-of-season championship pot are not in it. A team the Hub shows heading to a deficit can still finish the year positive — Finance’s projection includes both streams and is the one to trust.
- The alert list stops after one part. Exactly one reliability warning is ever shown, even with five parts under 85 %. Use R&D → Repair for the full picture.
- A break weekend is not the mid-season window. Breaks are GP 5, 10 and 15 (
BREAK_GPS). The mid-season signing window is armed only after GP 10 (MID_SEASON_SIGNING_GP) and runsMID_SEASON_TURNS = 3negotiation turns from the Hub — each turn advances R&D, scouting, the academy and rival development, and the last turn closes with the AI poaching any un-renewed last-year driver.
Common mistakes
- Trusting the Hub’s budget projection. It is a straight line at the current net, with no prize money in it. Open Finance before making a decision on it.
- Ignoring the ”!” on inbox rows. An unanswered decision mail hard-blocks Next GP, and an unfitted delivered part is exactly what the DNS gate will catch a minute later.
- Clicking through the race-ready warning. “Destroyed” means DNS — zero points, zero prize money, and a very unhappy sponsor. The dialog’s second button takes you straight to the Inventory to fit a spare.
- Leaving a car unfitted in phase 5 and pressing End Phase repeatedly. It grants nothing now, by design; the prompt is the only way forward.
- Reading the Car Status rank as “vs the whole grid”. Bankrupt and retired teams are excluded — the denominator shrinks as the field attrits.
- Firing a driver mid-season and then pressing Next GP. With fewer than two race-eligible drivers the advance simply refuses; promote the Reserve or hire.
See also
- Career Desktop & Sidebar — the app list, lock rules and resource gauges
- PFS Mail — the decision gate that blocks Next GP
- Finance — the projection that actually includes prize money
- R&D · Inventory — fitting a spare before the DNS gate
- Weekend Loadout — what Next GP opens
- Calendar · Circuit Profile
- New Career — the pre-season phases the stepper walks
- Your First Career