- Updated Master Blueprint Index to include Multiplayer Networking support. - Added detailed Multiplayer Networking sections across all developer documentation (01-11). - Introduced authority maps, key patterns, and RPC guidelines for each system. - Established a comprehensive multiplayer networking architecture document outlining core principles, replication strategies, and anti-cheat considerations. - Enhanced UI documentation to clarify local-only behavior and binding to replicated dispatchers. - Implemented client prediction strategies and RPC naming conventions for consistency across the framework.
9.8 KiB
11 — Achievements, Progression & Meta Systems (Systems 102-103)
Category Purpose: These 2 systems handle meta-progression — progress statistics tracking across sessions and the achievement/unlock system with platform integration.
| # | System | Asset Type | Role |
|---|---|---|---|
| 102 | BPC_ProgressStatTracker |
Component | Progress stats; total playtime, collectibles, achievements |
| 103 | SS_AchievementSystem |
Subsystem | Achievement subsystem; unlock, notify, platform integration |
102 BPC_ProgressStatTracker: Tracks cumulative stats across play sessions: total playtime, collectibles found, enemies killed, deaths, items crafted, documents read, endings seen. Persists via I_Persistable for long-term tracking.
103 SS_AchievementSystem: GameInstanceSubsystem that manages achievement unlocks. Listens to gameplay events (enemy killed, item found, chapter completed) and unlocks achievements when conditions met. Shows notification toast on unlock. Integrates with platform achievement APIs (Steam, PlayStation, Xbox).
12 — Settings, Accessibility & Platform Systems (Systems 104-105)
| # | System | Asset Type | Role |
|---|---|---|---|
| 104 | BPC_AccessibilitySettings |
Component | Accessibility; subtitles, colorblind, controller remap |
| 105 | SS_SettingsSystem |
Subsystem | Settings subsystem; persistent settings, apply, reset |
104 BPC_AccessibilitySettings: Manages accessibility features: subtitle toggle/size, colorblind mode selection (protanopia/deuteranopia/tritanopia), controller remapping, difficulty presets, hold-to-confirm toggle, camera shake reduction. Settings persisted via SS_SettingsSystem.
105 SS_SettingsSystem: GameInstanceSubsystem for all persistent settings. Loads defaults on init, saves on change, supports reset-to-default. Settings categories: Audio, Video, Controls, Gameplay, Accessibility. Coordinates with SS_AudioManager for volume, SS_EnhancedInputManager for key rebinding.
13 — Polish: Tutorial, Loading, Credits & Debug Systems (Systems 106-114)
| # | System | Asset Type | Role |
|---|---|---|---|
| 106 | BPC_AnalyticsTracker |
Component | Analytics; event tracking, session metrics, telemetry |
| 107 | BPC_DevCheatManager |
Component | Developer cheats; god mode, noclip, give item, teleport |
| 108 | BPC_ErrorHandler |
Component | Error handler; crash logging, error display, recovery |
| 109 | BPC_FPSCounter |
Component | FPS counter display; min/max/avg tracking |
| 110 | BPC_LoadingScreen |
Component | Loading screen; progress bar, tips, background |
| 111 | BPC_TutorialSystem |
Component | Tutorial system; contextual prompts, progression |
| 112 | WBP_CreditsScreen |
Widget | Credits screen; scroll, skip, post-credit scene trigger |
| 113 | WBP_DebugMenu |
Widget | Debug menu; state viewer, log, performance, cheats |
| 114 | WBP_SplashScreen |
Widget | Splash screen; studio logo, engine logo, skip |
106 BPC_AnalyticsTracker: Records gameplay events for telemetry: level starts/completes, deaths, item pickups, dialogue choices, playtime. Configurable event filtering. Stripped from shipping builds.
107 BPC_DevCheatManager: Developer tools: god mode, noclip, infinite ammo, give item by tag, teleport to cursor, toggle HUD, slow motion. Only available in development builds.
108 BPC_ErrorHandler: Global error handling: catches blueprint errors, logs to file, displays error toast (dev builds only). Graceful recovery from non-fatal errors.
109 BPC_FPSCounter: Simple FPS display overlay with min/max/avg tracking. Toggle via debug menu or console command.
110 BPC_LoadingScreen: Loading screen widget with progress bar, gameplay tips, background art. Manages level streaming progress display.
111 BPC_TutorialSystem: Context-sensitive tutorial prompts. Triggered by gameplay events (first combat, first hide, first puzzle). Tracks which tutorials the player has seen. Supports dismiss/snooze.
112-114 Widgets: Credits screen with scroll and post-credit scene trigger. Debug menu for development. Splash screen with studio/engine logos.
14 — Data Assets (Systems 115-127, 129, 134-135)
Category Purpose: These 16 systems define all Data Asset types used across the framework. Data Assets are the primary configuration mechanism — all content, rules, and settings live in these assets, never hardcoded in Blueprints.
| # | Data Asset | Configures |
|---|---|---|
| 115 | DA_AdaptationRule |
Difficulty adaptation rules (metric thresholds, responses) |
| 116 | DA_AtmosphereProfile |
Atmosphere: audio ambience, lighting, fog, post-process per mood |
| 117 | DA_BehaviourVariant |
AI behavior variant: attack patterns, patrol style, aggression |
| 118 | DA_DataAssetArchitecture |
Overview document of all Data Asset types |
| 119 | DA_EncounterData |
Encounter definitions: enemy groups, spawn rules, difficulty tier |
| 120 | DA_EquipmentConfig |
Equipment/weapon stats: damage, fire rate, magazine, recoil |
| 121 | DA_HapticProfile |
Haptic/force feedback patterns for controller |
| 122 | DA_InteractionData |
Interaction definitions: prompt text, duration, icon, conditions |
| 123 | DA_ObjectiveData |
Objective/quest: description, prerequisites, rewards, branching |
| 124 | DA_PuzzleData |
Puzzle definitions: solution, steps, hints, rewards |
| 125 | DA_RareEvent |
Rare event: weight, conditions, effects, cooldown |
| 126 | DA_RoomMutation |
Room mutation: layout change, object swap, lighting change |
| 127 | DA_ScareEvent |
Scare event: type, anticipation duration, payoff, recovery |
| 129 | DA_InputMappingProfile |
Input mappings per platform (PC, Xbox, PS5) |
| 134 | DA_AudioSettings |
Audio bus configs, volume defaults, ducking, pool limits |
| 135 | DA_RoomAcousticPreset |
Room acoustics: 7 presets (Outdoor, SmallRoom, Cave, etc.) |
Pattern: All Data Assets derive from UPrimaryDataAsset. They are pure data containers — no runtime logic. Designers edit these in the Content Browser; systems read them at runtime. This is the "No Hardcoded Names" principle in practice.
15 — Enhanced Input System (System 128)
| # | System | Asset Type | Role |
|---|---|---|---|
| 128 | SS_EnhancedInputManager |
Subsystem | Input manager; context switching, rebinding, platform profiles |
128 SS_EnhancedInputManager: The sole authority for all input management. Handles Input Mapping Context push/pop with priority-based context switching. Coordinates input mode (game-only vs UI-only) with SS_UIManager. Manages key rebinding via DA_InputMappingProfile. Platform-specific bindings (PC keyboard/mouse, Xbox controller, PS5 controller). Gameplay systems query input state through this subsystem — never through raw Enhanced Input calls.
Context Priority Ladder: Default(0) < Hiding(5) < WristwatchUI(10) < Inspection(20) < UI(100). Higher priority contexts override lower ones — UI blocks gameplay input.
16 — State Management (Systems 130-131)
| # | System | Asset Type | Role |
|---|---|---|---|
| 130 | BPC_StateManager |
Component | Central state authority; action gating, overlay, vital signs |
| 131 | DA_StateGatingTable |
Data Asset | All state gating rules (37 action rules); designer-editable |
130 BPC_StateManager: The single source of truth for player capability. Manages 42 exclusive action states and 18 overlay states. All systems query IsActionPermitted(Tag) instead of checking each other's states directly. This is the central decoupling mechanism — the StateManager knows what's allowed; no individual system needs to know about others.
131 DA_StateGatingTable: A Data Asset containing all gating rules. Designers modify which actions are blocked during which states without touching Blueprints. For example: "Reloading blocks Sprint" or "Hiding blocks Interaction."
Developer Reference v1.0 — Categories 11-16 Systems. Companion to docs/blueprints/ specs.
Multiplayer Networking
Category 11-12: Meta & Settings
| System | Authority |
|---|---|
BPC_ProgressStatTracker |
Server accumulates; snapshot replicates for scoreboard |
SS_AchievementSystem |
Server validates unlocks; client receives unlock notifications |
BPC_AccessibilitySettings |
Local per-client — each player's accessibility preferences |
SS_SettingsSystem |
Settings save per-client; key bindings are local |
Category 13: Polish
| System | Authority |
|---|---|
BPC_AnalyticsTracker |
Local only — per-client telemetry |
BPC_DevCheatManager |
Local only — but cheats that affect world must be server-validated |
BPC_ErrorHandler |
Local only — per-client error handling |
BPC_FPSCounter |
Local only — per-client performance |
BPC_LoadingScreen |
Local only — but sync'd via GamePhase |
BPC_TutorialSystem |
Local per-client — tutorial progression is per-player |
WBP_CreditsScreen, WBP_DebugMenu, WBP_SplashScreen |
Local only |
Category 14: Data Assets
All DA_* Data Assets are read-only configuration — loaded identically on all clients. No replication needed.
Category 15: Input
| System | Authority |
|---|---|
SS_EnhancedInputManager |
Local per-client. Input mapping contexts, key rebinding, and input mode are per-player. Context priority stack is per-client. |
Category 16: State Management
| System | Authority |
|---|---|
BPC_StateManager |
Server-authoritative. All state change requests go through server. IsActionPermitted() is read-only — safe for client prediction. RequestStateChange() must be server-validated. |
DA_StateGatingTable |
Read-only Data Asset — identical on all clients. Server uses it for validation; clients use it for prediction of gating results. |