Daily Flow & Mechanics
This page walks through the exact order of operations for a single day, with the key formulas and thresholds used in engine code.
Step-by-step day
- Player inputs: choose pace (
PaceId: Steady, Heated, Blitz) and diet (DietId). - Travel miles
- Start from
travel.mpd_base(family/overlay). - Multiply by pace factor (Classic: Steady 1.0, Heated 1.12, Blitz 1.3).
- Multiply by weather factor (Classic: Clear 1.0, Storm 0.82, HeatWave 0.78, ColdSnap 0.9, Smoke 0.86).
- Apply exec-order/weather/diet modifiers if configured.
- Clamp to
[mpd_min, mpd_max](Classic: 10.0–22.0).
- Start from
- Partial travel (detour/repair/etc.): miles ×
partial_ratio(Classic 0.50; Balanced overlay 0.51). - Wear accumulation
- Classic baseline:
wear = base (0.07) + fatigue_k (0.08) * fatigue(distance, comfort_miles=1250). - Balanced overlay: base 0.073, fatigue_k 0.245, comfort_miles 1750.
- Classic baseline:
- Breakdown roll
- Classic base:
p = breakdown.base (0.01) * pace_factor * weather_factor + beta (0.10) * wear_component. - Overlay tweaks: base 0.015, beta 0.185; pace multipliers Steady 0.94, Heated 1.08, Blitz 1.28; weather multipliers Clear 1.0, Storm 1.25, HeatWave 1.35, ColdSnap 1.1, Smoke 1.15.
- Targeted part weights (Classic): tire 44, battery 22, alternator 18, pump 16.
- Classic base:
- Crossing resolver (if scheduled for the day)
- Classic probs: pass 0.72, detour 0.16, terminal 0.12; detour costs 1–3 days.
- Bribe: pass bonus 0.2, terminal penalty 0.2, diminishing returns 0.4 (Balanced overlay adjusts to 0.192 / 0.045 / 0.38).
- Permit can disable terminal for eligible tags (default
["checkpoint"]).
- Encounter resolver
- Uses cooldowns and history windows (
constants.rs: cooldown 1 day, history window 10, repeat window 6, soft cap threshold 5).
- Uses cooldowns and history windows (
- Daily tick (supplies/sanity/HP)
- For each channel:
base × pace × diet × weather × exec(seeDailyTickConfig). - Rounded to integers and clamped to stat caps. Classic family uses zeros; overlays add decay (e.g., Balanced
health.decay = 0.12). - Rest requests can heal HP if
rest_healis set (overlays can enable).
- For each channel:
- Endgame/boss gates
- Endgame (Deep) from
endgame.json: starts at 1750 mi, guard at 1950 mi, health floors 45–50 HP, wear multipliers 0.6–0.7, stop caps (window 10, max 2 full stops), wear shave 0.7. - Boss gate: requires distance ≥
distance_required(defaults to 2100 mi). Boss chance is weighted by supplies, sanity, allies, pants penalty, and policy bias (BalancedBossBiasinboss.json: Classic bonus 0.30, Deep multiplier 1.1, Deep bonus 0.08). Outcomes: PassedCloture, SurvivedFlood, PantsEmergency, Exhausted.
- Endgame (Deep) from
Day record semantics
Travel: full mileage credit.Partial: mileage multiplied bypartial_ratio(detours, repairs, shared travel).NonTravel: camps, blockers, endgame/boss-only days.- Travel ratio uses
(Travel + Partial) / total_daysand is checked against guards.