# 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:** - **Remaining BP build order:** [`docs/checklists/remaining-blueprint-build-order.md`](remaining-blueprint-build-order.md) - **Prototype setup guide:** [`docs/developer/project-prototype-guide.md`](../developer/project-prototype-guide.md) - **C++ per-class integration:** [`docs/developer/cpp-integration-guide.md`](../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) | --- ## 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 - [ ] Follow [`docs/developer/project-prototype-guide.md`](../developer/project-prototype-guide.md) for step-by-step setup - [ ] Run the [Verification Checklist](../developer/project-prototype-guide.md#10-verification-checklist) - [ ] Expand per the [Next Steps](../developer/project-prototype-guide.md#11-next-steps--expanding-the-prototype) --- ## 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`](remaining-blueprint-build-order.md) for the prioritized build list.*