Files
UE5-Modular-Game-Framework/docs/checklists/cpp-blueprint-status.md
Lefteris Notas 14441c000c Add haptics example documentation for Project Void controller feedback
- Introduced comprehensive guide for setting up controller haptics and force feedback.
- Detailed directory structure for haptic profiles and creation steps for DA_HapticProfile instances.
- Included platform-specific configurations for Xbox and PS5 DualSense adaptive triggers.
- Outlined wiring of BPC_HapticsController to various gameplay systems and events.
- Provided accessibility integration options and testing checklist for haptic functionality.
2026-05-22 17:16:34 +03:00

21 KiB

C++ & Blueprint Status Checklist — All 147 Systems

Version: 2.1 | Generated: 2026-05-22 | C++ Files: 27 .h + 27 .cpp (15 full implementations + 10 stubs)

Complete status grid for every system in the UE5 Modular Game Framework. Use this to track: which systems have C++ code written, which Blueprint specs are complete, and what Blueprint assets remain to create.

Companion docs:


Legend

Symbol Meaning
Done — Full C++ implementation with logic + BP spec complete
🟡 C++ Stub — C++ header exists (UCLASS, basic vars, delegates). Blueprint child provides the full runtime implementation.
🔵 BP Spec Only — Full Blueprint spec exists, no C++ written. Full BP implementation required.
Content Asset — Create Data Asset/Table instances (not code)
Not Started — Spec exists but asset not created

Abbreviations:

  • C++ H/CPP = C++ header and source files exist in Source/PG_Framework/
  • BP Spec = Blueprint specification file exists in docs/blueprints/
  • BP Asset = Blueprint asset to create in UE5 Content Browser
  • MI Guide = Manual Implementation Guide (node-by-node) in spec file

Phase 0: Foundation (01-core — 7 systems)

# System C++ H/CPP BP Spec BP Asset to Create Status
01 DA_GameTagRegistry Core/DA_GameTagRegistry 01_DA_GameTagRegistry.md Data Asset instance: DA_GameTagRegistry (assign TagDataTables)
02 FL_GameUtilities Core/FL_GameUtilities 02_FL_GameUtilities.md None (static library)
03 I_InterfaceLibrary Core/I_InterfaceLibrary.h 03_I_InterfaceLibrary.md None (implement on actors)
04 GI_GameFramework Core/GI_GameFramework 04_GI_GameFramework.md BP_GameFramework (GameInstance child)
05 GM_CoreGameMode Core/GM_CoreGameMode 05_GM_CoreGameMode.md BP_CoreGameMode (GameMode child)
06 GS_CoreGameState Core/GS_CoreGameState 06_GS_CoreGameState.md BP_CoreGameState (GameState child)
07 DA_ItemData Inventory/DA_ItemData 07_DA_ItemData.md Data Asset instances: DA_Item_* per item
GI_StarterGameInstance 🔵 (superseded by 04) GI_StarterGameInstance.md BP_StarterGameInstance (or skip, use 04) 🟡

Data Tables (01-core root)

Asset Status
DT_Tags_Player.csv Create Data Table, import CSV
DT_Tags_Interaction.csv Create Data Table, import CSV
DT_Tags_Item.csv Create Data Table, import CSV
DT_Tags_Narrative.csv Create Data Table, import CSV
DT_Tags_AI.csv Create Data Table, import CSV
DT_Tags_Save.csv Create Data Table, import CSV
DT_Tags_Environment.csv Create Data Table, import CSV
DT_Tags_Combat.csv Create Data Table, import CSV
DT_Tags_State.csv Create Data Table, import CSV
DT_Tags_Audio.csv Create Data Table, import CSV
DT_Tags_Achievement.csv Create Data Table, import CSV

Phase 1: Player Core (02-player — 8 systems)

