Use this map to decide whether a term names shared infrastructure, durable narrative truth, a cell-local mechanic, or a production surface. That ownership distinction is what prevents a six-cell game from developing six incompatible versions of the same player record.
This is the orientation door to the V5 feature set — the page to read before any
deep feature page, so that when a later page says "the slow-mo painted shot
lives in V5DeadEye's UV5_Ability_DeadEye," or "the Witcher contract evidence
is pushed into the deduction graph by UV5_Investigation_MindPalacePush," or
"the leaderboard upload rides UV5_Online_AuthService," the name already lands
on something real you can open. V5 is the largest of the V-products: one
Unreal Engine 5.5 open-world narrative-action game built as a universe of
distinct ruleset cells — urban crime, period drama, frontier, monster
hunter, and two sci-fi flavours — sharing one roster (the Cross-Continuum
Bureau), one cross-cell Mind Palace deduction layer, one creator suite, and one
online backbone. The pitch is per-genre feel on a single spine: a Hong Kong
triad brawl, a 1947 noir interrogation, a frontier outlaw chase, a Witcher
contract hunt, and a Newtonian ship duel must each feel like its own genre while
reading stimuli from the same perception model and depositing evidence into the
same deduction graph.
That promise is a code-organization decision before it is a design one, and this
page maps it: the named subsystem that delivers each advertised player
capability, and where the glossary's name and the disk's reality diverge. It is
the product-side companion to the architecture glossary
../architecture/promise-and-glossary.md,
which reconciles the engine module graph against the compiler (the acyclic
Build.cs edges, the load phases, the five build targets); here we read the
same disk from the player-feature angle. The single source of truth for
completion state remains the backlog (V5_TODOS.md); this page is the index,
not the checklist. It is the foundations companion to the full feature catalogue
at ../V5_features.md.
What ships, honestly#
The module skeleton is real, large, and exactly consistent.
ls V5/ue/Source/ yields 74 module directories (plus five .Target.cs
files); the .uproject Modules array names the same 74 — no spec-only
modules, no orphan directories. Every module ships a *.Build.cs, a
Public//Private/ split, and a module class, and the tree carries 328
.cpp and 341 .h files of domain-specific gameplay code. Depth concentrates
where the genre needs it: the deepest module is V5MindPalace (36 files),
followed by V5Melee and V5Investigation (22 each), V5Spaceship and
V5Interrogation (20 each), and V5StarMap/V5Squad/V5Combat (18 each).
These are real systems, not renamed CRUD: V5Spaceship carries an
AV5_Ship_NewtonianPawn with ConfigureShip, SetNewtonianState, and a
SimulateSubstep(DeltaSeconds, MainThrottle, RCSInput) integrator; V5Gameplay
ships a real GAS attribute set,
UV5_AttributeSet_Combat final : public UAttributeSet, exposing replicated
Health/MaxHealth/Stamina via OnRep_* and an accessor macro.
Three honest corrections a reader should carry, each found by reading both the prose and the disk:
- The cell code is Source modules, not GameFeature plugins. The glossary
bills each cell's mode set as a hot-swap
GameFeaturesplugin. On disk the cell logic is a statically compiled Source module —V5UrbanHeistCity,V5HunterWitchersPath,V5FrontierOutlawTrail,V5SciFiGalacticSquad,V5PeriodMadeMan,V5DetectiveMindPalace, and a dozen more, each with a*Systems.cpp, a*.cppmodule class, and a colocatedPrivate/Tests/spec. The matching 29Plugins/V5Mode_*directories are content/manifest shells: they carry zero.cpp, hold only the 62 JSON manifests underContent/Data/, declare"EnabledByDefault": false, and there are zeroGameFeatureData.uassetbinaries in the entirePlugins/tree. The cells are modular by source module, not yet by runtime feature. - The perception and deduction layers are function-library suites, not
component trees. Where V4 shipped a
V4PerceptionComponent, V5'sV5Perceptionis a suite ofUBlueprintFunctionLibraryclasses (UV5_Perception_StateMachine,UV5_Perception_SightCone,UV5_Perception_SoundAbsorption,UV5_Perception_HearingRadius,UV5_Perception_WitnessReport,UV5_Perception_CellTuning) over a sharedV5PerceptionTypes.h.V5MindPalaceis the same shape — statics over aUV5_MindPalace_Graphobject, not methods on an actor. - No authored binary content; a TypeScript backend; one cross-product
reference.
V5/ue/Content/holds 0.uassetand 1.umapagainst 393 JSON sidecars — V5 is a logic-and-manifest skeleton, every "AAA open-world" claim depends on art/audio production not in-tree. The online backbone is a 16-service TypeScript workspace underapps/v5/(234.ts, 16contract.json), not a Rust crate set. And the.uprojectPluginsarray enablesV8_Ariadne_CaseClient— a plugin owned by the V8 detective product, reused here as a cross-cell case client; its source is not local.
Everything below is grounded in those files; where a claim is the glossary's intent rather than shipped code, it is labelled.
The foundation and the gameplay-framework spine#
V5Core (15 files) is the graph sink — the tags registry, the save scaffold
(FV5CellSaveSlot, EV5SaveGeneration), and the canonical cell enum. That enum
is load-bearing: EV5Cell (V5Core/Public/V5Types.h) carries seven values
— Urban, Period, Frontier, Hunter, SciFi, Steampunk, MindPalace — the five
launch cells plus the Steampunk Detective DLC cell and the Mind Palace
meta-layer. Per-cell datasets and tests must size against GetAllV5Cells()
(defined in V5Types.cpp, returning all seven), not a literal 5 or 6; the
2026-05-31 audit traced four automation failures to exactly that mismatch.
V5Gameplay (11 files) is the GAS spine the cell abilities extend —
UV5_AttributeSet_Combat plus the narrative-state machine — and it is real
GameplayAbilities/GameplayTags code, not a wrapper. Around it sit the rest
of the framework: V5Animation (UV5_Anim_AnimBPCombat,
UV5_Anim_ChooserTable, UV5_Anim_IK_FootGround, UV5_Anim_IK_FullBodyMount —
the motion-matching Chooser/PoseSearch/Mover stack plus IK), V5Input
(UV5_Input_DialogueWheelCursor, UV5_Input_AdaptiveController,
UV5_Input_HOTASBinding for the flight stick, UV5_Input_ArcadePanelBinding
for the arcade-cabinet target), and V5Modes (UV5_Mode_Registry,
UV5_Mode_RulesetGate, UV5_Mode_PerCellHUDRouter) which gates which cell's
ruleset and HUD are live. V5Netcode is where the per-cell net-envelope promise
is real, named code rather than prose: UV5_Net_DedicatedServer,
UV5_Net_IrisReplication, UV5_Net_AOIStreaming, UV5_Net_BandwidthBudget,
UV5_Net_HostMigration, and UV5_Net_LAN. The determinism logic lives inside
this module, not stamped onto a build target — read the determinism posture as
module-level intent (the
../architecture/promise-and-glossary.md
caveat applies in full). Per-target stripping, however, is real where it
counts: V5DedicatedServer.Target.cs (a genuine TargetType.Server) ships a
DisablePlugins.AddRange list of 29 client-only plugins — Niagara,
Metasound, the ChaosCloth/ChaosFlesh set, CommonUI, EnhancedInput,
GameplayCameras, the geometry-processing stack — so the headless server build
genuinely drops rendering, audio, and cloth physics.
The shared AI layer#
Three modules deliver the senses every NPC in every cell shares. V5Perception
is the one sight/hearing/suspicion model: UV5_Perception_SightCone and
UV5_Perception_HearingRadius feed UV5_Perception_StateMachine, with
UV5_Perception_WitnessReport for crime reporting and — crucially —
UV5_Perception_CellTuning, so a triad goon, a noir witness, an outlaw, a
drowner, and a station guard all run the same state machine with per-cell
parameters. V5Crowd is the Mass-ECS civilian layer (UV5_Crowd_MassEntity,
UV5_Crowd_PanicPropagation, UV5_Crowd_BodyLanguageLibrary,
UV5_Crowd_VocabBarks) — panic propagates and body language shifts per era.
V5Schedules runs NPC daily routines (UV5_Schedule_Data,
UV5_Schedule_EraProfiles, UV5_Schedule_Ticker,
UV5_Schedule_DistanceOfDetail for LOD). The deep treatment of this shared
layer is ./shared-cross-cell-systems.md.
The per-cell gameplay systems#
The product's whole "per-genre feel" thesis rests on the cell modules, and the disk backs it concretely — each cell's glossary line is a list of components that actually exist, and the shared-spine reskinning is visible in the names.
- Urban rides
V5Combat(third-person gunplay:UV5_Combat_AimDownSight,UV5_Combat_Cover,UV5_Combat_Reload,UV5_Combat_StanceSubsystem,UV5_Combat_BulletPenetration),V5Melee(UV5_Melee_BladeParry,UV5_Melee_ComboMeter,UV5_Melee_HitStop,UV5_Melee_EnvFinisherfor the Sleeping-Dogs environmental finishers,UV5_Melee_SteelSilverSwapshared with the Hunter cell),V5Heist(UV5_Heist_Planner,UV5_Heist_CrewSelection,UV5_Heist_ConflictDetection,UV5_Heist_EndingResolver), andV5Wanted(UV5_Wanted_Manager,UV5_Wanted_AttackHeloSpawn, plusUV5_Wanted_FrontierVariantandUV5_Wanted_HunterVariant— one star system, era-scaled). The Urban-flavour texture modules round it out:V5Parkour(UV5_Parkour_Climb,UV5_Parkour_ContextSolver,UV5_Parkour_AwningBounce),V5Karaoke(UV5_Karaoke_RhythmEngine,UV5_Karaoke_ReputationReward),V5LockpickHack(UV5_LockpickHack_LockpickUI,UV5_LockpickHack_DigitalCameraPlant), andV5RadioTV(UV5_RadioTV_DJTrack,UV5_RadioTV_InGamePhone). - Period rides
V5Investigation(AV5_Investigation_ClueActor,UV5_Investigation_ExamineCamera,UV5_Investigation_FalseClue, and the cross-cell bridgeUV5_Investigation_MindPalacePush) andV5Interrogation(AV5_Interrogation_Session,UV5_Interrogation_FacialTellPlayer,UV5_Interrogation_EvidenceBackedLie,UV5_Interrogation_RatingSystem— the LA-Noire truth/doubt/lie loop), withV5FaceCapture(UV5_FaceCapture_MetaHumanBind,UV5_FaceCapture_TellTakeAuthoring) feeding the facial tells andV5PeriodAuth(UV5_PeriodAuth_Bundle,UV5_PeriodAuth_DataLayerFlip,UV5_PeriodAuth_NPCSwap) swapping the era dressing. - Frontier rides
V5DeadEye,V5Honor,V5Hunting, andV5HorseAI.V5DeadEyeis the sharpest shared-spine evidence in the tree: one slow-mo system,UV5_Ability_DeadEye(a GAS ability) plusUV5_DeadEye_GaugeandUV5_DeadEye_SlowMoEffect, reskinned asUV5_DeadEye_ReflexMode_UrbanandUV5_DeadEye_TacticalTime_SciFi.V5Honorcarries the persistent reputation meter withUV5_Honor_KarmaParagonBridge(honor/karma/paragon unified across cells) andUV5_Honor_BureauXPMod(feeding the shared Bureau XP ledger).V5Huntingis the RDR-style perfect-pelt economy (UV5_Hunting_PerfectPeltScoring,UV5_Hunting_FieldDressing,UV5_Hunting_CarcassTransport);V5HorseAIis the bonding loop (UV5_Horse_Bonding,UV5_Horse_GaitLibrary,UV5_Horse_FeedBrushTalk,UV5_Horse_Permadeath). - Hunter rides
V5Alchemy(UV5_Alchemy_Recipe,UV5_Alchemy_ToxicitySystem,UV5_Alchemy_IngredientGather,AV5_Alchemy_BrewingStation),V5Signs(five elemental GAS abilities —UV5_Ability_Sign_FireCone,_ForceWave,_MindSuggest,_Shield,_TrapGlyphover aUV5_Ability_Sign_Base),V5MonsterHunt(AV5_MonsterHunt_ContractBoard,AV5_MonsterHunt_ClueMarker,UV5_MonsterHunt_Bestiary— the bestiary gates which monster you can effectively hunt), andV5CardGame(UV5_CardGame_DeckBuilder,UV5_CardGame_CardDropFromKills,UV5_CardGame_MerchantInventory— the gwent-style minigame, rules re-derived). - Sci-Fi rides
V5Spaceship(the NewtonianAV5_Ship_NewtonianPawnplusUV5_Ship_FlipAndBurn::StepFlipAndBurnandEV5ShipFlightMode),V5StarMap(AV5_StarMap_System,UV5_StarMap_FTLPlot,UV5_StarMap_FuelConsumption,UV5_StarMap_GalaxyView),V5Squad(AV5_Squad_Member,UV5_Squad_LoyaltyArc,UV5_Squad_RomanceGate,UV5_Squad_PowerCombo), andV5Dialogue(UV5_Dialogue_Wheel,UV5_Dialogue_CharmIntimidate,UV5_Dialogue_Interrupt,UV5_Dialogue_RuntimeStateMachine).
The cells are held together — not blended — by these shared seams: every cell
queries the same V5Perception state machine, V5Investigation pushes evidence
into V5MindPalace, and V5Honor's KarmaParagonBridge lets one cell's
reputation modify another's NPC greetings.
The cross-cell deduction layer: V5MindPalace#
V5MindPalace (36 files, the deepest module) is the meta-game that makes the
universe one game instead of a launcher. Its public surface is a suite of
function libraries over a UV5_MindPalace_Graph:
UV5_MindPalace_AddEvidenceNode deposits a FV5MindPalaceEvidenceNode,
UV5_MindPalace_AttemptDeduction links two nodes — and notably takes a
FV5BureauXPLedger, so deduction is XP-gated by the shared Bureau progression —
UV5_MindPalace_BuildHypothesisChain walks the graph to a bounded depth,
UV5_MindPalace_CrossEraGate enforces that evidence from a 1947 case can
legitimately pair with a frontier or sci-fi case, and
UV5_MindPalace_MakeAccusation resolves a CaseId/AccusedId/EvidenceChain
into an FV5MindPalaceAccusationOutcome. V5MindPalaceCloudSyncHttp carries
the state to the mindpalace-cloud-sync backend service, and
AV5_UI_MindPalaceVolumetricRoom (in V5UI) is the in-world volumetric room
the player walks through. The cross-cell deduction feature pages build on this;
the accusation/false-lead rules are catalogued in
../V5_features.md.
Presentation, persistence, online, and telemetry#
V5UI (9 files) is the CommonUI/MVVM front-end — UV5_UI_DialogueWheel,
UV5_UI_CellSelectWidget, the AV5_UI_MindPalaceVolumetricRoom actor, and
UV5_UI_CompanionAppBridge. V5Audio and V5VFX are gameplay-facing seams
over the force-enabled engine plugins, but they are named seams, not stubs:
V5Audio ships UV5_Audio_DynamicMusic, UV5_Audio_DialogueDirector,
UV5_Audio_DolbyAtmosBinaural, and UV5_Audio_DualSenseHaptic over
Metasound; V5VFX ships per-cell emitters (UV5_VFX_HunterSigns,
UV5_VFX_SciFiPowers, UV5_VFX_MindPalace) over Niagara. V5Cinematics
drives Sequencer beats (UV5_Cine_CampaignBeats,
UV5_Cine_CrossCellReplayEditor, UV5_Cine_DirectorCommentary), and
V5Persistence carries the save layer (UV5_Persist_CurrencyLedger,
UV5_Persist_MindPalaceState, UV5_Persist_NewGamePlus,
UV5_Persist_CrashRecovery, UV5_Persist_ReplaySerialization).
V5OnlineServices (10 files) is the client half of the online backbone, and
its subsystems map one-to-one onto the 16 TypeScript services:
UV5_Online_AuthService ↔ auth, UV5_Online_AntiCheatClient ↔ anti-cheat,
UV5_Online_BalanceLedgerClient ↔ balance-ledger,
UV5_Online_ComplianceDSARClient ↔ compliance-dsar,
UV5_Online_CompanionAppBridge ↔ companion-app-bridge, with friends,
parties, matchmaking, leaderboards, replays, telemetry, workshop,
crash-reporting, faction-rep, live-service-calendar, and
mindpalace-cloud-sync completing the set. V5Telemetry is the on-device
emitter (UV5_Telemetry_EventBatcher, UV5_Telemetry_Schema_TypeBox,
UV5_Telemetry_DSAR_Export, UV5_Telemetry_OptOut — privacy-aware by design)
feeding the telemetry service. The cross-play, anti-cheat, store/cert, and
live-service surfaces are provider- and ops-gated, marked [~] in the backlog
and V5/REMEDIATION_2026-06-12.md.
The creator suite, the world layer, and the DLC cell#
Promise #6 — one creator suite — is realized as four Editor-type modules, each
a Catalog + Workflow pair: V5MissionEditor, V5HeistAuthor,
V5CaseAuthor, and V5WorkshopEditor (workshop publishing, ratings,
moderation), with V5Editor holding the shared UV5_Editor_AssetLinter,
UV5_Editor_ToolRegistry, and UV5_Editor_TutorialCatalog. The world layer is
V5Open (World-Partition streaming with era data layers —
UV5_Open_DataLayer_Era, UV5_Open_TrafficSpawner, UV5_Open_PedSpawner,
UV5_Open_TimeOfDay), V5Vehicles (16 files, the cross-era car/bike/boat/horse
library), V5Procgen (UV5_Procgen_MonsterContractGenerator,
UV5_Procgen_RandomEncounter, UV5_Procgen_GalaxyDetail), and V5Hub
(per-cell hubs: UV5_Hub_BureauHQ, UV5_Hub_FrontierCamp,
UV5_Hub_HunterKeep). V5SteampunkDetective is the Brave New World DLC cell
([P3] §139), wired through the Steampunk EV5Cell value. Automation is
distributed: 73 of 74 modules ship their own Private/Tests/, so the cell
that owns a system owns its spec, and V5Tests is a lean harness rather than
the bulk of the test code.
The plugin shells, named honestly#
The 29 V5Mode_* plugins live directly under V5/ue/Plugins/ and are the
disk's expression of the modes table — V5Mode_Urban_HeistCity,
V5Mode_Hunter_WitchersPath, V5Mode_SciFi_HardVacuum, the two
V5Mode_Editor_* authoring shells, V5Mode_Replay, V5Mode_Spectator,
V5Mode_PhotoMode, and so on. Today they are content/manifest containers:
zero .cpp, zero GameFeatureData.uasset, 62 JSON manifests,
"EnabledByDefault": false, and none listed in the .uproject Plugins array.
The "hot-swap GameFeatures" story is therefore half realized — the runtime
code exists and compiles into the monolith via the cell Source modules; the
binary GameFeature data assets that would let a cell activate as a toggleable
runtime feature are not yet authored. This is the page's single biggest honest
correction, named rather than implied.
Where to go next#
- The promise these foundations serve and the player-facing conventions: ./product-promise.md.
- The shared spine — roster, perception, dialogue wheel, honor bridge, and the cross-cell seams — as player features: ./shared-cross-cell-systems.md.
- The authoritative engine module map, dependency graph, and build targets: ../architecture/promise-and-glossary.md.
- The feature catalogue this page indexes: ../V5_features.md.