Open-World Narrative · Features

Product Promise

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

4sections12 minread1diagram1table

On this page
mindmap root((One open-world narrative universe)) Six ruleset cells Urban crime Period drama Frontier Monster hunter Squad science fiction Newtonian space simulation Shared player truth Cross-Continuum Bureau Mind Palace Relationships and consequence Production spine World partition Investigation and cases Online and creator Evidence-backed release

V5's breadth is constrained by shared player truth: six distinct ruleset cells may change movement, combat, and simulation, but they do not fork the roster, investigation record, or consequence model. The promise is therefore a coherent universe with deliberately different local grammars.

V5 is the largest of the V-products: one Unreal Engine 5.5 open-world narrative-action game built as a universe of six ruleset cells — urban crime, period drama, frontier, monster hunter, and two sci-fi flavours (a Mass-Effect squad RPG and an Expanse-style Newtonian ship sim) — sharing one roster (the "Cross-Continuum Bureau"), one cross-cell Mind Palace deduction layer, one creator suite, and one online backbone. The promise is not a launcher bolted over unrelated titles; it 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 flip-and-burn ship duel must each feel like its own genre — yet all of them read stimuli from the same perception model, hang their stats off the same attribute spine, and deposit evidence into the same deduction graph. The architecture exists to make that shippable: each ruleset is a swappable gameplay layer over common engine modules, so cells can be enabled, stripped per platform, or DLC-gated without forking the foundation.

This page is the features-side orientation door to that universe. Where the architecture companion ../architecture/promise-and-glossary.md reconciles the engine module graph against the compiler — load phases, the acyclic Build.cs dependency graph, the dedicated-server slice — this page reads the same disk from the player-feature angle: what V5 commits to as a product, which named promise resolves to which real code, and where prose and tree diverge. It states the commitments, separates what is real on disk from what is spec, and hands the deep mechanics off to its siblings — the named-subsystem map in ./subsystem-glossary.md and the cell-by-cell breakdown in ./ruleset-cells-overview.md — rather than re-deriving them. The single source of truth for completion state remains the backlog; this page describes product shape, not checkbox status. The feature map this page belongs to is ../V5_features.md.

What ships, honestly#

The module skeleton is real and exactly consistent. V5/ue/V5.uproject pins "EngineAssociation": "5.5", sets DisableEnginePluginsByDefault: true, and declares 74 C++ modules in its Modules array; ls V5/ue/Source/ yields 74 module directories alongside five *.Target.cs files — the two sets are identical, with no spec-only modules and no orphan directories. The tree carries 328 .cpp and 341 .h files of domain-specific gameplay code. Every module ships a *.Build.cs, a Public//Private/ split, and a module class, and depth is concentrated where the genre needs it. The deepest module is V5MindPalace (36 files) — the cross-cell deduction engine, exposing UV5_MindPalace_AddEvidenceNode, UV5_MindPalace_AttemptDeduction, UV5_MindPalace_BuildHypothesisChain, UV5_MindPalace_MakeAccusation, UV5_MindPalace_CrossEraGate, and an FV5MindPalaceCloudSyncHttp transport, all operating over a real UV5_MindPalace_Graph. V5Spaceship (20 files) carries a genuine AV5_Ship_NewtonianPawn : APawn with ConfigureShip(...), SetNewtonianState(...), and RCSTorqueDegPerSecond thruster math (Source/V5Spaceship/Public/V5SpaceshipTypes.h) — not a renamed CRUD shell. V5Gameplay is the GAS spine: UV5_AttributeSet_Combat final : UAttributeSet (Source/V5Gameplay/Public/V5AttributeSets.h) exposes Health/MaxHealth/Stamina plus genre-specific attributes — ToxicityCurrent/ToxicityMax for the alchemy cell, ManaCurrent/ManaMax for sign-casting, and a separate UV5_AttributeSet_Honor for the frontier — domain detail a generic stat block would not carry.

