Files
UE5-Modular-Game-Framework/docs/checklists/cpp-blueprint-status.md

236 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# C++ & Blueprint Status Checklist — All 135 Systems
**Version:** 1.0 | **Generated:** 2026-05-20
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.
---
## Legend
| Symbol | Meaning |
|--------|---------|
| ✅ | **Done** — C++ files written, BP spec complete |
| 🟡 | **Partial** — C++ stub (references siblings, needs subsystem wiring) |
| 🔵 | **BP Spec Only** — Full Blueprint spec exists, no C++ written |
| ⬜ | **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` | 🔵 BP-only | ✅ `08_BPC_HealthSystem.md` | BP child → attach to pawn | 🔵 |
| 09 | `BPC_StaminaSystem` | 🔵 BP-only | ✅ `09_BPC_StaminaSystem.md` | BP child → attach to pawn | 🔵 |
| 10 | `BPC_StressSystem` | 🔵 BP-only | ✅ `10_BPC_StressSystem.md` | BP child → attach to pawn | 🔵 |
| 11 | `BPC_MovementStateSystem` | 🔵 BP-only | ✅ `11_BPC_MovementStateSystem.md` | BP child → 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 | 🔵 |
---
## 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` | ✅ `Weapons/BPC_DamageReceptionSystem` | ✅ | None (use C++ component) |
| 73 | `BPC_DeathCauseTracker` | 🔵 | ✅ | BP child |
| 74 | `BPC_FirearmSystem` | 🔵 | ✅ | BP child |
| 75 | `BPC_HitReactionSystem` | 🔵 | ✅ | BP child |
| 76 | `BPC_MeleeSystem` | 🔵 | ✅ | BP child |
| 77 | `BPC_RecoilSystem` | 🔵 | ✅ | BP child |
| 78 | `BPC_ReloadSystem` | 🔵 | ✅ | BP child |
| 79 | `BPC_ShieldDefenseSystem` | 🔵 | ✅ | BP child |
### 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-127, 129, 134-135 | All 16 systems | 🔵 | ✅ | ⬜ Data Asset instances (per content item) |
### Input + State (15-16 — 3 systems)
| # | System | C++ | BP Spec | BP Asset |
|---|--------|-----|---------|----------|
| 128 | `SS_EnhancedInputManager` | ✅ `Input/SS_EnhancedInputManager` | ✅ | None (auto-created subsystem) |
| 130 | `BPC_StateManager` | ✅ `Player/BPC_StateManager` | ✅ | None (use C++ component) |
| 131 | `DA_StateGatingTable` | 🔵 | ✅ | ⬜ Data Asset instance (37 rules) |
---
## Summary Counts
| Category | Count |
|----------|-------|
| **C++ systems written** | 12 |
| **BP spec files complete** | 135 + 1 starter = 136 |
| **BP components to create** | 76 (80 BPC_ total 4 C++) |
| **BP actors to create** | 11 |
| **Widget BPs to create** | 14 |
| **Data Asset instances to create** | Per-project (18 DA_ definitions) |
| **GameInstance subsystems** (auto-created) | 7 (3 in C++, 4 BP) |
| **Data Tables to create** | 11 |
---
## Quick Action List — What to Build Next
### Immediate (Phase 0 — Foundation)
- [ ] Create 11 Data Tables, import CSVs, register in Project Settings
- [ ] Create `DA_GameTagRegistry` Data Asset, assign TagDataTables
- [ ] Create `BP_GameFramework` (child of `GI_GameFramework`), assign TagRegistry
- [ ] Create `BP_CoreGameMode` (child of `GM_CoreGameMode`), set in Project Settings
- [ ] Create `BP_CoreGameState` (child of `GS_CoreGameState`), set in GameMode defaults
- [ ] Create `BP_CorePlayerController` + `BP_CorePlayerState` (BP specs 08 area)
- [ ] Create `DA_ItemData` instances for initial items (weapons, consumables)
### Player Pawn Setup
- [ ] Create player pawn BP with GASP
- [ ] Add `BPC_StateManager` component → assign GatingTable
- [ ] Add `BPC_InventorySystem` component → set grid size
- [ ] Add `BPC_DamageReceptionSystem` component → set thresholds
- [ ] Add remaining 76 `BPC_*` BP children as needed
### Data Asset Content
- [ ] Create `DA_StateGatingTable` instance with 37 rules
- [ ] Create `DA_EquipmentConfig` instance(s) for armor/weapons
- [ ] Create `DA_AudioSettings`, `DA_RoomAcousticPreset` instances
- [ ] Create remaining `DA_*` instances per project content
---
*Status Checklist v1.0 — Updated 2026-05-20. Regenerate after each implementation phase.*