# System C++ H/CPP BP Spec BP Asset to Create Status
08 BPC_HealthSystem 🟡 Stub: vars + delegates 08_BPC_HealthSystem.md BP child → implement health logic (take/heal damage, death, I_Damageable) → attach to pawn 🟡
09 BPC_StaminaSystem 🟡 Stub: vars + delegates 09_BPC_StaminaSystem.md BP child → implement stamina logic (drain, regen, exhaustion states) → attach to pawn 🟡
10 BPC_StressSystem 🟡 Stub: enum + vars + delegates 10_BPC_StressSystem.md BP child → implement stress logic (accumulation, decay, tier transitions) → attach to pawn 🟡
11 BPC_MovementStateSystem 🟡 Stub: vars + delegates 11_BPC_MovementStateSystem.md BP child → implement movement logic (CMC reads, GASP bridge, posture detection) → attach to pawn 🟡
12 BPC_HidingSystem 🔵 BP-only 12_BPC_HidingSystem.md BP child → attach to pawn 🔵
13 BPC_EmbodimentSystem 🔵 BP-only 13_BPC_EmbodimentSystem.md BP child → attach to pawn 🔵
14 BPC_CameraStateLayer 🔵 BP-only 14_BPC_CameraStateLayer.md BP child → attach to pawn 🔵
15 BPC_PlayerMetricsTracker 🔵 BP-only 15_BPC_PlayerMetricsTracker.md BP child → attach to pawn 🔵
PC_CoreController 🟡 Stub: minimal empty class (covered in 02-player integration) BP child PC_CoreController → add input routing, BeginPlay push IMC 🟡
PS_CorePlayerState 🟡 Stub: minimal empty class (covered in 02-player integration) BP child PS_CorePlayerState → add replicated state variables 🟡

Phase 2-14: All Remaining Systems

Interaction (03-interaction — 8 systems)

# System C++ BP Spec BP Asset
16 BPC_InteractionDetector 🔵 BP child
17 I_HidingSpot 🔵 Implement on BP actors
18 BPC_DiegeticDisplay 🔵 BP child
19 BP_DoorActor 🔵 BP actor child
20 BP_PuzzleDeviceActor 🔵 BP actor child
21 BPC_ContextualTraversalSystem 🔵 BP child
22 BPC_PhysicsDragSystem 🔵 BP child
23 BPC_UsableWorldObjectSystem 🔵 BP child

Inventory (04-inventory — 11 systems)

# System C++ BP Spec BP Asset
24 BPC_ContainerInventory 🔵 BP child
25 BP_ItemPickup 🔵 BP actor child
26 BPC_ActiveItemSystem 🔵 BP child
27 BPC_CollectibleTracker 🔵 BP child
28 BPC_ConsumableSystem 🔵 BP child
29 BPC_DocumentArchiveSystem 🔵 BP child
30 BPC_EquipmentSlotSystem 🔵 BP child
31 BPC_InventorySystem Inventory/BPC_InventorySystem None (use C++ component directly)
32 BPC_ItemCombineSystem 🔵 BP child
33 BPC_JournalSystem 🔵 BP child
34 BPC_KeyItemSystem 🔵 BP child

Save/Load (05-saveload — 9 systems)

# System C++ BP Spec BP Asset
35 SS_SaveManager Save/SS_SaveManager None (auto-created subsystem)
36 I_Persistable Core/I_InterfaceLibrary.h Implement on actors
37 BP_Checkpoint 🔵 BP actor child
38 BPC_AltDeathSpaceSystem 🔵 BP child
39 BPC_DeathHandlingSystem 🔵 BP child
40 BPC_PersistentCorpseSystem 🔵 BP child
41 BPC_PersistentWorldStateRecorder 🔵 BP child
42 BPC_PlayerRespawnSystem 🔵 BP child
43 BPC_RunHistoryTracker 🔵 BP child

UI (06-ui — 14 systems)

# System C++ BP Spec BP Asset
44 SS_UIManager 🔵 BP child (auto-created subsystem)
45 WBP_AccessibilityUI 🔵 Widget BP
46 WBP_DiegeticHUDFrame 🔵 Widget BP
47 WBP_HUDController 🔵 Widget BP
48 WBP_InteractionPromptDisplay 🔵 Widget BP
49 WBP_InventoryMenu 🔵 Widget BP
50 WBP_JournalDocumentViewer 🔵 Widget BP
51 WBP_MainMenu 🔵 Widget BP
52 WBP_MenuFlowController 🔵 Widget BP
53 WBP_NotificationToast 🔵 Widget BP
54 WBP_ObjectiveDisplay 🔵 Widget BP
55 WBP_PauseMenu 🔵 Widget BP
56 WBP_ScreenEffectController 🔵 Widget BP
57 WBP_SettingsMenu 🔵 Widget BP

Narrative (07-narrative — 11 systems)

# System C++ BP Spec BP Asset
58-68 All 11 systems 🔵 BP children + DA instances

Weapons (08-weapons — 11 systems)

# System C++ BP Spec BP Asset
69 BP_WeaponBase 🔵 BP actor child
70 BPC_AmmoComponent 🔵 BP child
71 BPC_CombatFeedbackComponent 🔵 BP child
72 BPC_DamageReceptionSystem Full — Weapons/BPC_DamageReceptionSystem None (attach C++ component directly)
73 BPC_DeathCauseTracker 🔵 BP child
74 BPC_FirearmSystem 🔵 BP child
75 BPC_HitReactionSystem 🟡 Stub: PlayHitReaction() + thresholds BP child → add animation selection/trigger logic → attach to pawn/enemy
76 BPC_MeleeSystem 🔵 BP child
77 BPC_RecoilSystem 🔵 BP child
78 BPC_ReloadSystem 🔵 BP child
79 BPC_ShieldDefenseSystem 🟡 Stub: shield health + block angle vars BP child → add raise/lower/block detection → attach to pawn

AI (09-ai — 9 systems)

# System C++ BP Spec BP Asset
80-88 All 9 systems 🔵 BP children

Adaptive (10-adaptive — 15 systems)

# System C++ BP Spec BP Asset
89-101 All 13 core 🔵 BP children
132 SS_AudioManager 🔵 BP child (auto-created subsystem)
133 BP_RoomAudioZone 🔵 BP actor child

Meta, Settings, Polish (11-13 — 13 systems)

# System C++ BP Spec BP Asset
102-114 All 13 systems 🔵 BP children + widget BPs
148 BPC_HapticsController 🔵 (Blueprint-only) BP child attach to PlayerController

Data Assets (14-data-assets — 16 systems)

# System C++ BP Spec BP Asset
115 DA_AdaptationRule 🔵 Data Asset instances
116 DA_AtmosphereProfile 🔵 Data Asset instances
117 DA_BehaviourVariant 🔵 Data Asset instances
118 DA_DataAssetArchitecture 🔵 Reference doc only
119 DA_EncounterData 🔵 Data Asset instances
120 DA_EquipmentConfig 🟡 Stub: damage resist struct + GetResistance() Data Asset instances per equipment piece
121 DA_HapticProfile 🔵 Data Asset instances
122 DA_InteractionData 🔵 Data Asset instances
123 DA_ObjectiveData 🔵 Data Asset instances
124 DA_PuzzleData 🔵 Data Asset instances
125 DA_RareEvent 🔵 Data Asset instances
126 DA_RoomMutation 🔵 Data Asset instances
127 DA_ScareEvent 🔵 Data Asset instances
129 DA_InputMappingProfile 🔵 Data Asset instances (per platform: PC/Xbox/PS5)
134 DA_AudioSettings 🔵 Data Asset instance (1 global)
135 DA_RoomAcousticPreset 🔵 Data Asset instances (per zone)

Input + State (15-16 — 3 systems)

# System C++ BP Spec BP Asset
128 SS_EnhancedInputManager Full — Input/SS_EnhancedInputManager None (auto-created subsystem)
130 BPC_StateManager Full — Player/BPC_StateManager None (attach C++ component directly to pawn)
131 DA_StateGatingTable 🟡 Stub: FStateGatingRule struct + IsActionGated() query Data Asset instance (37 gating rules)

Phase 17: Planar Capture System (17-capture — 12 systems)

Capture Components & Actors (17-capture)