The single biggest honest correction concerns where cell gameplay lives. The prose frames each mode as a hot-swappable GameFeatures plugin. On disk, the cell code is instead statically compiled Source modules: V5UrbanHeistCity, V5UrbanStreetTriad, V5HunterWitchersPath, V5FrontierOutlawTrail, V5SciFiGalacticSquad, V5SciFiHardVacuum, V5PeriodMadeMan, V5DetectiveMindPalace, and a dozen more are real Runtime modules named in the .uproject Modules array, each with a colocated Private/Tests/ spec. The matching Plugins/V5Mode_* directories are content/manifest shells: all 29 V5Mode_* plugins carry zero .cpp, declare "EnabledByDefault": false, hold only JSON under Content/Data/, and there are zero GameFeatureData.uasset binaries anywhere in Plugins/; none of the 29 appear in the .uproject Plugins array. So the "hot-swap GameFeatures" story is half realized: the runtime code exists and compiles into the monolith; the binary GameFeature data assets that would let it activate as a toggleable plugin are not yet authored. The cells are modular by source module, not yet by runtime feature.

The honest gaps, named rather than implied:

  • No authored binary content. V5/ue/Content/ holds 0 .uasset and 1 .umap (V5Core/Maps/BootMap.umap), against 393 JSON authoring/manifest sidecars. V5 is a logic-and-manifest skeleton: real C++ systems and structured data, but no hand-authored meshes, MetaHumans, mocap, VO, or cinematics in-tree. Every "AAA open-world" claim depends on art/audio production that is not in the repository.
  • A deliberate cross-product reuse. The .uproject Plugins array enables V8_Ariadne_CaseClient — a plugin owned by the V8 (Ariadne) detective product, not present under V5/ue/Plugins/. It builds into V5 from elsewhere; treat it as intentional cross-cell case-client reuse, labelled here because the source is not local.
  • The backend is TypeScript, not Rust. apps/v5/ is a NestJS-style TypeScript workspace — 234 .ts across 16 contract-tested services (auth, friends, parties, matchmaking, leaderboards, replays, telemetry, anti-cheat, mindpalace-cloud-sync, workshop, compliance-dsar, faction-rep, …), each with its own contract.json. This is a real backbone, and a deliberate contrast with V4's Rust workspace.
  • Provider- and ops-gated surfaces. Cross-play, anti-cheat, store/cert, and the live-service cadence depend on platform credentials and real operations; V5/REMEDIATION_2026-06-12.md removed a fabricated launch-readiness manifest rather than let prose imply ship-state, and marks these [~].

The product promise#

V5's promise, authored in V5_features.md under "V5 Product Promise" and mirrored in the architecture hub, is a small set of non-negotiable commitments. The unifying idea is per-genre feel, one shared spine, and each commitment has a code anchor or an honest status.

# Commitment Code-grounding / status
1 One coherent game delivering per-genre feel across all launch cells 74 Source/ modules incl. per-cell modules; identity routed by V5Modes + EV5Cell (V5Core)
2 A per-cell netcode envelope (dedicated, rollback-emulated, offline) V5Netcode hosts all three paths; V5DedicatedServer.Target.cs is a real TargetType.Server
3 One shared AI perception model across every NPC in every cell V5Perception — unified sight/hearing/suspicion (V5PerceptionSystems.h), consumed by every cell
4 One shared roster, cell-specific overrides hung off a character record EV5Cell-keyed character/save data in V5Core (FV5SaveDocument, FV5BureauXPLedger)
5 One cross-cell Mind Palace deduction layer V5MindPalace (36 files) — evidence graph, hypothesis chains, cross-era gate; every cell pushes evidence in
6 One creator suite (Mission/Heist/Case/Workshop authoring) V5MissionEditor, V5HeistAuthor, V5CaseAuthor, V5WorkshopEditor (Editor-type modules) + tools/
7 Cells enable/disable per platform, per build target, per DLC Plugins/V5Mode_* manifests + per-cell Content/ roots; gap: no GameFeatureData.uasset to hot-activate
8 One online backbone (auth, parties, matchmaking, replays, anti-cheat) apps/v5/ — 16 contract-tested services; V5OnlineServices engine module is the client
9 Run across nine platforms, plus dedicated- and listen-server SKUs Five *.Target.cs; Platforms/ overrides for Windows/PS5/PS5Pro/XSX/XSS/Switch2/Mac/Linux/iPad

Per-genre feel, no compromise blends#

