The promise has two equally binding halves: each ruleset preserves its genre's feel, while shared identity, creation, online, and narrative systems prevent the cells from becoming unrelated games. The conventions below keep that balance inspectable as designs become code and evidence.
V4 is one Unreal Engine 5.5 game that has to feel like a dozen different games at once — a Rainbow Six breach, a Hitman sandbox kill, a Commandos squad infiltration, a Black Myth: Wukong boss duel, a StarCraft ladder match, a Contra run-and-gun stage — without becoming a compromise blend of any of them. That is the product promise, and every other V4 feature exists to serve it. The organizing idea is per-ruleset feel, one shared spine: a mission in the Hitman ruleset must feel like Hitman; a Wukong boss must feel like a souls-like; a base-build must feel like StarCraft — yet all of them share one operator/hero/ unit roster, one creator suite, one online backbone, and one unifying narrative (The Shadow War). This page is the orientation door to the V4 feature catalogue. It states what V4 commits to as a tactical-action universe, separates what is real on disk from what is spec, and then fixes the conventions — naming, IP posture, cross-references, repository surfaces, and the target-artifact discipline — that the rest of the catalogue runs on. It is the features-side companion to the architecture's product-promise page and hands the deep mechanics off to its siblings rather than re-deriving them. The feature map this page belongs to is ../V4_features.md.
What ships, honestly#
The module skeleton is real and drift-free. V4/ue/V4.uproject pins
"EngineAssociation": "5.5" and declares 28 C++ modules; exactly 28
directories exist under V4/ue/Source/, and the tree carries 272 .cpp and
189 .h of genuine, domain-specific gameplay code. Several modules carry real
weight rather than stubs. V4Gameplay is the Gameplay Ability System spine:
Source/V4Gameplay/Public/V4AttributeSets.h defines a shared
UV4AttributeSetBase plus six per-cell attribute sets that are mutually
exclusive at runtime — UV4Attr_Tactical, UV4Attr_Stealth, UV4Attr_Tactics,
UV4Attr_ARPG, UV4Attr_RTS, UV4Attr_Arcade. V4Tactical ships authored
components — UV4AimComponent, UV4CoverComponent, UV4GrenadeComponent,
UV4StanceComponent, a UV4WeaponRecoilCurveAsset, and weapon-attachment /
weapon-switch / revive components. V4Tests is the largest module at 92
.cpp of per-cell automation specs
(V4ModeStealthHitmanTests/HitmanSpec.cpp,
V4ModeARPGWukongTests/WukongSpec.cpp,
V4ModeRTSAsymmetricTests/AsymmetricRTSSpec.cpp, and dozens more) — a harness,
not a token directory.
The per-cell netcode is real, and its determinism lives in code, not in
compiler flags — the single most important honest distinction from V2. V2
enforces rollback determinism through strict-FP build-target flags; V4's build
targets carry no such flags. Instead, V4Netcode implements determinism as
runtime logic: UV4RTSLockstepSubsystem
(Source/V4Netcode/Public/V4RTSLockstepSubsystem.h) runs seed-configured
lockstep with per-frame state hashing — ConfigureMatch,
AdvanceLockstepFrame, CheckRemoteFrameHash for desync detection,
RecoverFromDesync, BuildLateJoinerRebuildFrame, a deterministic
DrawMatchRandomInt, and a ValidateRngConsumptionOrder audit, backed by the
seeded streams in V4LocalDeterminism.h. Twitch PvP gets
UV4RollbackEmulatedComponent; dedicated-server modes get
UV4ServerAuthorityComponent plus a UV4ReplicationBandBudgeter. The three
netcode strategies the promise names are each a distinct C++ surface. Three
build targets compile the same source for three roles: V4.Target.cs (Game),
V4Editor.Target.cs (Editor), and V4TournamentServer.Target.cs — a real
TargetType.Server. The cloud backend under apps/v4/ is a genuine Rust + axum
0.7 Cargo workspace (shared, telemetry-ingest, online-services).
The Game Feature plugins are real on disk. Unlike V2 — whose mode plugins
were planned surfaces with no on-disk presence — V4 ships 34 plugin
directories under V4/ue/Plugins/, each with a valid .uplugin descriptor:
28 V4Mode_* cells/modes, 4 V4DLC_* content packs, and 2 V4Tools_* linters.
Those 28 mode plugins carry 343 .cpp of module code, and their descriptors
encode real inter-plugin dependencies (e.g. V4Mode_Tactical_CoDWarzone builds
on V4Mode_Tactical_CoDMultiplayer).
Four honest gaps keep this page from over-claiming ship-state, and the catalogue names them rather than implying otherwise:
- No authored binary content.
V4/ue/Content/holds 0.uassetand 1.umap(V4Core/Maps/BootMap.umap). What it does hold is 407*.v4asset.jsonmanifest sidecars (377 of them*.uasset.v4asset.json) — for exampleDA_ShaderWarmupPlan.uasset.v4asset.json, a structured PSO-precache / per-cell shader-prewarm / regression-budget plan (missingPsoEntryBudget: 0,failBuildOnMissingEntry: true, a 98% prewarm-coverage telemetry target). V4 is a logic-and-manifest skeleton: real C++ systems and real data manifests, but no hand-authored meshes, MetaHumans, mocap, VO, or cinematics in-tree. Every "AAA SOTA quality" claim depends on art/audio production not in the repository. - No
GameFeatureData.uassetbinaries. The mode plugins' code and descriptors are real, but the.upluginfiles declare"EnabledByDefault": falseand there are zero binary GameFeature data assets that would hot-activate them at runtime. - Reserved compile seams.
V4TournamentServer.Target.csaddsV4_TOURNAMENT_BUILD,V4_BROADCAST_TOOLS,V4_OBSERVER_CAMERAS, andV4_PAUSE_ON_DISCONNECTas global definitions, but no.cpp/.hbranches on them yet — they are reserved seams, the same honesty caveat V2 carries for its determinism defines. - Provider-gated and ops-gated surfaces. Cross-play and cross-progression
across the 9 day-one platforms depend on
OnlineServices/EOSSharedand per-platform back ends awaiting credentials; with launch dated 2026-10-01, the planning corpus marks real-world operations claims[~]perV4/REMEDIATION_2026-06-12.md.
Notably, verification is by UE automation, not a checker army. All of V4
holds exactly one .py file; the verification backbone is V4Tests run
through the on-box editor by V4/.ci/run-ue-automation-all.sh
(-ExecCmds="Automation RunTests V4.;Quit", re-execed as the ueagent user
because the editor refuses root), with companion run-gauntlet-feel-tests.sh
and run-golden-replays.sh for feel-gates and replay regression. The deeper
enforcement story — how a promise becomes a contract becomes an automation gate
— is the architecture companion
../architecture/product-promise.md.
The product promise — what V4 commits to#
V4's promise, authored in V4_features.md under the "V4 Product Promise"
section, is a small set of non-negotiable commitments. The ones that matter for
orientation:
- One product, not five. Per-ruleset feel with no compromise blends —
Hitman ruleset feels like Hitman, Wukong like a souls-like, StarCraft like
StarCraft — held together by one shared roster, one creator suite, one online
backbone, and one narrative. Cell identity is routed at runtime by
UV4ModeSubsystem(RegisterMode,TransitionToMode,GetCurrentModeId,SelectQuickPlayMode) rather than hard-compiled into the menu. - A per-cell netcode envelope, not one strategy. Dedicated-server
client-server netcode is the default for tactical PvP (5v5, 6v6,
100-player BR); deterministic lockstep serves RTS (1v1 / 2v2 / 4v4);
rollback-emulated client prediction serves tight twitch PvP (TDM,
Spies-vs-Mercs). No single strategy fits a battle royale, a 2v2 RTS, and a 60
Hz duel, so the promise draws the line and the code mirrors it with the three
distinct
V4Netcodesurfaces above. - One shared AI perception model across every NPC in every cell. A Hitman
guard, a Commandos patrol, a Splinter Cell mercenary, and a Wukong yaoguai all
read stimuli from the same
UV4PerceptionComponentand the sameUV4SuspicionStateMachine(V4Perception), with aUV4VisionConeDecalRendererComponentdrawing the RTST cells' ground cones. - Complete launch content across every advertised mode — no "coming soon" panels, no skeleton cells — and first-class single-player per cell with mocap principals, launch-language VO, and 4K cinematics. The 34 plugins are on disk; the authored content that dresses them is the production-gated gap above.
- Degrade safely under offline, partial-net, low-bandwidth, controller-loss, mid-match-disconnect, and provider-outage conditions (RTS pause-on-disconnect, local single-player saves reconciled on reconnect, sub-2-second host migration).
- Run on 9 platforms day-one (Windows, PS5/PS5 Pro, Xbox Series X|S, Switch
2, macOS, Linux/Steam Deck, iPad Pro, Android tablets) plus a PixelStreaming
thin-client where contract permits — per-platform scope is
.Target.cs-driven, cross-play provider-gated. - Live service from day one — seasonal contracts, out-of-band balance
hot-fixes, and a public balance ledger. That ledger is not aspirational
copy:
V4/balance/public-balance-ledger.jsondefines a weekly Friday publication cadence at a/balance-ledgerroute with telemetry-evidence gating (minimumMatchCount: 10000), alongside agadget-balance-ledger.csv.
The multi-cell product vision — per-ruleset feel, one spine#
The five ruleset cells are V4's player-facing organizing principle: Tactical FPS, Real-Time Stealth Tactics, Action RPG, RTS, and 2D Run-and-Gun. Each is a self-contained gameplay framework with its own pacing, camera discipline, AI personality, HUD vocabulary, and audio identity, implemented as a cluster of GameFeature plugins on top of shared engine subsystems.
A nuance, surfaced honestly: the player-facing count is five ruleset cells
(stealth folds into the Tactical FPS bucket alongside Splinter Cell and Hitman),
but the disk carries six distinct engine cell modules — V4Tactical,
V4Stealth, V4Tactics, V4ActionRPG, V4RTS, V4Arcade — because stealth
is split out as its own module (UV4LightGaugeComponent, sound-footprint,
body-drag, disguise). The 2026-06-12 remediation canonicalized this to six
launch cells across the gate language (V4/REMEDIATION_2026-06-12.md), which
is why the subsystem glossary speaks of "all six launch cells" while the
overview speaks of five rulesets. Both numbers are correct at different layers.
The cells are held together — not blended — by shared infrastructure. Perception
is the clearest example: every hunter NPC reads the one UV4PerceptionComponent
and UV4SuspicionStateMachine, with V4Crowd (Mass-backed) layering
Hitman-style crowd density and panic on top. Mutually-exclusive per-cell
attribute sets are what let one character be a Tactical operator in one match
and an ARPG hero in the next without their stat blocks colliding, and
UV4ModeSubsystem plus a UV4GameFeatureAction_ActivateModeAssets route which
cell's ruleset and HUD are live. Each cell also ships a feel test — a
curated scenario reviewers run to confirm the cell hits its inspiration's
hallmark (a Raven Shield two-squad breach, a Commandos no-respawn alarm, a
Wukong 6-frame parry window) — wired into the nightly Gauntlet run, where a
failing feel test blocks that ruleset's release. The tactical FPS cell, which
alone spans five sub-rulesets (Raven Shield, R6 Siege-era, CoD, Splinter Cell,
Hitman), is the subject of its own deep-dive at
./cell-tactical-fps.md.
Conventions#
The catalogue is held to a fixed set of conventions so prose cannot drift ahead of the tree. These are load-bearing; the rest of the feature pages assume them.
IP posture — original IP, inspiration-only vocabulary#
V4 is original IP. The eleven named franchises it draws on (Rainbow Six, Call of Duty, Splinter Cell, Hitman, Commandos, Desperados, Black Myth: Wukong, StarCraft, Age of Empires, Contra, and others) are design inspirations only. V4 reuses their published gameplay-system vocabulary — "vision cones", "Showdown Mode", "Mark and Execute", "Spies vs Mercs", "Killstreak", "Wonder victory" — as terminology shorthand for established mechanic patterns, the same way V2 references "Drive Impact" or "Heat / Rage Arts". V4 does not reuse any inspiration's character names, faction/civ/unit names (beyond historical or public-domain terms), voice-line scripts, marketing copy, trademarks, map identities, music, or visual identity. All cast and licensed terms are tracked in the §81 IP / NIL / licensing register; where a mechanic name is itself trademarked, the shipping product substitutes an original name, with the placeholder kept here only to make design intent legible.
Subsystem glossary and the GameFeature plugin family#
V4 uses a fixed subsystem vocabulary — V4Core, V4Gameplay, V4Tactical,
V4Stealth, V4Tactics, V4ActionRPG, V4RTS, V4Arcade, V4Perception,
V4Crowd, V4Schedules, V4Animation, V4Input, V4Netcode, V4Modes,
V4UI, V4Audio, V4VFX, V4Cinematics, V4Persistence, V4OnlineServices,
V4Telemetry, V4Vehicles, V4Procgen, V4LevelOps, V4Tests, and the
editor/primary modules — each name resolving to exactly one directory under
V4/ue/Source/. Each ruleset's mode set is packaged as a GameFeatures
plugin (V4Mode_Tactical_RavenShield, V4Mode_Stealth_Hitman,
V4Mode_ARPG_Wukong, V4Mode_RTS_Asymmetric, V4Mode_Arcade_Contra, and 23
more) so a ruleset can be enabled per build target and DLC-gated post-launch
without rebuilding the shipping executable. Each plugin owns its content root,
asset-linter rules, and per-mode test coverage. The full module map and the
complete plugin catalogue — including the cross-cell support modules
(V4Schedules, V4Vehicles, V4Procgen, V4LevelOps) — are the subject of
./subsystem-glossary-and-plugins.md.
Cross-reference convention#
Throughout the catalogue, bare §N and §N.M references resolve to
V4_TODOS.md — the only V4 document whose numbered sections are used as
hyperlink anchors. Explicit prefixes are used where ambiguity matters: deps§N
→ V4_DEPENDENCIES.md, arch§"<anchor>" → V4_ARCHITECTURE.md by section
anchor, and features§"<anchor>" → V4_features.md by anchor. This features
tree and the architecture tree use named anchors rather than numbered
sections; only V4_TODOS.md and V4_DEPENDENCIES.md carry numbered section
ids. The backlog (V4_TODOS.md) remains the source of truth for completion
state; this catalogue describes product shape, not checkbox status.
Repository surfaces and target-artifact discipline#
V4 is one game but the product reaches well beyond V4/ue/. The real subtrees
on disk include the game client (V4/ue/), a Next.js marketing/wiki web app
(apps/v4/web/), a React Native companion-app scaffold
(apps/v4/companion/App.tsx, app.config.js), a Next.js spectator portal
(apps/v4/spectator/), the Rust online backbone (apps/v4/), and the live-ops
and compliance surfaces (V4/esports/ with
pro-circuit/hall-of-fame/calendar, V4/balance/, V4/liveops/,
V4/store/, V4/progression/, V4/legal/). All of them hang off the one spine
rather than forking it, which is the structural form of the "live service from
day one" promise.
The discipline that keeps the catalogue honest is target-artifact naming:
where a section names a module or path, it names a target artifact unless the
path already exists in the repo, and the backlog task that first references it
owns creating it with tests and validation. Some surfaces the feature monolith
lists — V4/tools/missions/, V4/tools/rts-maps/, V4/tools/arcade-art/,
V4/tools/release/ — are explicitly flagged "planned — not yet created" in the
repository-surfaces table itself. That is the convention working: a named path
is either a file on disk or a declared target, never a silent claim of
completion.
Related#
- ../V4_features.md — the V4 feature map this page orients
- ./subsystem-glossary-and-plugins.md — the full 28-module / 34-plugin map and the fixed subsystem vocabulary behind every claim here
- ./cell-tactical-fps.md — the Tactical FPS cell deep-dive (Raven Shield planning, R6 destruction, CoD campaign/MP/BR, Splinter Cell stealth, Hitman sandbox) that this page hands the deep mechanics to
- ../architecture/product-promise.md — the architecture companion: how the promise becomes a contract becomes an automation gate, and the runtime topology behind the cells