# System C++ BP Spec BP Asset
136 BPC_PlanarCapture Full — Capture/BPC_PlanarCapture None (use C++ component directly)
137 BP_PlanarCaptureActor Full — Capture/BP_PlanarCaptureActor BP children (139-143 extend this)
138 SS_PlanarCaptureManager Full — Capture/SS_PlanarCaptureManager None (auto-created WorldSubsystem)
139 BP_Mirror 🔵 BP-only BP actor child of BP_PlanarCaptureActor
140 BP_Portal 🔵 BP-only BP actor child of BP_PlanarCaptureActor
141 BP_Monitor 🔵 BP-only BP actor child of BP_PlanarCaptureActor
142 BP_HorrorMirror 🔵 BP-only (extends BP_Mirror) BP actor child of BP_Mirror
143 BP_FakeWindow 🔵 BP-only BP actor child of BP_PlanarCaptureActor
144 M_CaptureSurface_Master Content Asset Create Material in editor
145 MPC_CaptureSurface Content Asset Create MPC in editor
146 DA_PlanarCaptureProfile 🔵 BP-only Data Asset instances
147 MI_MirrorInstances Content Asset 7 Material Instance Constants

Quick Action List — What to Build Next

Immediate (Phase 0 — Foundation)

  • Create 11 Data Tables from CSV, import, register in Project Settings
  • Create DA_GameTagRegistry Data Asset, assign TagDataTables array (11 entries)
  • Create BP_GameFramework (child of GI_GameFramework), assign TagRegistry
  • Create BP_CoreGameMode (child of GM_CoreGameMode), set classes in defaults
  • Create BP_CoreGameState (child of GS_CoreGameState)
  • Create PC_CoreController + PS_CorePlayerState BP children (C++ stub parents)
  • Create 22 IA_* Input Actions + 5 IMC_* Input Mapping Contexts
  • Create DA_InputMappingProfile instances (PC/Xbox/PS5)

Player Pawn Setup

  • Create player pawn BP (Character parent) with basic movement
  • Add BPC_StateManager component → assign DA_StateGatingTable
  • Add BPC_HealthSystem (C++ stub) → implement health logic in BP child
  • Add BPC_StaminaSystem (C++ stub) → implement stamina logic
  • Add BPC_StressSystem (C++ stub) → implement stress logic
  • Add BPC_MovementStateSystem (C++ stub) → implement movement bridge
  • Add BPC_InventorySystem (C++ full) → set grid size + max weight
  • Add BPC_DamageReceptionSystem (C++ full) → set thresholds
  • Add BPC_ShieldDefenseSystem (C++ stub) → implement shield logic
  • Add BPC_HitReactionSystem (C++ stub) → implement hit reaction animations
  • Add remaining 55 BPC_* BP children as needed (see build order doc)

State Management

  • Create E_PlayerActionState enum (42 values) in editor
  • Create E_OverlayState enum (18 values) in editor
  • Create E_ActionRequestResult enum (8 values) in editor
  • Create E_PlayerVitalSignals enum (5 values) in editor
  • Create S_StateChangeRequest, S_StateGatingRule, S_ActionPermissionResult structs
  • Create DA_StateGatingTable instance → populate 37 gating rules

Data Asset Content

  • Create DA_Item_* instances for test items (medkit, key, etc.)
  • Create DA_Equipment_* instances for armor/weapons
  • Create DA_AudioSettings, DA_RoomAcousticPreset instances
  • Create remaining DA_* instances per project content

Prototype Testing


C++ Source File Index

Full Implementations (15 systems — logic complete, no BP child needed for functionality)

# C++ Class Header Source Size
01 UDA_GameTagRegistry Public/Core/DA_GameTagRegistry.h Private/Core/DA_GameTagRegistry.cpp 105 + cpp
02 UFL_GameUtilities Public/Core/FL_GameUtilities.h Private/Core/FL_GameUtilities.cpp 169 + cpp
03 9 I_ Interfaces Public/Core/I_InterfaceLibrary.h 317 (header-only)
04 UGI_GameFramework Public/Core/GI_GameFramework.h Private/Core/GI_GameFramework.cpp 226 + cpp
05 AGM_CoreGameMode Public/Core/GM_CoreGameMode.h Private/Core/GM_CoreGameMode.cpp 116 + cpp
06 AGS_CoreGameState Public/Core/GS_CoreGameState.h Private/Core/GS_CoreGameState.cpp 144 + cpp
07 UDA_ItemData Public/Inventory/DA_ItemData.h Private/Inventory/DA_ItemData.cpp 232 + cpp
31 UBPC_InventorySystem Public/Inventory/BPC_InventorySystem.h Private/Inventory/BPC_InventorySystem.cpp 210 + cpp
35 USS_SaveManager Public/Save/SS_SaveManager.h Private/Save/SS_SaveManager.cpp 193 + cpp
72 UBPC_DamageReceptionSystem Public/Weapons/BPC_DamageReceptionSystem.h Private/Weapons/BPC_DamageReceptionSystem.cpp 150 + cpp
128 USS_EnhancedInputManager Public/Input/SS_EnhancedInputManager.h Private/Input/SS_EnhancedInputManager.cpp 232 + cpp
130 UBPC_StateManager Public/Player/BPC_StateManager.h Private/Player/BPC_StateManager.cpp 246 + cpp
136 UBPC_PlanarCapture Public/Capture/BPC_PlanarCapture.h Private/Capture/BPC_PlanarCapture.cpp 360 + cpp
137 ABP_PlanarCaptureActor Public/Capture/BP_PlanarCaptureActor.h Private/Capture/BP_PlanarCaptureActor.cpp 250 + cpp
138 USS_PlanarCaptureManager Public/Capture/SS_PlanarCaptureManager.h Private/Capture/SS_PlanarCaptureManager.cpp 330 + cpp

C++ Stubs (10 systems — UCLASS + basic vars/delegates, need BP child for logic)

# C++ Class Header Source Purpose
08 UBPC_HealthSystem Public/Player/BPC_HealthSystem.h Private/Player/BPC_HealthSystem.cpp Health vars + delegates
09 UBPC_StaminaSystem Public/Player/BPC_StaminaSystem.h Private/Player/BPC_StaminaSystem.cpp Stamina vars + delegate
10 UBPC_StressSystem Public/Player/BPC_StressSystem.h Private/Player/BPC_StressSystem.cpp Stress enum + vars + delegate
11 UBPC_MovementStateSystem Public/Player/BPC_MovementStateSystem.h Private/Player/BPC_MovementStateSystem.cpp Movement vars + delegate
APC_CoreController Public/Player/PC_CoreController.h Private/Player/PC_CoreController.cpp Minimal controller stub
APS_CorePlayerState Public/Player/PS_CorePlayerState.h Private/Player/PS_CorePlayerState.cpp Minimal player state stub
75 UBPC_HitReactionSystem Public/Weapons/BPC_HitReactionSystem.h Private/Weapons/BPC_HitReactionSystem.cpp Hit reaction stub
79 UBPC_ShieldDefenseSystem Public/Weapons/BPC_ShieldDefenseSystem.h Private/Weapons/BPC_ShieldDefenseSystem.cpp Shield defense stub
120 UDA_EquipmentConfig Public/Inventory/DA_EquipmentConfig.h Private/Inventory/DA_EquipmentConfig.cpp Equipment config stub
131 UDA_StateGatingTable Public/State/DA_StateGatingTable.h Private/State/DA_StateGatingTable.cpp Gating table stub

Planar Capture Systems (3 full C++ implementations)

# C++ Class Header Source Purpose
136 UBPC_PlanarCapture Public/Capture/BPC_PlanarCapture.h Private/Capture/BPC_PlanarCapture.cpp SceneCapture2D lifecycle, camera math, horror features
137 ABP_PlanarCaptureActor Public/Capture/BP_PlanarCaptureActor.h Private/Capture/BP_PlanarCaptureActor.cpp Placeable surface actor with mesh, MDI, proximity trigger
138 USS_PlanarCaptureManager Public/Capture/SS_PlanarCaptureManager.h Private/Capture/SS_PlanarCaptureManager.cpp Global budget manager, RT pool, surface scoring

Capture Utility (Static Library)

# C++ Class Header Source Purpose
UPlanarCaptureCameraUtils Public/Capture/PlanarCaptureCameraUtils.h Private/Capture/PlanarCaptureCameraUtils.cpp Mirror/portal/oblique projection math

Capture Common (Shared Types)

# C++ Class Header Source Purpose
PlanarCaptureCommon.h Public/Capture/PlanarCaptureCommon.h Private/Capture/PlanarCaptureCommon.cpp Shared enums, structs, quality profiles

Status Checklist v2.1 — Updated 2026-05-22. See remaining-blueprint-build-order.md for the prioritized build list.