- Introduced a comprehensive guide for creating a minimal playable prototype in UE5. - Detailed steps for project creation, C++ module integration, gameplay tags setup, and player pawn assembly. - Included instructions for input system setup, state management wiring, and test level setup. - Provided a verification checklist and troubleshooting section to assist developers. - Documented next steps for expanding the prototype with additional systems.
18 KiB
18 KiB
C++ & Blueprint Status Checklist — All 135 Systems
Version: 2.0 | Generated: 2026-05-21 | C++ Files: 22 .h + 22 .cpp (12 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:
- Remaining BP build order:
docs/checklists/remaining-blueprint-build-order.md - Prototype setup guide:
docs/developer/project-prototype-guide.md - C++ per-class integration:
docs/developer/cpp-integration-guide.md
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 |
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) |
Quick Action List — What to Build Next
Immediate (Phase 0 — Foundation)
- Create 11 Data Tables from CSV, import, register in Project Settings
- Create
DA_GameTagRegistryData Asset, assign TagDataTables array (11 entries) - Create
BP_GameFramework(child ofGI_GameFramework), assign TagRegistry - Create
BP_CoreGameMode(child ofGM_CoreGameMode), set classes in defaults - Create
BP_CoreGameState(child ofGS_CoreGameState) - Create
PC_CoreController+PS_CorePlayerStateBP children (C++ stub parents) - Create 22 IA_* Input Actions + 5 IMC_* Input Mapping Contexts
- Create
DA_InputMappingProfileinstances (PC/Xbox/PS5)
Player Pawn Setup
- Create player pawn BP (Character parent) with basic movement
- Add
BPC_StateManagercomponent → assignDA_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_PlayerActionStateenum (42 values) in editor - Create
E_OverlayStateenum (18 values) in editor - Create
E_ActionRequestResultenum (8 values) in editor - Create
E_PlayerVitalSignalsenum (5 values) in editor - Create
S_StateChangeRequest,S_StateGatingRule,S_ActionPermissionResultstructs - Create
DA_StateGatingTableinstance → 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_RoomAcousticPresetinstances - Create remaining
DA_*instances per project content
Prototype Testing
- Follow
docs/developer/project-prototype-guide.mdfor step-by-step setup - Run the Verification Checklist
- Expand per the Next Steps
C++ Source File Index
Full Implementations (12 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 |
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 |
Status Checklist v2.0 — Updated 2026-05-21. See remaining-blueprint-build-order.md for the prioritized build list.