The promise is explicit that V5 is not "blend everything every match." When a mission is in the urban ruleset it must feel like a GTA-style sandbox; when it is a Witcher contract it must feel like a monster-hunter RPG; when it is a ship duel it must feel like Newtonian hard-sim. The architecture serves that by routing cell identity at runtime through V5Modes rather than hard-compiling a menu, and by keying character, save, and progression data on the EV5Cell enum (V5/ue/Source/V5Core/Public/V5Types.h) so one Bureau roster can carry distinct per-cell stat morphologies without colliding. The richest evidence that the feel is genre-specific and not a generic shell is the attribute spine itself: a single UV5_AttributeSet_Combat already distinguishes a toxicity budget (the alchemy cell's potion-overdose mechanic) from a mana pool (the sign-casting cell) from a separate Honor set (the frontier reputation curve).

One shared spine#

Five things are shared, not duplicated per cell. One roster — the Cross-Continuum Bureau — is modelled as EV5Cell-keyed records in V5Core, where FV5SaveDocument carries a FV5BureauXPLedger with per-cell XP and a recalculated account tier. One Mind Palace (V5MindPalace) is the cross-cell deduction graph every cell feeds. One perception model (V5Perception) is the unified sight/hearing/suspicion machine a triad goon, a noir witness, an outlaw, a drowner, and a station guard all read. One creator suite is four Editor-type modules — V5MissionEditor, V5HeistAuthor, V5CaseAuthor, V5WorkshopEditor. One online backbone is the 16-service apps/v5/ workspace, with V5OnlineServices as the in-engine client. The thin V5 composition root itself (three files: V5.Build.cs, Private/V5.cpp, Public/V5.h) fuses nothing — it is named by every target via ExtraModuleNames.Add("V5") and exists only to be the executable's entry point, which is exactly why the cells can hang off the spine instead of forking it.

A per-cell netcode envelope#

Commitment 2 is one decision expressed as a per-cell envelope, because no single strategy fits a 32-player open-world session, a co-op heist, and a 60 Hz ship duel. Dedicated-server client-server netcode is the default for open-world PvP and co-op; rollback-emulated prediction serves tight spaceship-PvP and squad combat; offline-deterministic single-player serves the campaigns. Like V4 (and unlike V2, which stamps strict-FP determinism on its build targets), V5 keeps that logic inside V5Netcode rather than on the targets — none of the five *.Target.cs sets /fp:strict or a DETERMINISM=* define, so read the determinism prose as module-level intent, not a build-target guarantee. The targets do, however, do real work: V5DedicatedServer.Target.cs is a genuine TargetType.Server that, beyond a V5_DEDICATED_SERVER=1 define, carries a real DisablePlugins.AddRange list of 29 plugins (Niagara, Metasound, the Chaos cloth/flesh set, MetaHumanRuntime, CommonUI, EnhancedInput, the geometry- processing stack, PCG…), so the server build genuinely strips client-only rendering, audio, and physics — concrete per-target stripping rather than a flag.

Complete content, safe degradation, nine platforms, live service#

The remaining commitments are the AAA-scope promises: complete launch content across every advertised mode (no "coming soon" panels, no skeleton cells), with first-class single-player per cell; safe degradation under offline, partial-net, controller-loss, mid-mission-disconnect, and provider-outage conditions (host-migration under two seconds, local saves reconciled on reconnect, an eight-frame rollback on ship-PvP packet loss, Mind Palace state surviving a crash); nine platforms day-one (Windows, PS5/PS5 Pro, Xbox Series X|S, Switch 2 scaled, macOS Apple Silicon, Linux/Steam Deck, iPad Pro) plus a PixelStreaming thin-client where contract permits; and live service from day one with per-cell seasonal contracts, out-of-band balance hot-fixes, and a public balance ledger. The five *.Target.cs files and the Platforms/ overrides are the structural form of the platform promise; the authored content that dresses every "complete" claim is the production-gated gap named above.

The six-cell open-world-narrative vision#

The cells are the product. The prompt frames V5 as six ruleset cells — urban crime, period drama, frontier, monster hunter, and two sci-fi flavours — and the disk bears that out, but the count needs care, because three different numbers are each correct in their own frame:

  • Five launch cells is the marketing/promise framing: Urban, Period, Frontier, Hunter, Sci-Fi.
  • Six is what you get counting the two distinct sci-fi gameplay modules separately: V5SciFiGalacticSquad (squad RPG) and V5SciFiHardVacuum (hard-sim Newtonian flight over V5Spaceship), with V5SciFiPvP for ship-duel deathmatch alongside them.
  • Seven is the canonical engine count. EV5Cell (V5/ue/Source/V5Core/Public/V5Types.h) enumerates Urban, Period, Frontier, Hunter, SciFi, Steampunk, MindPalace — the five launch cells plus the Brave New World Steampunk Detective DLC cell and the cross-cell Mind Palace meta-layer. Per-cell datasets and tests must size against GetAllV5Cells(), which returns all seven from the GAllV5Cells array in V5Types.cpp, not a literal 5 or 6 — the 2026-05-31 audit traced four automation failures to exactly that mismatch.

Each cell is realized as a family of compiled Source modules layered over shared systems: Urban (V5UrbanHeistCity, V5UrbanStreetTriad, V5UrbanOnline, over V5Heist, V5Wanted, V5Parkour, V5Karaoke); Period (V5PeriodMadeMan, V5PeriodViceSquad, over V5Interrogation, V5FaceCapture, V5PeriodAuth); Frontier (V5FrontierOutlawTrail, V5FrontierOnline, over V5Honor, V5Hunting, V5HorseAI, V5DeadEye); Hunter (V5HunterWitchersPath, V5HunterContractBoard, V5HunterCardGame, over V5Alchemy, V5Signs, V5MonsterHunt); and Sci-Fi (V5SciFiGalacticSquad, V5SciFiHardVacuum, V5SciFiPvP, over V5Spaceship, V5StarMap, V5Squad). The cross-cell layers — V5DetectiveMindPalace, V5DetectiveColdCases, and the V5SteampunkDetective DLC cell — sit on top, and the mode-shaped modules (V5SpecOpsCoop, V5HordeDefense, V5RoguelikeHunterRun) reuse cell systems across the universe.

Held together, not blended#

The cells are unified — not homogenized — by shared infrastructure. A triad goon, a 1947 witness, an outlaw, a drowner, and a station guard all read the same V5Perception state machine. V5MindPalace links V5Investigation so a clue photographed in the urban cell can pair with a forensic note from the period cell and a track from the frontier cell into a single deduction — and the accusation system lets the wrong answer ship, archiving it alongside the right one rather than forcing a retry. V5Modes gates which cell's ruleset and HUD are live, and the one-way Build.cs dependency declarations (V5MindPalace → V5Core, V5Investigation; V5UrbanHeistCity → V5Core, V5Wanted) keep the cross-cell shared modules forbidden from depending on any per-cell module — the acyclic property the topology companion audits in full. Testing is distributed to match: 73 of 74 modules ship their own Private/Tests/ directory, so the cell that owns a system owns its UE automation spec, and V5Tests is a lean harness rather than the bulk of the test code.

How the promise stays honest#

Two conventions keep the prose from drifting ahead of the tree, and the subsystem glossary details both. First, the target-artifact convention: a section that names a module or path either points at a file that exists or declares a target the owning backlog task must build with tests. Second, the cross-reference convention: a bare §N/§N.M resolves to a numbered task in V5_TODOS.md, while deps§NV5_DEPENDENCIES.md, arch§"anchor" → the architecture hub, and features§"anchor"V5_features.md. The precise claim a reader can make today: V5's systems — 74 modules, 669 source files, distributed UE automation — are real and compile; the content that dresses them (meshes, MetaHumans, VO, cinematics, the GameFeatureData.uasset binaries that would hot-activate the mode plugins) is production-gated and not yet in-tree; and the operations claims are marked [~] until they can occur. That separation is the product promise kept honest.

  • ../V5_features.md — the V5 feature map this page orients, with the full cell-by-cell catalogue, modes, services, and exit criteria.
  • ./subsystem-glossary.md — the named-subsystem map: every V5* module, the GameFeature-plugin family, IP posture, and the conventions behind every claim here.
  • ./ruleset-cells-overview.md — the cell-by-cell overview: camera, pacing, AI personality, PvP posture, and feel tests per cell.
  • ../architecture/promise-and-glossary.md — the architecture companion: the module graph against the compiler, build targets, the determinism posture, and the runtime topology behind the cells.