Open-World Narrative · Features

The Frontier Cell

A focused page within the Open-World Narrative Features documentation. The full map and every sibling page live in the Features hub.

4sections13 minread1diagram

On this page

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.0165, 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 × 40BountyTarget, 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.

flowchart TB subgraph VAR["Frontier variant modules (catalog + validate)"] OT["V5FrontierOutlawTrail<br/><sub>60 missions · 6 camps · 320 encounters · 125 km²</sub>"] FO["V5FrontierOnline<br/><sub>posse 2-7 · showdown 8 FFA · 4v4 posse-war</sub>"] end subgraph OWN["Outlaw Trail's own runtime"] BW["BodyWeight<br/><sub>survival: kcal/7700 → kg</sub>"] Camp["Camp upkeep<br/><sub>food/med/ammo → morale</sub>"] Enc["Encounters<br/><sub>honor-gated selection</sub>"] end subgraph SHARED["Shared mechanic cores"] DE["V5DeadEye<br/><sub>painted-shot slow-mo</sub>"] Horse["V5HorseAI<br/><sub>bond · gait · spook · permadeath</sub>"] Hunt["V5Hunting<br/><sub>perfect-pelt scorer</sub>"] Honor["V5Honor<br/><sub>meter + bounty $</sub>"] end OT --> BW & Camp & Enc OT --> DE & Horse & Hunt & Honor FO --> Horse & Honor & Net["V5Netcode · V5OnlineServices"] DE -.->|same effect, urban/scifi skins| Reuse["Reflex Mode · Tactical Time"] Hunt -.->|shared scorer| MH["Monster-Hunter cell"] Honor -->|moral compass| Bureau["Cross-Continuum Bureau"]

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.0f7,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: