This is V5's open prairie. The Frontier cell is the Red Dead Redemption surface where the moment-to-moment loop is ride, track, hunt, camp, and outrun a posse — the genre that lives or dies on texture of a different kind than the crime sandbox: not whether a chase feels seamless, but whether a horse answers when you ask it to canter, whether a slow-mo headshot lands with the right sepia weight, whether a perfect pelt rewards the patience of the right caliber and a clean kill, and whether riding from camp to town turns up a downed rider or an ambush that feels authored rather than rolled. It is V5's most deliberately patient cell — fast travel exists but is gated behind discovery, because the design wants you on horseback, inside the encounter system, across five biomes.
The cell ships as two GameFeature variant modules — a single-protagonist 1899
campaign (Outlaw Trail) and a posse open-world multiplayer surface
(Frontier Online) — composed over a set of shared C++ mechanic cores
(V5DeadEye, V5HorseAI, V5Hunting, V5Honor, V5Squad). The promise is
the same one every cell makes: per-genre feel from one engine. The slow-mo
that paints six targets in sepia here is the literal same BuildSlowMoEffect
the urban cell calls "Reflex Mode" and the sci-fi cell calls "Tactical Time";
the perfect-pelt scorer is the same one the monster-hunter cell uses for trapper
outfits. This page inventories what the frontier stack does on the player's side
of the screen, and points at the exact Unreal C++ behind each feature. For the
full mode taxonomy, roster, and the scope this slots into, start at the hub:
../V5_features.md.
What ships, honestly#
The cell's mechanics are real, compiled, and tested. Every module named
above exists under V5/ue/Source/ with a Public//Private/ split, a
*.Build.cs, and a Private/Tests/ automation spec, and the linker has been
through them on this box: libUnrealEditor-V5FrontierOutlawTrail.so,
-V5FrontierOnline.so, -V5DeadEye.so, -V5HorseAI.so, and -V5Hunting.so
all sit in V5/ue/Binaries/Linux/ next to their sources, built by the ueagent
user. The signature math is real domain-specific code — a 7,700-kcal-per-kilo
body-weight integrator, a four-tier horse-bond panic-reduction curve, a
weak-spot damage table, a one-shot-to-the-vitals perfect-pelt classifier — and
each is pinned by UE IMPLEMENT_SIMPLE_AUTOMATION_TEST assertions that check
values, not truthiness (TestEqual("Biome area totals 125 km2", …),
TestEqual("Witnessed train robbery applies bounty", …, 120.0f)).
"Cell" means a mechanic stack composed by thin variant modules. As with the
urban cell, the frame-critical verbs live in shared cores and each playable
sub-ruleset is a content-and-validation module whose Build.cs wires the
mechanics it needs — V5FrontierOutlawTrail.Build.cs pulls in V5DeadEye,
V5HorseAI, V5Hunting, V5Honor, and V5Squad. The honest consequence is
that the variant modules are heavier on catalog assembly and Require(...)
shape-gating over large authored datasets than on novel per-frame algorithms;
those live one layer down in the cores, plus a handful of frontier-only runtime
libraries (UV5_OutlawTrail_BodyWeight, UV5_OutlawTrail_Camp,
UV5_OutlawTrail_Encounters) that the module owns outright.
The data is C++ catalogs; the art is not in-tree. Consistent with V5's
0-binary-.uasset accounting, the catalogs are built in code and validated
hard, while the horse meshes, gang-member MetaHumans, Dead-Eye Niagara, and
biome terrain those catalogs reference are described by FSoftObjectPath, not
cooked. One maturity seam is worth flagging up front: the 65 launch huntable
species are procedurally seeded placeholder rows (outlaw.species.01…65,
display name "Outlaw Trail Species NN", a single generic
wildlife.family.launch tag), while the 30 Year-1 Naturalist species are
hand-authored with real names, biomes, families, and per-species calibers
(Paintbrush Fox, Glasswater Otter, Golden Bison Calf…). Both are shape-valid;
only one is content-finished. Where a claim leans on the in-world runtime or on
art, this page says so.
The frontier experience — what the cell plays like#
Outlaw Trail — one gang, six camps, 125 km²#
V5FrontierOutlawTrail is the RDR surface, and its
UV5_OutlawTrail_Catalog::BuildCampaignCatalog
(V5/ue/Source/V5FrontierOutlawTrail/Private/V5FrontierOutlawTrailSystems.cpp)
is a validator-enforced content spine. ValidateCampaignCatalog refuses
anything but 60 main missions across 6 chapters of exactly 10 each, 4
endings, 22 named gang members, 320 random encounters, 5 biomes,
3 Dead-Eye tiers, 4 horse-bond tiers, and 95 huntable species — and
it sums the five biome areas and demands they total exactly 125.0 km²
(FMath::IsNearlyEqual( AreaTotal, 125.0f, 0.01f)): High Plains 31, Redwoods
28, Snowline Mountains 25, Bayou 23, Desert Mesas 18. The four endings
(BuildEndings) are honor-banded — a High-Honor Good close, a High-Honor
Martyrdom (the enforcer dies redeemed), a Low-Honor close below −40, and a
Cynical middle for the fence-sitters — exactly the moral-payoff shape the RDR
fantasy promises.
The camp is the cell's home: BuildGangMembers seeds 22 named outlaws (Ada
Bell, Doc Mercy, Moses Flint, Vera Slate…), the first twelve flagged as mission
companions, each with a daily-routine chore tag (firewatch, stables, infirmary,
ledger…) and a starting relationship value. Across six chapters the camp
physically relocates through the biomes — BuildCampRelocations moves it from
Blackwater Run on the high plains, to a shady bayou hideout, a redwood hollow, a
snowline refuge, and a final mesa hideout, each carrying a threat tag
(Pinkerton patrols, winter exposure, a bounty-hunter net) and a resource tag
(a rail spur, a riverboat dock, a border crossing). It is a moving frontier, not
a static map.
Cinematic random encounters — honor as a content dial#
The encounter system is the cell's signature, and it is honest about being a
selection engine over a large authored set. BuildRandomEncounters produces
320 encounters = 8 categories × 40 — BountyTarget, Ambush,
AnimalAttack, LawEncounter, TownEvent, TravelEvent, Treasure,
HelpNeeded — each tagged with a biome, a chapter availability window, a
cooldown, and an EV5OTHonorEligibility band. The runtime that surfaces them,
UV5_OutlawTrail_Encounters::GetEligibleEncounters, filters by biome, the
current chapter window, and IsEncounterEligibleForHonor, which routes
LowOnly encounters to low/very-low honor, HighOnly to high/very-high, and
Any to everyone. That single predicate is the design's "high-honor players see
more help-needed events, low-honor players see more ambushes" rule expressed as
a catalog filter — your reputation is literally the dial that selects the
world's content. The spec proves both ends fire
(HighHonorEncounters.Num() > 0, LowHonorEncounters.Num() > 0).
The frontier signature systems#
Strip the variant modules apart and the depth is in five shared-or-owned runtimes: a survival layer, the bonded horse, Dead Eye, hunting, and the honor/bounty meter — with the posse multiplayer surface sitting on top.
Survival — body weight, camp upkeep, and the saddle-inventory tether#
The frontier cell is the only one with a metabolic survival layer, and it is
real physiology, not a flavour meter.
UV5_OutlawTrail_BodyWeight::ApplyMealAndTravel starts the enforcer at 82
kg and integrates calories: burned energy is
RidingHours × 220 + OnFootHours × 430 + 1800 base, the calorie balance
accumulates, and weight changes by CalorieBalance / 7700.0f — 7,700 kcal per
kilogram is the actual approximate energy density of body fat, the same number
a nutritionist would use. The result clamps to [54, 125] kg and resolves a
weight class with genuine trade-offs: under 68 kg is underweight (stamina
×1.05, health ×0.94 — lean and quick but fragile), over 96 kg is heavy
(stamina ×0.9, health ×1.06 — slower but tougher), and the band between is
average — exactly the RDR weight simulation, expressed as one interpolation.
The gang camp is the cell's resource sink.
UV5_OutlawTrail_Camp::ApplyCampDonationAndUpkeep takes a dollar donation and
converts it to stores (food = donation/2, medicine = donation/8, ammo =
donation/3), then sums the daily needs across all 22 member rows, subtracts
them, and computes per-resource deficits. Meeting every need lifts camp morale
by 2.0 + CompletedChores × 0.25; falling short drops it by
0.3 × total deficit, clamped to [0,100]. The initial state
(BuildInitialCampUpkeep) seeds 85 dollars, 44 food, 18 medicine, 66 ammo, 62%
morale — and the spec confirms the opening camp can actually meet its first day
(Upkeep.bAllNeedsMet).
Both systems tie back to the saddle-inventory doctrine, the design choice
that makes the horse load-bearing rather than decorative. The validated
inventory split puts 12 weapon slots and 6 outfit slots on the saddle versus
only 2 weapon slots and 1 sidearm on your person (Catalog.InventorySplit),
and UV5_Horse_SaddleBagInventory::BuildSaddleBagInventory only grants access
when the horse is within 50 m (bHorseNearby), flipping
bCarryOverRestricted true otherwise. A single carcass slot forces the RDR
choice between the trophy on the horse's rear and the supplies it displaces.
Lose the horse and you lose your arsenal — which is why the next system matters.
Mounts — the bonded horse#
V5HorseAI is the one locomotion system in V5 with a relationship, and it is
the frontier cell's beating heart. A horse is an FV5HorseState (bond tier,
bond XP, stamina, health, hunger, mood, ability flags), and UV5_Horse_Bonding
runs a four-rung ladder — Wild → Familiar (100 XP) → Trusted (300 XP) → Bonded
(600 XP) — where each promotion unlocks real behaviours via
ApplyTierAbilities: Trusted grants rear/side-step/drift, Bonded grants
calm-under-fire and whistle recall. You earn that XP through the care loop in
UV5_Horse_FeedBrushTalk::ApplyCareInteraction, which pays differentiated
values — brushing 18, feeding apples 16/oats 14/hay 12, talking 10, calming a
spook 25, vet-treating 20 — while moving hunger, mood, and health on their own
clamps.
The bond is not cosmetic; it is wired into danger.
UV5_Horse_SpookCalm::EvaluateThreat computes panic as threat intensity (plus
12 if there's gunfire) minus a tier-scaled reduction of 5 / 18 / 38 / 70 — a
Bonded horse simply shrugs off most of what would throw a wild one. A horse
stays calm under a panic of ≤25 or if it's bCalmUnderFire, and only throws
its rider when panic ≥ 70 and the tier is below Trusted. Recall obeys the same
logic: UV5_Horse_Whistle::RequestRecall will only bring the horse from within
300 m, refuses if a threat is near and the horse isn't bonded enough to
brave it (threat_blocked), and otherwise returns an ETA from a tier-scaled
trot of 8 / 10 / 12 m/s. Movement itself is stamina-gated:
UV5_Horse_GaitLibrary::ApplyGait charges a per-gait stamina cost over time and
forces a slowdown to walk when the horse is spent — and a Wild, unbonded horse
refuses anything faster than a walk at all. Finally,
UV5_Horse_Permadeath::ResolveDamage honours the difficulty toggle: with
permadeath enabled and armed, a killed horse is gone for good (permadeath,
saddlebag recoverable at the carcass); otherwise it clamps to 1 HP and reports
stable_recovery. The deeper mounts dive — gaits, breeds, the wagon team —
lives in the architecture companion at
../architecture/spaceship-vehicles-and-mounts.md.
Dead Eye — the painted-shot slow-mo, shared three ways#
V5DeadEye is the RDR slow-mo, and it is the cleanest proof of V5's
one-engine-many-skins thesis. The gauge (UV5_DeadEye_Gauge) fills from
Kill (+20), Headshot (+35), and HonorStoryBeat (+45) and drains while
active. Three tiers gate three fantasies: Tier 1 auto-target (time scale
0.35, one painted mark), Tier 2 painted-shot (0.25, up to 6 marks via
PaintTargets), and Tier 3 weak-spot (0.20, paint specific body parts
through PaintWeakSpots). The weak-spot table is where it bites —
WeakSpotDamageMultiplier returns Head ×2.5, Vital ×2.0, WeaponHand ×1.35,
CenterMass ×1.0 — so a late-game player painting six heads in a
fifth-of-real-time bullet-ballet is doing real multiplied damage, and the
catalog ties tier unlocks to story chapters (DeadEyeTierForChapter: Tier 2 by
chapter 3, Tier 3 by chapter 5).
The cross-cell reuse is literal, not rhetorical.
UV5_DeadEye_SlowMoEffect::BuildSlowMoEffect applies a theme: FrontierDeadEye
sets vignette 0.82, film grain 0.65, sepia 0.9, an 850 Hz audio low-pass, and a
frontier_amber accent — the signature RDR look — while
UV5_DeadEye_ReflexMode_Urban and UV5_DeadEye_TacticalTime_SciFi call the
same function with UrbanReflex (white, no sepia) and SciFiTacticalTime
(cyan) themes. One slow-mo engine, three aesthetics, zero duplicated logic.
Hunting, pelts, and the Naturalist journal#
The frontier economy is anchored to hunting, and it shares its scorer with the
monster-hunter cell. UV5_OutlawTrail_Hunting::ScorePerfectPelt adapts a
frontier species and defers to UV5_Hunting_PerfectPeltScoring::ScorePelt
(V5/ue/Source/V5Hunting/Private/V5HuntingSystems.cpp), which encodes the RDR2
cleanliness rule precisely: a Perfect pelt requires the correct caliber for
the species, a clean kill (ShotCount == 1 into Head or Vital), and
field dressing within PerfectFieldDressMinutes = 15.0f; miss any and it drops
to Good or Poor with a typed reason. The trapper unlock
(EvaluateTrapperUnlock) gates each of the 72 outfits behind a specific set of
matching perfect pelts plus dollars.
Layered over the launch hunt is the Year-1 Naturalist content, which is the
more finished half. UV5_OutlawTrail_Naturalist::CatalogWildlifeInJournal is a
real collection state machine: it credits a new journal entry only if the
species' bPhotographRequiredForJournal is satisfied (some species demand a
photo before the entry completes — a fail-loud "needs a photograph" status
otherwise), awards separate photo and pristine-sample credits, accumulates
TotalNaturalistXp, and promotes the player's NaturalistRank across six tiers
that idempotently unlock outfits. This is the hand-authored layer — 30 named
species, 12 naturalist outfits, photograph gates — sitting atop the
procedurally-seeded 65-species launch roster noted above.
Honor, bounty, and the marshal response#
The frontier cell's reputation runs through the shared V5Honor substrate.
UV5_OutlawTrail_HonorBounty::ApplyHonorBeat forwards story beats to
UV5_Honor_Meter::ApplyHonorChange (a [−100,100] meter in five bands — a
cruel beat drives the spec straight to VeryLow), while ApplyWitnessedBounty
routes crimes to UV5_Honor_Bounty::ApplyBountyCharge as a dollar bounty (the
spec's witnessed train robbery costs 120 dollars). Six authored bounty
offices (BuildBountyOffices, from Valentine to Armadillo) let you pay it down:
PayBountyAtOffice subtracts a per-office service fee and clears the balance,
with the spec confirming a partial payoff (120 → 45) and a full clear (→ 0).
One honest seam: Outlaw Trail's Build.cs does not depend on V5Wanted.
The bounty you accrue here is the V5Honor dollar ledger and its offices, not a
star-rated heat curve. The era-scaled marshal-and-posse response the design
attributes to the frontier — EV5WantedResponseEra::Frontier spawning marshals
and posse riders — lives in the shared V5Wanted engine that the in-world mode
would invoke, and is documented alongside the Honor bridge and the
Cross-Continuum Bureau XP ledger in the architecture companion at
../architecture/hunter-period-systems-and-bureau-spine.md.
Honor still feeds the cross-cell moral compass there, so being cleanly heroic or
cleanly ruthless on the frontier still earns Bureau-XP toward cross-cell
unlocks.
Frontier Online — the posse surface#
V5FrontierOnline composes the horse and honor verbs into the cell's
multiplayer face, and ValidateOnlineCatalog pins the shape of three modes: a
2–7-player dedicated-server posse open world on the shared 500 m Frontier
AOI profile with join-in-progress; an 8-player free-for-all Frontier
Showdown on a rollback netcode tick — notably with Dead Eye disabled
(bDeadEyeDisabled = true) for competitive fairness, but lasso and horse-chase
enabled; and a 4v4 Posse War on dedicated servers, best-of-five, on a 90-day
ranked season cadence. Below the modes sits a regional economy
(BuildEconomyPrices: 25 rows = 5 regions × 5 goods, each with a demand/supply
scalar driving a current value) whose writes route through the shared
V5OnlineServices balance-ledger and matchmaking contracts — the same backbone
every cell rides, not bespoke endpoints.
The module also authors a Year-1 Posse War Tournament (ranked season, maps,
leaderboards) and the single-player pirate-and-Polynesian "full vision" DLC
catalogs (BuildFullVisionPirateFrontierCatalog and its Polynesian sibling) —
all real shape-checked catalogs with id-drift guards, whose geometry and live
services are described, not stood up.
Where this connects#
The Frontier cell is one face of a single game, and it hands off at well-defined seams:
- The other open worlds. The Period-Drama cell shares the Honor bridge and the Bureau ledger but spends them on 1947 noir and a Mafia rank ladder — see ./period-drama-cell.md — and the Monster-Hunter cell shares the exact perfect-pelt scorer and the Witcher-Sense/Eagle-Eye tracking lineage — see ./monster-hunter-cell.md.
- The mount, in depth. The horse's gait library, twelve breeds, wagon teams, and how it differs from the car and the spaceship are detailed in ../architecture/spaceship-vehicles-and-mounts.md.
- The reputation spine. The Honor meter, the era-scaled Wanted response, and the Cross-Continuum Bureau XP ledger this cell plugs into are in ../architecture/hunter-period-systems-and-bureau-spine.md.
- The feature hub: ../V5_features.md.