Everything on this page happens around the match rather than inside it. When
a player closes the tactical-FPS round, the RTS ladder game, or the Wukong boss
rush, V4 hands them off to a ring of out-of-match surfaces: the encyclopedia
that explains what they just used, the community wiki that documents every
ruleset and frame window, the esports and tournament toolkit a broadcast is
produced with, the creator programs that surface a Player of the Week or a
featured squad, and the cross-surface account network that lets one login carry
from the companion app to the wiki to the spectator portal. The throughline is
the same hard line V2's community page drew: almost all of this ships as
versioned JSON data contracts — schema-stamped documents with concrete
fields, rendered by a shared shell, not React apps and not a fleet of standalone
microservices — with exactly one sharp exception. The esports broadcast
toolkit's manifest binds to real compiled Unreal Engine 5 C++ in the
V4Mode_Spectator plugin, and that one seam is where this group reaches through
data and touches the engine. This is the feature-side companion to the modes and
online groups; for the full feature scope it slots into, the hub is
../V4_features.md.
What ships, honestly#
This group spans the implemented-to-spec spectrum, and the split is worth stating up front because this page follows the code, not the monolith's prose.
- The content and community surfaces are real but data-shaped.
V4/community/community-features.json,V4/wiki/community-wiki.json,V4/wiki/world-state-feed.json,V4/wiki/world-state-ripple.json,V4/wiki/ai-summary-policy.json,V4/codex/codex-entry-library.json, andV4/content-network/cross-surface-content-network.jsonare each a singleschemaVersion-stamped JSON document. The Player-of-the-Week selection weights, the gallery moderation thresholds, the wiki anti-vandalism reputation gates, the Sophia summary opt-in header, the codex entry counts, and the SSO step-up rules are all concrete fields, not lorem ipsum. They are the shipped data contract. - The esports toolkit is a manifest over genuine engine code.
V4/tools/esports/esports-toolkit.json'sbroadcastExtras.sourcestrings are not decoration — each names a realBlueprintPuremethod on a compiled UObject inV4/ue/Plugins/V4Mode_Spectator/(and one inV4Mode_Replay/). This is the one cluster on the page where a JSON field resolves to C++ you can open. - The named owner services are routing identifiers, not all backends. Fields
like
ownerService: "community-service"/"wiki-service"/"public-api-service"are the owner labels stamped on each contract. The actual Rust workspace underapps/v4/shipsv4-shared,online-services, andtelemetry-ingest— so treat those service names as the contract's declared owners, the way V2's surfaces named theirs, not as proof of a deployed daemon per name. - The in-game UI assets are JSON descriptors, not cooked binaries.
DA_CommunityGallery,WBP_GalleryShowcase,WBP_CodexShell, andDA_CodexEntryLibraryexist on disk as*.uasset.v4asset.jsondescriptor files (V4's content-as-JSON convention), sourcing real data tables; the compiled.uassetis UE-resident art, not a checked-in binary here. - The creator authoring editors are product spec. The Mission Editor, RTS
Map Editor, and 2D Stage Editor described in
V4_features.md§ "Creator Suite" have no editor backend under the grounding directories. What is real on the creator side is the sandboxed Game-Feature activation machinery inV4/ue/Source/V4Modes/that mods load through — the editors that author content are a documented surface, not code you can point at here.
The architecture-side treatment of the same data-and-content plumbing lives in the companion ../architecture/build-data-content.md; this page stays on the feature surface and dips into code only where a claim needs backing.
Content surfaces#
The Codex — an unlockable encyclopedia over real data tables#
V4/codex/codex-entry-library.json is the encyclopedia contract. It declares
eight entryCategories (Operator, Weapon, Gadget, Map, Faction,
Civilization, Ruleset, Vehicle) and, for each, an entrySources row that pins
the source of truth and a per-category entryCount: 34 operators, 110
weapons, 60 gadgets, 102 maps, 5 factions, 12 civilizations, 37 rulesets, 20
vehicles. Those are not invented totals — the operator source is
V4/ue/Content/V4Core/Data/DT_Operator.json, which holds exactly 34 rows on
disk, and the weapon/gadget sources (DT_Weapon.json, DT_Gadget.json) sit
beside it. The descriptor
V4/ue/Content/V4Codex/Data/DA_CodexEntryLibrary.uasset.v4asset.json sums them
to a totalLaunchEntryCount of 380, which is the honest arithmetic of those
eight counts. Each entry unlocks through play — unlockEventId values like
Codex.Unlock.Operator.Played, Codex.Unlock.Map.Completed,
Codex.Unlock.Weapon.Used — and the entryTemplate enforces a real authoring
floor: every entry requiredFields are loreText, assetGalleryIds, and
designCommentary, with an assetGalleryMinimum of 2. The sample entries
(Cobra, the modular Assault Rifle 01, the Hard Breach Charge, Clubhouse,
Vanguard, the Britons, the R6 Modern ruleset, the MH-6 Little Bird) demonstrate
the shape: each pairs readable fiction with the design reason a thing exists,
so an unlock teaches both story and playstyle. WBP_CodexShell is the launch
browsing shell for locked/unlocked entries — itself a *.uasset.v4asset.json
descriptor, not a compiled widget.
The community wiki — moderated, with frame data and recoil#
V4/wiki/community-wiki.json is the editable wiki at wiki.v4.game, and its
weight is in the moderation.antiVandalism block. Editing is governed by
reputation thresholds — autoApprove: 25, protectedEdit: 80,
newContributorReview: 5 — and rate-limited to an hourlyEditLimit of 12, a
maxExternalLinksPerRevision of 2, and a maxDeletionRatioWithoutReview of
0.35, so a mass-delete or a link-spam burst is caught structurally. The
signals list enumerates the eight detectors (mass_delete, link_spam,
blocked_terms, impersonation, protected_page_low_reputation,
top_traffic_page_protection, rate_limit, revert_war), the actions
enumerate the four outcomes (allow, quarantine_for_review, reject,
rollback_last_clean_revision), and a 365-day-retention auditLog records
revisionId, pageId, authorId, the firing signals, the action, and the
reviewerId for every revision. Six protectedNamespaces (rules,
operators, frame-data, recoil, world-state, world-state-ripple) demand
the reputation-80 protectedEdit gate. The wiki is also seeded from the game's
own truth: curation.sourceTables points at DT_Operator.json,
DT_Weapon.json, and the two world-state feeds, on a "Weekly content sync after
balance ledger publication" cadence. And it carries competitive depth — 27
modeRules entries (one ruleset summary per shipping mode, from
V4Mode_Tactical_R6Modern to V4Mode_Lobby_BattleHub), 6 frameData rows
with literal startup/active/recovery/cancel windows (the Wukong Light Chain 1
is startupFrames 10, activeFrames 4, recoveryFrames 16,
cancelWindowFrames "13-18"), and 6 recoilPatterns describing vertical
rise, horizontal drift, recovery milliseconds, and a recommended burst per
weapon.
World-state feeds — read-only, and honestly zeroed#
V4/wiki/world-state-feed.json and V4/wiki/world-state-ripple.json publish
the persistent-world fiction to the wiki and companion. Both are
readOnly: true, editableByCommunity: false, cached 300 s, and explicitly
not part of the wiki edit pipeline — their publicationPolicy records
personallyIdentifiableData: false, playerScopedState: false, and a
moderationBypass note that values are "published by wiki-service from signed
seasonal rollups." The ripple feed is the interesting one: it carries cross-cell
rippleEvents (a Mansion-Party Hitman assassination reroutes the
CoD.BlackoutLedger objective; a Vanguard RTS season win adds relief-caravan
lore to the Wukong Pine Gate area before it loads), a worldBossRaids entry for
the Eclipse Leviathan (globalHealth: 5000000, phaseCount: 3), and
communityRaidEvents that publish shared progress to the companion world
surface. The honesty artifact here is load-bearing: every cumulative counter —
totalCommunityKills, currentDamage, every progressPercent — is 0, and
a dataStatusNote states that this is the "Pre-launch honest state
(2026-06-12)" in which the "previously published non-zero values were
illustrative and have been removed as fabricated-progress data." The counters
fill from live telemetry after the 2026-10-01 launch; the feed refuses to ship
invented progress.
Sophia-grounded wiki summaries — opt-in and cited#
V4/wiki/ai-summary-policy.json defines the one AI surface in the content
group, and it is fenced exactly like the rest of the platform's generative
seams. The Sophia.WikiSummary.Grounded assistant is off by default
(optIn.required: true, defaultEnabled: false) and returns a summary only
when the request carries the x-v4-ai-summary-opt-in: true header, logging a
WikiSummaryOptIn.Accepted audit event. Generation is grounded:
sourceManifests restricts it to the community wiki, the two world-state feeds,
and the operator table; citationRequired: true and maxWords: 70 bound every
answer; and a forbiddenInputs list bars "player private notes," "unpublished
datamines," and "personal account state." Each shipped pages entry carries its
citations with a sourceId and a locator — so a summary of the R6 Modern
rules cites community-wiki:modeRules.V4Mode_Tactical_R6Modern, not an
ungrounded paraphrase.
Creator tools#
The esports & tournament toolkit — manifest over real spectator C++#
V4/tools/esports/esports-toolkit.json is the page's strongest code anchor. Its
tournamentBuild block describes a real, separable server target: a buildFlag
of V4Tournament, a serverTarget of V4TournamentServer, a targetFile of
V4/ue/Source/V4TournamentServer.Target.cs, a requiredCompileDefinition of
V4_TOURNAMENT_BUILD=1, and competitive features always on (broadcast_tools,
observer_cameras, pause_on_disconnect, forced_replay_export) toggled by
the -v4tournament=1 -v4broadcast=1 -v4observercameras=1 -v4pauseondisconnect=1
command line. The modWhitelist makes a tournament reproducible:
rejectUnlistedMods and requireExactVersion are true, each allowed mod is
pinned by sha256, and serverEnforcement is reject_client_loadout — a
client carrying a non-whitelisted mod is bounced. brackets syncs first-party
single/double-elim and round-robin (matchReporting: "server_authoritative")
with external Challonge and Start.gg providers (webhookIngest, a 60 req/min
rate limit). antiCollusion ships tuned detectors for the two modes where
collusion pays: an RTS.Team watcher on shared_vision_without_engagement,
resource_transfer_spikes, and mirror_pathing (3 evidence windows), and a
Tactical.SearchAndDestroy watcher on plant_defuse_avoidance,
round_throw_pattern, and uncontested_objective_pathing (4 evidence rounds),
each routed to its own integrity review queue.
What makes the toolkit real rather than aspirational is broadcastExtras. Every
source field names a BlueprintPure method on a compiled class in
V4/ue/Plugins/V4Mode_Spectator/Source/V4Mode_Spectator/Public/V4SpectatorModeSystems.h:
UV4BroadcastCameraDirector::BuildObserverCameraPresets and
BuildPictureInPictureLayout (≤4 PiP slots),
UV4SpectatorEsportsOverlayService::BuildSponsorLowerThird (with a
ValidateLowerThird gate and a 15 s display cap), and
UV4LiveReplayRewindService::BuildRewindRequest (≤30 s, with
BuildReplayBuffer and CanServeRewindRequest). The observer is provably
read-only: UV4SpectatorPolicyService exposes BuildReadOnlyPolicy and
CanIssueGameplayCommand, so an observer feed cannot perturb the match — the
same gameplay-inert discipline V2 enforced on its AI broadcast chain. The
wildcardMode (referee-approved, server-seeded Roulette variants) reads its
rules from DA_WildcardRouletteRules.uasset.v4asset.json in the same plugin.
Authoring editors and the mod sandbox#
The creator authoring surfaces — the per-cell Mission Editor, the RTS Map
Editor, the 2D Stage Editor, the Hitman Contract Author — are the part of this
group that is honestly product spec in V4_features.md, with no editor
backend under the grounding directories. The Contract Author does appear in the
shipping data as a ruleset (V4Mode_Stealth_ContractsAuthor in the wiki's
modeRules, requiring creators to "define target, method, and disguise
constraints" with "published contracts enter moderation before featuring"), and
the validation philosophy (load-in-PIE, AI path-test, recorded play-through) is
specified — but the editors themselves are a surface, not code here. What is
real on the creator-content path is the sandbox the published content loads
through: V4/ue/Source/V4Modes/ ships V4ModeBootstrapSubsystem and
UV4GameFeatureAction_ActivateModeAssets, the Game-Feature activation machinery
that lets a mod load as an isolated plugin (so a crashing mod is auto-disabled,
not fatal). Cite the spec for the editors; cite V4Modes for the sandbox.
Community features#
Player of the Week, galleries, squads & newsletter#
V4/community/community-features.json is the community-program contract, and
its fields are concrete enough to audit. Player of the Week runs a six-state
machine (Submitted → EligibilityChecked → SafetyReviewed →
EditorialShortlist → WinnerScheduled → Published) with real eligibility
gates (minimumAccountAgeDays: 30, minimumMatchesPlayed: 25,
activeSanctionPolicy: "disqualify", requiresReplayEvidence: true,
requiresTelemetrySnapshot: true) and an explicit, weighted selection rule —
selectionWeights of telemetryStandout: 45, communityVote: 25,
sportsmanship: 20, esportsImpact: 10. The current winner carries an evidence
replay id and a telemetry snapshot id, and the auditLog shows the hand-off
chain across community-service, moderation-service, and
staff-community-lead. The gallery runs the same accept-by-default-no
posture as workshop content: a Submitted → AutomatedScan → HumanReview →
Approved → Published/Rejected flow with an automated classifier whose
thresholds are explicit (nudityReviewThreshold: 0.6 /
nudityBlockThreshold: 0.85, violenceReviewThreshold: 0.65 /
violenceBlockThreshold: 0.9), a requiresReplayIdForReplayClip rule, and an
appealRoute. The seeded submissions include a rejected one —
gallery-rejected-rights with rejectionReason: "RightsPattern" — so the
contract demonstrates the no-path, not just the happy path; the 24-slot showcase
binds the DA_CommunityGallery / WBP_GalleryShowcase / L_UI_Gallery /
DA_FocusGraph_Gallery descriptors. The Squad Showcase (owned by
creator-relations-service) rotates approved creator squads weekly with
chaptered VODs and featuredFromUtc/featuredUntilUtc windows, and the
newsletter is privacy-first: consentPolicy requires doubleOptIn,
oneClickUnsubscribe, requiresRegionCapture, and a minimumAgeGate of 13,
dispatched biweekly across four segments.
The cross-surface content network#
V4/content-network/cross-surface-content-network.json is the connective
tissue: one v4-account SSO realm (issuer https://auth.v4.game,
singleLogout: true) spanning four surfaces — the companion app, community
wiki, public roadmap, and spectator portal — each with its own idle and absolute
timeouts, refresh-token rotation, and a requiresStepUpFor list that forces
re-auth on sensitive actions (store_purchase/account_link on the companion,
protected_edit/rollback on the wiki, community_pick_vote on the roadmap,
tournament_admin on the spectator portal). The public API exposes a
GraphQL endpoint at /api/public/graphql with a REST compatibility shim that
preservesRoutes for roadmap, wiki, and world-state reads, stamps an
X-V4-Rest-Shim header, and is backwardsCompatibleForMajorVersions: 1. Two
tiers gate it — a keyless free tier at 60 req/min (roadmap:read,
wiki:read) and a creator tier at 600 req/min requiring an OAuth app and
adding drops:read and creator:analytics — registered through the
/developers/oauth-apps portal (max 5 redirect URIs, https-only schemes,
reviewRequiredFor: ["creator"]). The same file restates the wiki's
topTrafficEditProtection (top-100 pages by 30-day views, reputation-80 to
edit, quarantine_for_review otherwise) and the community-moderator role
(72-hour rollback authority, audit required), defines roadmap voting (3
per-account votes on Planned items, one quarterly communityPick promoted at
a minimumVerifiedUpvotes of 5000 "after fraud review"), and lists the five
pushChannels (patch-notes, esports, friend-online, contract-refreshed
default-on; sale default-off).
How it connects#
These surfaces are the connective tissue between the fight and the player's life
around it, and they lean on two sibling groups. The replay vault, ghost archive,
spectator theater, and the AI Director that the wiki and codex describe are
detailed in
./modes-training-replay-signature-and-ai-director.md;
the esports broadcast chain this toolkit feeds, the matchmaking and account
backbone the SSO and public API ride on, and the tournament networking are the
subject of
./online-services-networking-and-esports.md.
The data-and-content pipeline underneath all of it — how the
*.uasset.v4asset.json descriptors, the DT_* source tables, and the
schema-versioned JSON contracts are authored, validated, and cooked — is the
architecture companion
../architecture/build-data-content.md.
The constants across the whole group: data-shaped and schema-versioned,
read-only and audited where it touches the live world, and honest about the
difference between a shipped contract and an authoring surface still on the
roadmap. The feature hub is ../V4_features.md.
Related#
- The feature hub: ../V4_features.md
- Modes, Training, Replay, Signature & AI Director — the replay vault, ghost archive, spectator theater, and signature modes the codex, wiki, and galleries surface.
- Online Services, Networking & Esports — the matchmaking, account, and tournament backbone the SSO, public API, and esports toolkit ride on.
- Build, Data & Content — the
architecture-side data-and-content pipeline behind the JSON contracts, the
*.uasset.v4asset.jsondescriptors, and theDT_*source tables.