Files
UE5-Modular-Game-Framework/docs/developer/11-16-systems.md
Lefteris Notas dc9c1a6b98 Add DA_RenderPipelineProfile and Platform Render Profiles documentation
- Introduced DA_RenderPipelineProfile data asset to define rendering pipeline configurations for various platforms and quality tiers.
- Documented enums, structs, variables, and default preset tables for render settings.
- Created a comprehensive developer guide for setting up platform-specific render profiles, including file structure, profile creation, and integration with upscalers.
- Included validation rules, console variable references, and testing matrices for ensuring compliance with platform requirements.
2026-05-22 18:10:24 +03:00

12 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, Haptics, Render Pipeline & Platform Systems (Systems 104-105, 148-149)

# System Asset Type Role
104 BPC_AccessibilitySettings Component Accessibility; subtitles, colorblind, controller remap
105 SS_SettingsSystem Subsystem Settings subsystem; persistent settings, apply, reset
148 BPC_HapticsController Component Haptics controller; GameplayTag-driven force feedback, DualSense triggers, heartbeat pulse
149 BPC_RenderPipelineManager Component Render pipeline manager; quality presets, per-platform GI/shadows/upscaling, PlanarCapture aware

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.

148 BPC_HapticsController: ActorComponent attached to the Player Controller. Central abstraction for all controller vibration and force feedback. Systems trigger haptics by GameplayTag (e.g., Haptic.Damage.Heavy) — never calling raw UE5 Play Force Feedback nodes. Handles platform detection (Xbox rumble, PS5 DualSense adaptive triggers, PC generic gamepad), respects accessibility toggle, manages effect priority/conflict resolution, and drives the continuous heartbeat pulse from BPC_StateManager.GetCurrentHeartRate(). Uses DA_HapticProfile Data Assets for all effect definitions.

149 BPC_RenderPipelineManager: ActorComponent attached to the Player Controller. Central authority for UE5 render pipeline configuration. Reads DA_RenderPipelineProfile Data Assets to determine the appropriate rendering method (Lumen vs Baked Lightmass), shadow system (VSM vs CSM), upscaler (DLSS/FSR/TSR/PSSR), and mesh strategy (Nanite vs LOD) for the current platform and quality preset. Applies settings via UE5 console variables, coordinates with BPC_PerformanceScaler for runtime quality tier adjustments, and broadcasts pipeline changes so the Planar Capture system can adjust its quality budget. Handles reload-required detection for destructive pipeline changes (GI method, shadow method, Nanite toggle).


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.2 — Categories 11-16 Systems (including Haptics + Render Pipeline). 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
BPC_HapticsController Local client only — haptics are cosmetic, never replicated. No HasAuthority() needed.
BPC_RenderPipelineManager Local client only — render pipeline is per-client hardware. No replication.

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.