Remaining Blueprint Build Order — All 135 Systems
Version: 1.0 | Generated: 2026-05-21 | C++ Status: 22 header files (12 full, 10 stubs)
This document is the authoritative "what's left to build" reference. It cross-references the 22 C++ classes in Source/PG_Framework/ against all 135 Blueprint spec files to show exactly what Blueprint assets remain to be created, in dependency-safe build order.
Legend
| Symbol |
Meaning |
| ✅ |
Done — C++ full implementation + BP spec complete. Zero BP build needed (or Data Asset instance only). |
| 🟡 |
C++ Stub — C++ header exists (UCLASS, basic vars, delegates). Logic must be implemented in Blueprint child. |
| 🔵 |
BP Build Required — Full Blueprint implementation needed. No C++ code exists. Follow the spec's Manual Implementation Guide. |
| ⬜ |
Data Asset Instance — Create content Data Asset instances (per-item, per-equipment, per-encounter, etc.). Not a code build. |
| ➖ |
None Required — System is purely architectural (interface or auto-created subsystem). No build step. |
Quick Action Summary
| What |
Count |
| BP component children to create (full logic implementation) |
66 |
| BP component children to create (C++ stub — add logic to BP child) |
8 |
| BP actor children to create |
8 |
| Widget BPs to create |
14 |
| Data Asset instances to create |
Per-project (16 DA_ types → ~200+ instances) |
| Data Tables to import from CSV |
11 |
| Input Actions to create |
22 |
| Input Mapping Contexts to create |
5 |
| Enums/Structs (in-editor) |
7 (E_PlayerActionState, E_OverlayState, E_PlayerVitalSignals, E_ActionRequestResult + 3 structs) |
Total assets to build: ~130 Blueprint assets + ~230 Data Asset instances (content-dependent)
Build Phase Map
Phase 0 — Foundation + Input (BUILD FIRST)
These 8 systems are the bedrock. Without them, nothing else runs.
01 — DA_GameTagRegistry
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Core/DA_GameTagRegistry.h + .cpp |
| BP Spec |
✅ docs/blueprints/01-core/01_DA_GameTagRegistry.md |
| What to Build |
⬜ Data Asset instance: Content/Framework/Core/DA_GameTagRegistry → assign TagDataTables (11 entries) |
| Manual Steps |
11 Data Tables must be created from CSV and registered in Project Settings first. |
02 — FL_GameUtilities
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Core/FL_GameUtilities.h + .cpp |
| BP Spec |
✅ docs/blueprints/01-core/02_FL_GameUtilities.md |
| What to Build |
➖ None. Static function library — callable from any BP. |
| Companion |
02a_ML_GameUtilities.md — 24 BP macros (no C++ required). Build the Macro Library in BP if using BP-only path. |
03 — I_InterfaceLibrary (9 interfaces)
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Core/I_InterfaceLibrary.h |
| BP Spec |
✅ docs/blueprints/01-core/03_I_InterfaceLibrary.md |
| What to Build |
➖ None. All 9 interfaces (I_Interactable, I_Damageable, I_Persistable, I_Lockable, I_Holdable, I_UsableItem, I_Toggleable, I_Adjustable, I_Inspectable) defined in C++. Implement them on your BP actors. |
04 — GI_GameFramework
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Core/GI_GameFramework.h + .cpp |
| BP Spec |
✅ docs/blueprints/01-core/04_GI_GameFramework.md |
| What to Build |
🔵 BP child: Content/Framework/Core/BP_GameFramework (parent: GI_GameFramework). In Class Defaults: set TagRegistry → DA_GameTagRegistry, bValidateTagsOnInit → true. |
| Project Settings |
Set as Default Game Instance in Maps & Modes. |
05 — GM_CoreGameMode
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Core/GM_CoreGameMode.h + .cpp |
| BP Spec |
✅ docs/blueprints/01-core/05_GM_CoreGameMode.md |
| What to Build |
🔵 BP child: Content/Framework/Core/BP_CoreGameMode (parent: GM_CoreGameMode). In Class Defaults: set PlayerControllerClass → PC_CoreController, PlayerStateClass → PS_CorePlayerState, GameStateClass → BP_CoreGameState, DefaultPawnClass → your player pawn. |
| Project Settings |
Set as Default GameMode in Maps & Modes. |
06 — GS_CoreGameState
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Core/GS_CoreGameState.h + .cpp |
| BP Spec |
✅ docs/blueprints/01-core/06_GS_CoreGameState.md |
| What to Build |
🔵 BP child: Content/Framework/Core/BP_CoreGameState (parent: GS_CoreGameState). No extra config needed — replicated state works out of the box. |
07 — DA_ItemData
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Inventory/DA_ItemData.h + .cpp |
| BP Spec |
✅ docs/blueprints/01-core/07_DA_ItemData.md |
| What to Build |
⬜ Data Asset instances: DA_Item_* per game item (weapons, consumables, key items, documents, collectibles, tools, resources, misc). |
128 — SS_EnhancedInputManager
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Input/SS_EnhancedInputManager.h + .cpp |
| BP Spec |
✅ docs/blueprints/15-input/128_SS_EnhancedInputManager.md |
| What to Build |
➖ None. Auto-created GameInstanceSubsystem. |
| Manual Steps |
Create 22 IA_* Input Actions + 5 IMC_* Input Mapping Contexts. Create DA_InputMappingProfile instances per platform. |
— PC_CoreController
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/Player/PC_CoreController.h + .cpp |
| BP Spec |
Covered in 02-player integration docs |
| What to Build |
🔵 BP child: Content/Framework/Player/PC_CoreController (parent: APC_CoreController). Add logic: input routing, BeginPlay (push IMC_Default), phase handling. |
— PS_CorePlayerState
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/Player/PS_CorePlayerState.h + .cpp |
| BP Spec |
Covered in 02-player integration docs |
| What to Build |
🔵 BP child: Content/Framework/Player/PS_CorePlayerState (parent: APS_CorePlayerState). Add player-specific replicated state: inventory slots, equipped items, narrative flags. |
Data Tables (Phase 0 Root)
| Asset |
Status |
DT_Tags_Player.csv |
⬜ Import as Data Table (GameplayTagTableRow), register in Project Settings |
DT_Tags_Interaction.csv |
⬜ Import, register |
DT_Tags_Item.csv |
⬜ Import, register |
DT_Tags_Narrative.csv |
⬜ Import, register |
DT_Tags_AI.csv |
⬜ Import, register |
DT_Tags_Save.csv |
⬜ Import, register |
DT_Tags_Environment.csv |
⬜ Import, register |
DT_Tags_Combat.csv |
⬜ Import, register |
DT_Tags_State.csv |
⬜ Import, register |
DT_Tags_Audio.csv |
⬜ Import, register |
DT_Tags_Achievement.csv |
⬜ Import, register |
Starter GameInstance (00-project-setup)
| Aspect |
Detail |
| C++ Status |
🔵 Superseded by GI_GameFramework (04) |
| BP Spec |
✅ docs/blueprints/00-project-setup/GI_StarterGameInstance.md |
| What to Build |
🔵 BP child: BP_StarterGameInstance (parent: GameInstance) — minimal tag validation entry point. Use this for quick prototyping before migrating to full BP_GameFramework (04). |
Phase 1 — Player Core (8 systems)
All 8 Player systems need Blueprint component children. Four have C++ stubs; four are BP-only.
08 — BPC_HealthSystem
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/Player/BPC_HealthSystem.h + .cpp |
| BP Spec |
✅ docs/blueprints/02-player/08_BPC_HealthSystem.md |
| C++ Provides |
MaxHealth, CurrentHealth, OnHealthChanged dispatcher, OnDeath dispatcher |
| BP to Add |
🔵 Health logic: TakeDamage(), Heal(), OnDeath() transition, damage resistance modifiers, health regen tick. Must implement I_Damageable. |
| Attach To |
Player pawn |
09 — BPC_StaminaSystem
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/Player/BPC_StaminaSystem.h + .cpp |
| C++ Provides |
MaxStamina, CurrentStamina, OnExhaustionStateChanged dispatcher |
| BP to Add |
🔵 Stamina logic: sprint drain, action costs, exhaustion state machine, regen delay + rate, CanAffordAction(Cost) query. |
| Attach To |
Player pawn |
10 — BPC_StressSystem
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/Player/BPC_StressSystem.h + .cpp |
| C++ Provides |
EStressTier enum (Calm→Catatonic), StressTier, OnStressTierChanged dispatcher |
| BP to Add |
🔵 Stress logic: stress accumulation sources (combat, darkness, scares), decay during safety, tier transitions, hallucination trigger thresholds. |
| Attach To |
Player pawn |
11 — BPC_MovementStateSystem
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/Player/BPC_MovementStateSystem.h + .cpp |
| C++ Provides |
CurrentMovementMode (FGameplayTag), OnMovementModeChanged dispatcher |
| BP to Add |
🔵 Movement logic: read CMC (CharacterMovementComponent) states, map to GameplayTags, detect posture changes (standing/crouching/prone), sprint state, footstep events, GASP ABP variable bridge. |
| Attach To |
Player pawn |
12 — BPC_HidingSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| BP Spec |
✅ docs/blueprints/02-player/12_BPC_HidingSystem.md |
| What to Build |
🔵 BP child: BPC_HidingSystem — enter/exit hiding, peek, breath-hold timer, LOS raycasts, stress decay multiplier, I_HidingSpot interface queries. |
| Attach To |
Player pawn |
13 — BPC_EmbodimentSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| BP Spec |
✅ docs/blueprints/02-player/13_BPC_EmbodimentSystem.md |
| What to Build |
🔵 BP child: BPC_EmbodimentSystem — first-person body mesh, arm/weapon IK, visibility per state, skin/outfit overlays, shadow casting. |
| Attach To |
Player pawn |
14 — BPC_CameraStateLayer
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| BP Spec |
✅ docs/blueprints/02-player/14_BPC_CameraStateLayer.md |
| What to Build |
🔵 BP child: BPC_CameraStateLayer — FOV, offset, rotation layers per state (combat zoom, hiding peek, inspect FOV), camera shake triggers, look sensitivity scaling. |
| Attach To |
Player pawn (or CameraComponent) |
15 — BPC_PlayerMetricsTracker
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| BP Spec |
✅ docs/blueprints/02-player/15_BPC_PlayerMetricsTracker.md |
| What to Build |
🔵 BP child: BPC_PlayerMetricsTracker — track accuracy, deaths, playstyle ratios, time-to-complete sections, leaderboard data. Feed to SS_AchievementSystem (103). |
| Attach To |
Player pawn |
Phase 2 — State Management (BUILD BEFORE Phase 1 systems wire up)
These 2 systems are the central nervous system. BPC_StateManager must be on the player pawn before any other system calls IsActionPermitted().
130 — BPC_StateManager
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Player/BPC_StateManager.h + .cpp |
| BP Spec |
✅ docs/blueprints/16-state/130_BPC_StateManager.md |
| What to Build |
➖ None. Attach C++ component directly to player pawn. |
| Config in Details Panel |
Set GatingTable → DA_StateGatingTable, DefaultActionState → Framework.State.Action.Idle |
| Manual Steps |
Create E_PlayerActionState (42 values), E_OverlayState (18), E_PlayerVitalSignals (5), E_ActionRequestResult (8) enums in editor. Create S_StateChangeRequest, S_StateGatingRule, S_ActionPermissionResult structs. |
| Attach To |
Player pawn (component slot 0 — loads first) |
131 — DA_StateGatingTable
| Aspect |
Detail |
| C++ Status |
🟡 Stub — Source/PG_Framework/Public/State/DA_StateGatingTable.h + .cpp |
| C++ Provides |
FStateGatingRule struct, GatingRules array, IsActionGated() query |
| What to Build |
⬜ Data Asset instance: Content/Framework/State/DA_StateGatingTable → populate GatingRules with 37 rules mapping action tags to blocking state tags. |
| Manual Steps |
Populate all 37 gating rules per the architecture doc. Designers modify rules here — no BP changes. |
Phase 3 — Interaction (8 systems)
16 — BPC_InteractionDetector
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — raycast-based interaction detection, hold/press timing, prompt generation, focus begin/end events. Calls I_Interactable interface on targets. |
| Attach To |
Player pawn |
17 — I_HidingSpot
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only (simple interface) |
| What to Build |
🔵 BP interface: I_HidingSpot — functions: Enter, Exit, Peek, GetEntryTransform, IsOccupied. Implement on hiding spot actors. |
18 — BPC_DiegeticDisplay
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — in-world UI rendering on surfaces (wristwatch, monitors, holograms). Coordinates with SS_UIManager. |
19 — BP_DoorActor
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP actor child — physical door with open/close/lock/barricade/trap state machine, linked actors, I_Interactable + I_Lockable + I_Toggleable. |
20 — BP_PuzzleDeviceActor
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP actor child — puzzle base: state machine, solution validation, reward dispenser, I_Interactable. Set DA_PuzzleData per instance. |
21 — BPC_ContextualTraversalSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — vault, mantle, slide, squeeze, climb via Motion Warping. Reads environment probes, plays traversal montages. |
22 — BPC_PhysicsDragSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — grab, drag, release physics objects. I_Holdable interface integration. Physics handle management. |
23 — BPC_UsableWorldObjectSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — generic world object use (levers, valves, buttons, panels). I_Toggleable + I_Adjustable dispatch. |
Phase 4 — Inventory (11 systems)
24 — BPC_ContainerInventory
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — world container inventory (chests, drawers, cabinets, safes). IPersistable for loot persistence. |
25 — BP_ItemPickup
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP actor child — physical item in world: bob/rotate animation, I_Interactable, auto-pickup or manual pickup. Set DA_ItemData per instance. |
26 — BPC_ActiveItemSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — quick-slot management (1-8 hotkeys), contextual item use, scroll wheel cycling, I_UsableItem calls. |
27 — BPC_CollectibleTracker
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — collectible tracking: found count, set bonuses, reward unlocks. Feeds SS_AchievementSystem. |
28 — BPC_ConsumableSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — consumable use: health packs, syringes, temporary buffs. Reads DA_ItemData.ConsumableData. |
29 — BPC_DocumentArchiveSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — document archive: read, categorize, flag important. Feeds WBP_JournalDocumentViewer. |
30 — BPC_EquipmentSlotSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — equipment slots (primary weapon, secondary, melee, tool, armor, accessory). Equip/unequip validation, stat recalculation on swap. |
31 — BPC_InventorySystem
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Inventory/BPC_InventorySystem.h + .cpp |
| What to Build |
➖ None. Attach C++ component directly to player pawn. Set GridWidth, GridHeight, MaxWeight in Details panel. |
| Attach To |
Player pawn |
32 — BPC_ItemCombineSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — item combination/crafting: recipe validation via DA_ItemData.CombinesWith/CombineResult, result generation. |
33 — BPC_JournalSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — quest/objective journal: active, completed, failed tracking. Feeds WBP_ObjectiveDisplay + WBP_JournalDocumentViewer. |
34 — BPC_KeyItemSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — key item tracking: use-on-target, consumed-on-use, I_Lockable.TryUnlock() calls. |
Phase 5 — Save/Load (9 systems)
35 — SS_SaveManager
| Aspect |
Detail |
| C++ Status |
✅ Full — Source/PG_Framework/Public/Save/SS_SaveManager.h + .cpp |
| What to Build |
➖ None. Auto-created GameInstanceSubsystem. |
36 — I_Persistable
| Aspect |
Detail |
| C++ Status |
✅ Full — in Source/PG_Framework/Public/Core/I_InterfaceLibrary.h |
| What to Build |
➖ None. Interface already defined. Implement on any actor that needs save/load. |
37 — BP_Checkpoint
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP actor child — checkpoint: respawn point, activation, save-on-touch. Call SS_SaveManager.CreateCheckpoint(). |
38 — BPC_AltDeathSpaceSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — alternate death/void space: enter, explore, find exit. Coordinates with BPC_DeathHandlingSystem. |
39 — BPC_DeathHandlingSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — death orchestrator: death cause determination, death animation, respawn timer, death screen trigger. Calls GM_CoreGameMode.HandlePlayerDead(). |
40 — BPC_PersistentCorpseSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — corpse persistence: spawn corpse actor on death, preserve inventory as lootable, decay timer. |
41 — BPC_PersistentWorldStateRecorder
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — world state recording: track door states, destroyed objects, puzzle completions. Feeds SS_SaveManager. |
42 — BPC_PlayerRespawnSystem
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — respawn logic: nearest checkpoint lookup, respawn animation, invulnerability window, inventory restoration. |
43 — BPC_RunHistoryTracker
| Aspect |
Detail |
| C++ Status |
🔵 BP-Only |
| What to Build |
🔵 BP child — run/session history: death count, chapter progress, item collection stats. Feeds post-game analytics. |
Phase 6 — UI (14 systems — ALL Widget Blueprints)
All 14 UI systems are Widget Blueprints. UMG is BP-native — no C++ conversion needed.
| # |
System |
Asset Type |
Parent |
Key Dependencies |
| 44 |
SS_UIManager |
BP child of GameInstanceSubsystem |
GameInstanceSubsystem |
Menu stack, push/pop, HUD visibility, input mode sync |
| 45 |
WBP_AccessibilityUI |
Widget BP |
UserWidget |
Colorblind modes, subtitle sizes, control remapping |
| 46 |
WBP_DiegeticHUDFrame |
Widget BP |
UserWidget |
In-world HUD frames (health bar on wristwatch, etc.) |
| 47 |
WBP_HUDController |
Widget BP |
UserWidget |
Root HUD: health, stamina, stress bars, crosshair, objective |
| 48 |
WBP_InteractionPromptDisplay |
Widget BP |
UserWidget |
"Press E to Open" prompts, hold-progress bar |
| 49 |
WBP_InventoryMenu |
Widget BP |
UserWidget |
Grid-based inventory UI, drag-drop, context menu |
| 50 |
WBP_JournalDocumentViewer |
Widget BP |
UserWidget |
Document reader: text, images, audio logs |
| 51 |
WBP_MainMenu |
Widget BP |
UserWidget |
New Game, Continue, Load Save, Settings, Quit |
| 52 |
WBP_MenuFlowController |
Widget BP |
UserWidget |
Menu state machine (Main→Settings→Back, etc.) |
| 53 |
WBP_NotificationToast |
Widget BP |
UserWidget |
Achievement unlock, item found, objective update popups |
| 54 |
WBP_ObjectiveDisplay |
Widget BP |
UserWidget |
Active objectives list, progress bars, compass markers |
| 55 |
WBP_PauseMenu |
Widget BP |
UserWidget |
Resume, Settings, Load, Save, Main Menu, Quit |
| 56 |
WBP_ScreenEffectController |
Widget BP |
UserWidget |
Vignette, blood splatter, flash, color grading overlays |
| 57 |
WBP_SettingsMenu |
Widget BP |
UserWidget |
Graphics, Audio, Controls, Accessibility, Language |
Phase 7 — Narrative (11 systems)
| # |
System |
Type |
What to Build |
| 58 |
BPC_NarrativeStateSystem |
BPC child |
Narrative state machine: chapter/phase tracking, flag management |
| 59 |
BPC_ObjectiveSystem |
BPC child |
Objective tracking: add/complete/fail, prerequisite checking |
| 60 |
BPC_DialoguePlaybackSystem |
BPC child |
Dialogue playback: text display, audio sync, auto-advance |
| 61 |
BPC_DialogueChoiceSystem |
BPC child |
Dialogue choices: branching, consequence dispatch, timers |
| 62 |
BPC_BranchingConsequenceSystem |
BPC child |
Consequence execution: set narrative flags, spawn actors, trigger events |
| 63 |
BPC_TrialScenarioSystem |
BPC child |
Timed trial/puzzle: countdown, success/fail conditions |
| 64 |
BPC_CutsceneBridge |
BPC child |
Cutscene bridge: enter/exit cutscene phase, camera control, skip |
| 65 |
BPC_LoreUnlockSystem |
BPC child |
Lore/journal unlock: trigger-based, item-based discovery |
| 66 |
DA_NarrativeDataAssets |
⬜ DA instances |
Dialogue lines, choice trees, quest definitions |
| 67 |
BP_NarrativeTriggerVolume |
BP actor child |
Trigger volume: on-overlap set narrative flags, start dialogue |
| 68 |
BPC_EndingAccumulator |
BPC child |
Ending tracker: accumulate ending conditions, determine final outcome |
Phase 8 — Weapons (11 systems)
| # |
System |
C++ |
What to Build |
| 69 |
BP_WeaponBase |
🔵 |
BP actor child: weapon base with fire/aim/reload state machine. I_UsableItem |
| 70 |
BPC_AmmoComponent |
🔵 |
BP child: ammo pool, reserve/magazine tracking, ammo pickup |
| 71 |
BPC_CombatFeedbackComponent |
🔵 |
BP child: hit markers, damage numbers, kill confirmation |
| 72 |
BPC_DamageReceptionSystem |
✅ Full |
➖ Attach C++ component directly. Set configs in Details panel. |
| 73 |
BPC_DeathCauseTracker |
🔵 |
BP child: death cause logging, damage history, kill attribution |
| 74 |
BPC_FirearmSystem |
🔵 |
BP child: hitscan/projectile fire, fire rate, spread, recoil |
| 75 |
BPC_HitReactionSystem |
🟡 Stub |
🔵 BP child: add hit reaction animation selection, stagger/knockdown/ragdoll triggers |
| 76 |
BPC_MeleeSystem |
🔵 |
BP child: melee combo system, hitbox spawning, damage application |
| 77 |
BPC_RecoilSystem |
🔵 |
BP child: recoil pattern playback, recovery, camera kick |
| 78 |
BPC_ReloadSystem |
🔵 |
BP child: reload timing, animation sync, ammo transfer |
| 79 |
BPC_ShieldDefenseSystem |
🟡 Stub |
🔵 BP child: add shield raise/lower, block detection, break effect |
Phase 9 — AI (9 systems)
| # |
System |
Type |
What to Build |
| 80 |
BP_EnemyBase |
BP actor child |
Enemy character: health, damage, AI controller, behavior tree |
| 81 |
BP_PatrolPath |
BP actor child |
Patrol path spline: waypoints, pause durations, loop settings |
| 82 |
BPC_AlertSystem |
BP child |
Alert state machine: idle→suspicious→alert→combat→search |
| 83 |
BPC_AIStateMachine |
BP child |
AI behavior state: patrol, investigate, combat, flee |
| 84 |
AI_BaseAgentController |
BP child of AIController |
AI controller: behavior tree runner, perception setup |
| 85 |
BB_AgentBoard |
⬜ Blackboard def |
Blackboard keys: TargetActor, LastKnownPosition, AlertLevel, PatrolIndex |
| 86 |
BPC_AIMemorySystem |
BP child |
AI memory: last known locations, threat history, shared squad knowledge |
| 87 |
BPC_AIPerceptionSystem |
BP child |
AI perception: sight cone, hearing radius, detection speed |
| 88 |
BPC_BehaviourVariantSelector |
BP child |
Behavior variant: coward/aggressive/defensive selection per encounter |
Phase 10 — Adaptive (15 systems)
| # |
System |
Type |
What to Build |
| 89 |
BPC_DifficultyManager |
BP child |
Dynamic difficulty: scale damage, spawn counts, puzzle hints |
| 90 |
BPC_FearSystem |
BP child |
Fear: AI fear levels, player fear, flee behavior |
| 91 |
BPC_PerformanceScaler |
BP child |
Performance: dynamic LOD, particle reduction, cull distance |
| 92 |
BPC_ProceduralEncounter |
BP child |
Procedural encounters: spawn enemies/events based on player state |
| 93 |
BPC_AdaptiveEnvironmentDirector |
BP child |
Environment director: coordinate atmosphere, audio, light changes |
| 94 |
BPC_AtmosphereStateController |
BP child |
Atmosphere: tone/tension tracking, post-process blending |
| 95 |
BPC_AudioAtmosphereController |
🔵 [DEPRECATED] — replaced by SS_AudioManager (132) |
|
| 96 |
BPC_LightEventController |
BP child |
Light events: flicker, strobe, blackout, color shift |
| 97 |
BPC_MemoryDriftSystem |
BP child |
Memory drift: environmental distortion, room mutation |
| 98 |
BPC_PacingDirector |
BP child |
Pacing: action/calm cycle management, intensity curve |
| 99 |
BPC_PlaystyleClassifier |
BP child |
Playstyle: stealth/combat/exploration classification |
| 100 |
BPC_RareEventSystem |
BP child |
Rare events: low-probability special encounters |
| 101 |
BPC_ScareEventSystem |
BP child |
Scare events: jump scares, ambient scares, tension buildup |
| 132 |
SS_AudioManager |
🔵 BP child of GameInstanceSubsystem |
Audio subsystem: bus management, room presets, gameplay parameters |
| 133 |
BP_RoomAudioZone |
🔵 BP actor child |
Room audio zone: trigger volume, reverb/occlusion switching |
Phase 11 — Data Assets (16 systems)
All 16 are Data Asset definitions. No code — create Data Asset instances per content item.
| # |
System |
Instances Needed |
| 115 |
DA_AdaptationRule |
5-15 (one per difficulty rule) |
| 116 |
DA_AtmosphereProfile |
5-20 (one per room/zone) |
| 117 |
DA_BehaviourVariant |
3-5 (coward/aggressive/defensive per enemy type) |
| 118 |
DA_DataAssetArchitecture |
Reference document only |
| 119 |
DA_EncounterData |
Per encounter group (content-driven) |
| 120 |
DA_EquipmentConfig |
🟡 C++ stub — create instances per equipment piece |
| 121 |
DA_HapticProfile |
3 (PC/Xbox/PS5 controller profiles) |
| 122 |
DA_InteractionData |
Per interactable object type (content-driven) |
| 123 |
DA_ObjectiveData |
Per quest/objective (content-driven) |
| 124 |
DA_PuzzleData |
Per puzzle device (content-driven) |
| 125 |
DA_RareEvent |
3-10 rare event definitions |
| 126 |
DA_RoomMutation |
5-15 room mutation profiles |
| 127 |
DA_ScareEvent |
10-50 scare event definitions |
| 129 |
DA_InputMappingProfile |
3 (PC/Xbox/PS5 key binding profiles) |
| 134 |
DA_AudioSettings |
1 (master bus config, volume defaults) |
| 135 |
DA_RoomAcousticPreset |
Per acoustic zone (small room / outdoor / cave / etc.) |
Phase 12 — Meta/Progression (2 systems)
| # |
System |
Type |
What to Build |
| 102 |
BPC_ProgressStatTracker |
BP child |
Progress stats: completion %, item collection, death count |
| 103 |
SS_AchievementSystem |
BP child of GameInstanceSubsystem |
Achievement subsystem: unlock conditions, trophy notification, platform API bridge |
Phase 13 — Settings (2 systems)
| # |
System |
Type |
What to Build |
| 104 |
BPC_AccessibilitySettings |
BP child |
Accessibility: colorblind, subtitle, control remapping, TTS |
| 105 |
SS_SettingsSystem |
BP child of GameInstanceSubsystem |
Settings persistence: save/load config to disk, apply on boot |
Phase 14 — Polish (9 systems)
| # |
System |
Type |
What to Build |
| 106 |
BPC_AnalyticsTracker |
BP child |
Analytics: event telemetry, session metrics |
| 107 |
BPC_DevCheatManager |
BP child |
Dev cheats: god mode, no-clip, give item, teleport |
| 108 |
BPC_ErrorHandler |
BP child |
Error/crash: graceful shutdown, error log write |
| 109 |
BPC_FPSCounter |
BP child |
FPS counter: on-screen perf display |
| 110 |
BPC_LoadingScreen |
BP child |
Loading screen: progress bar, tip rotation, chapter art |
| 111 |
BPC_TutorialSystem |
BP child |
Tutorial: contextual hints, input prompts, tutorial progression |
| 112 |
WBP_CreditsScreen |
Widget BP |
Credits roll |
| 113 |
WBP_DebugMenu |
Widget BP |
Debug overlay: state viewer, tag inspector, log viewer |
| 114 |
WBP_SplashScreen |
Widget BP |
Boot splash / branding |
Dependency-Safe Build Order (Linear)
If building solo, follow this order to avoid forward-reference compile errors:
Per-System Spec References
Every system has a complete spec in docs/blueprints/ with node-by-node Manual Implementation Guide. Use those to build each BP child. Key architectural docs:
| Doc |
Covers |
docs/architecture/bpc-statemanager.md |
State Manager enum values, gating table rules, force stack pattern |
docs/architecture/metasounds-audio-system.md |
Audio bus architecture, room presets, settings integration |
docs/architecture/animation-catalog.md |
14 required animation notifies, montage contracts |
docs/architecture/sound-catalog.md |
150+ sound triggers, 14 surface table entries |
docs/architecture/multiplayer-networking.md |
HasAuthority() gates, Server_ RPCs, RepNotify patterns |
docs/architecture/blueprint-limitations-workarounds.md |
C++-only functions you'll encounter during BP implementation |
docs/developer/cpp-integration-guide.md |
Per-C++-class setup steps, usage patterns, BP child requirements |
Counting Summary
| Asset Type |
Total |
C++-Covered |
BP to Build |
| BP Components (BPC_) |
79 |
4 full C++, 8 stubs |
67 BP children (8 have C++ stubs to extend) |
| BP Actors (BP_) |
11 |
0 |
11 BP actor children |
| Widget BPs (WBP_) |
14 |
0 |
14 Widget BPs |
| Data Assets (DA_) |
18 |
3 full C++, 2 stubs |
~200+ DA instances (content-driven) |
| GameInstance Subsystems (SS_) |
7 |
3 full C++ |
4 BP children |
| Interfaces (I_) |
10 |
9 in C++ |
1 (I_HidingSpot) |
| Function Libraries (FL_) |
1 |
1 in C++ |
0 |
| GameInstance (GI_) |
1 |
1 in C++ |
1 BP child |
| GameMode (GM_) |
1 |
1 in C++ |
1 BP child |
| GameState (GS_) |
1 |
1 in C++ |
1 BP child |
| PlayerController (PC_) |
1 |
1 stub |
1 BP child |
| PlayerState (PS_) |
1 |
1 stub |
1 BP child |
| Data Tables |
11 |
0 |
11 imports |
| Input Actions |
22 |
0 |
22 create |
| Input Mapping Contexts |
5 |
0 |
5 create |
| Enums |
4 |
2 in C++ |
2 to create in editor |
| Structs |
3 |
1 in C++ |
2 to create in editor |
Most critical build: BPC_StateManager (130) + DA_StateGatingTable (131) — without these, no system can query whether an action is permitted. Build these immediately after Foundation.
Remaining Blueprint Build Order v1.0 — Companion to cpp-blueprint-status.md and cpp-integration-guide.md.