# Developer Reference — UE5 Modular Game Framework

**Version:** 1.9 | **Generated:** 2026-05-22 | **Files:** 21 | **Systems:** 150 numbered + 2 supplementary

This directory contains developer-facing reference documentation for every system in the framework. Unlike the blueprint spec files (which define *what* to build), these documents explain *how each system works internally* — the data flow, state machines, integration points, and design rationale. Use these when you need to understand a system's behavior to implement, debug, or extend it.

## Who This Is For

- **Blueprint implementers** turning `.md` specs into actual UE5 Blueprint assets
- **Debuggers** tracing why something doesn't work
- **Designers** needing to understand constraints before modifying Data Assets
- **New team members** learning the framework's internal logic

## Directory Map

```
docs/developer/
├── INDEX.md                              ← THIS FILE
├── architecture-overview.md              ← Framework-wide architecture walkthrough
├── implementation-patterns.md            ← Common UE5 Blueprint patterns used
├── cpp-integration-guide.md              ← C++ per-system integration & setup (22 systems)
├── project-setup-migration.md            ← Project setup & migration guide
├── project-prototype-guide.md            ← Step-by-step prototype build guide (NEW)
├── 00-starter-gameinstance.md            ← Starter GameInstance: GI_StarterGameInstance setup guide
├── 01-core-foundation.md                 ← Foundation systems explained
├── 02-player-systems.md                  ← Player state & embodiment (systems 08-15)
├── 03-interaction-systems.md             ← Interaction & world manipulation (systems 16-23)
├── 04-inventory-systems.md               ← Inventory, items & collectibles (systems 24-34)
├── 05-saveload-systems.md                ← Save/load, persistence, death loop (systems 35-43)
├── 06-ui-systems.md                      ← UI, menus & diegetic presentation (systems 44-57)
├── 07-narrative-systems.md               ← Narrative, dialogue, objectives (systems 58-68)
├── 08-weapons-systems.md                 ← Weapons, equipment & damage (systems 69-79)
├── 09-ai-systems.md                      ← AI, perception & encounters (systems 80-88)
├── 10-adaptive-systems.md                ← Adaptive environment & atmosphere (systems 89-101, 132-133)
├── 11-16-systems.md                      ← Meta, Settings, Polish, Data Assets, Input, State (systems 102-135, 148-149)
└── 17-capture-systems.md                 ← Planar Capture System — Mirrors, Portals, Monitors, Horror (systems 136-147)

## Render Pipeline Reference (NEW)
- **platform-render-profiles.md** — Render pipeline setup guide: Lumen vs Baked, upscalers (DLSS/FSR/PSSR), per-platform quality presets (systems 149 + DA_RenderPipelineProfile)
- **game/haptics-example.md** — Project Void haptics walkthrough — wiring all game systems, platform tuning, testing checklist
```

## Quick Reference — Every System at a Glance

| # | System | Category | Role |
|---|--------|----------|------|
| — | `GI_StarterGameInstance` | Project Setup | Minimal GameInstance; tag validation entry point |
| 01 | `DA_GameTagRegistry` | Foundation | Central GameplayTag → asset registry |
| 02 | `FL_GameUtilities` | Foundation | Shared utility functions (logging, math) |
| 03 | `I_InterfaceLibrary` | Foundation | All framework interfaces |
| 04 | `GI_GameFramework` | Foundation | Application kernel; owns subsystems |
| 05 | `GM_CoreGameMode` | Foundation | Spawns player, manages game rules |
| 06 | `GS_CoreGameState` | Foundation | Shared game state, phase tracker |
| 07 | `DA_ItemData` | Foundation | Base item data asset |
| 150 | `BPC_PlatformServiceAbstraction` | Foundation | Central platform authority — detection, SDK routing, input/GFX/achievement coordination (NEW) |
| 08 | `BPC_HealthSystem` | Player | Health, damage, death trigger |
| 09 | `BPC_StaminaSystem` | Player | Stamina pool, sprint drain, exhaustion |
| 10 | `BPC_StressSystem` | Player | Psychological stress tiers, hallucinations |
| 11 | `BPC_MovementStateSystem` | Player | Movement mode + posture, GASP liaison |
| 12 | `BPC_HidingSystem` | Player | Hide/peek/breath-hold, LOS checks |
| 13 | `BPC_EmbodimentSystem` | Player | First-person body, arm IK, overlays |
| 14 | `BPC_CameraStateLayer` | Player | Camera FOV/offset per state |
| 15 | `BPC_PlayerMetricsTracker` | Player | Player metrics: accuracy, deaths, ratios |
| 16 | `BPC_InteractionDetector` | Interaction | Raycast interaction detection |
| 17 | `I_HidingSpot` | Interaction | Interface for hideable objects |
| 18 | `BPC_DiegeticDisplay` | Interaction | In-world screens (wristwatch, monitors) |
| 19 | `BP_DoorActor` | Interaction | Physical door with state machine |
| 20 | `BP_PuzzleDeviceActor` | Interaction | Puzzle device base actor |
| 21 | `BPC_ContextualTraversalSystem` | Interaction | Vault/mantle/slide/squeeze/climb |
| 22 | `BPC_PhysicsDragSystem` | Interaction | Grab/drag/release physics objects |
| 23 | `BPC_UsableWorldObjectSystem` | Interaction | Generic world object use (levers, buttons) |
| 24 | `BPC_ContainerInventory` | Inventory | World container inventory |
| 25 | `BP_ItemPickup` | Inventory | Physical item pickup in world |
| 26 | `BPC_ActiveItemSystem` | Inventory | Quick-slot item management |
| 27 | `BPC_CollectibleTracker` | Inventory | Collectible tracking, set bonuses |
| 28 | `BPC_ConsumableSystem` | Inventory | Consumable use (health packs, syringes) |
| 29 | `BPC_DocumentArchiveSystem` | Inventory | Document/journal archive |
| 30 | `BPC_EquipmentSlotSystem` | Inventory | Equipment slots, equip/unequip |
| 31 | `BPC_InventorySystem` | Inventory | Core inventory grid |
| 32 | `BPC_ItemCombineSystem` | Inventory | Item combination crafting |
| 33 | `BPC_JournalSystem` | Inventory | Quest/objective journal |
| 34 | `BPC_KeyItemSystem` | Inventory | Key item tracking, use-on-target |
| 35 | `SS_SaveManager` | Save/Load | Save/load subsystem |
| 36 | `I_Persistable` | Save/Load | Persistence interface |
| 37 | `BP_Checkpoint` | Save/Load | Checkpoint actor |
| 38 | `BPC_AltDeathSpaceSystem` | Save/Load | Alternate death/void space |
| 39 | `BPC_DeathHandlingSystem` | Save/Load | Death orchestrator |
| 40 | `BPC_PersistentCorpseSystem` | Save/Load | Corpse persistence |
| 41 | `BPC_PersistentWorldStateRecorder` | Save/Load | World state change recording |
| 42 | `BPC_PlayerRespawnSystem` | Save/Load | Respawn logic |
| 43 | `BPC_RunHistoryTracker` | Save/Load | Run/session history |
| 44 | `SS_UIManager` | UI | UI subsystem, menu stack |
| 45 | `WBP_AccessibilityUI` | UI | Accessibility settings UI |
| 46 | `WBP_DiegeticHUDFrame` | UI | Diegetic in-world HUD frame |
| 47 | `WBP_HUDController` | UI | Root HUD widget |
| 48 | `WBP_InteractionPromptDisplay` | UI | Interaction prompt popup |
| 49 | `WBP_InventoryMenu` | UI | Inventory grid UI |
| 50 | `WBP_JournalDocumentViewer` | UI | Document/journal viewer |
| 51 | `WBP_MainMenu` | UI | Main menu |
| 52 | `WBP_MenuFlowController` | UI | Menu state machine |
| 53 | `WBP_NotificationToast` | UI | Toast notification |
| 54 | `WBP_ObjectiveDisplay` | UI | Active objective HUD element |
| 55 | `WBP_PauseMenu` | UI | Pause menu |
| 56 | `WBP_ScreenEffectController` | UI | Full-screen effects |
| 57 | `WBP_SettingsMenu` | UI | Settings menu |
| 58 | `BPC_NarrativeStateSystem` | Narrative | Narrative state machine |
| 59 | `BPC_ObjectiveSystem` | Narrative | Objective tracker |
| 60 | `BPC_DialoguePlaybackSystem` | Narrative | Dialogue playback |
| 61 | `BPC_DialogueChoiceSystem` | Narrative | Dialogue choices |
| 62 | `BPC_BranchingConsequenceSystem` | Narrative | Consequence execution |
| 63 | `BPC_TrialScenarioSystem` | Narrative | Timed trial/puzzle scenario |
| 64 | `BPC_CutsceneBridge` | Narrative | Cutscene bridge |
| 65 | `BPC_LoreUnlockSystem` | Narrative | Lore/journal unlock |
| 66 | `DA_NarrativeDataAssets` | Narrative | Narrative data assets |
| 67 | `BP_NarrativeTriggerVolume` | Narrative | Narrative trigger volume |
| 68 | `BPC_EndingAccumulator` | Narrative | Ending condition tracker |
| 69 | `BP_WeaponBase` | Weapons | Weapon base actor |
| 70 | `BPC_AmmoComponent` | Weapons | Ammo pool |
| 71 | `BPC_CombatFeedbackComponent` | Weapons | Combat feedback (hit markers) |
| 72 | `BPC_DamageReceptionSystem` | Weapons | Damage reception/resistance |
| 73 | `BPC_DeathCauseTracker` | Weapons | Death cause logging |
| 74 | `BPC_FirearmSystem` | Weapons | Firearm specialization |
| 75 | `BPC_HitReactionSystem` | Weapons | Hit reaction animations |
| 76 | `BPC_MeleeSystem` | Weapons | Melee weapon system |
| 77 | `BPC_RecoilSystem` | Weapons | Recoil pattern |
| 78 | `BPC_ReloadSystem` | Weapons | Reload system |
| 79 | `BPC_ShieldDefenseSystem` | Weapons | Shield defense |
| 80 | `BP_EnemyBase` | AI | Enemy base character |
| 81 | `BP_PatrolPath` | AI | Patrol path spline |
| 82 | `BPC_AlertSystem` | AI | AI alert states |
| 83 | `BPC_AIStateMachine` | AI | AI state machine |
| 84 | `AI_BaseAgentController` | AI | Base AI controller |
| 85 | `BB_AgentBoard` | AI | AI blackboard definition |
| 86 | `BPC_AIMemorySystem` | AI | AI memory/last known locations |
| 87 | `BPC_AIPerceptionSystem` | AI | AI perception (sight/hearing) |
| 88 | `BPC_BehaviourVariantSelector` | AI | Behavior variant selection |
| 89 | `BPC_DifficultyManager` | Adaptive | Dynamic difficulty scaling |
| 90 | `BPC_FearSystem` | Adaptive | Fear system (AI + player) |
| 91 | `BPC_PerformanceScaler` | Adaptive | Performance scaling (LOD) |
| 92 | `BPC_ProceduralEncounter` | Adaptive | Procedural encounter generation |
| 93 | `BPC_AdaptiveEnvironmentDirector` | Adaptive | Adaptive environment director |
| 94 | `BPC_AtmosphereStateController` | Adaptive | Atmosphere state (tone, tension) |
| 95 | `BPC_AudioAtmosphereController` | Adaptive | Audio atmosphere [DEPRECATED] |
| 96 | `BPC_LightEventController` | Adaptive | Light events (flicker/strobe) |
| 97 | `BPC_MemoryDriftSystem` | Adaptive | Memory drift distortions |
| 98 | `BPC_PacingDirector` | Adaptive | Pacing director |
| 99 | `BPC_PlaystyleClassifier` | Adaptive | Playstyle classification |
| 100 | `BPC_RareEventSystem` | Adaptive | Rare event system |
| 101 | `BPC_ScareEventSystem` | Adaptive | Scare event system |
| 102 | `BPC_ProgressStatTracker` | Meta | Progress statistics |
| 103 | `SS_AchievementSystem` | Meta | Achievement subsystem |
| 104 | `BPC_AccessibilitySettings` | Settings | Accessibility settings |
| 105 | `SS_SettingsSystem` | Settings | Persistent settings subsystem |
| 148 | `BPC_HapticsController` | Settings | Haptics controller — force feedback, DualSense triggers, heartbeat pulse (NEW) |
| 106 | `BPC_AnalyticsTracker` | Polish | Analytics/telemetry |
| 107 | `BPC_DevCheatManager` | Polish | Developer cheats |
| 108 | `BPC_ErrorHandler` | Polish | Error/crash handling |
| 109 | `BPC_FPSCounter` | Polish | FPS counter |
| 110 | `BPC_LoadingScreen` | Polish | Loading screen |
| 111 | `BPC_TutorialSystem` | Polish | Tutorial system |
| 112 | `WBP_CreditsScreen` | Polish | Credits screen |
| 113 | `WBP_DebugMenu` | Polish | Debug menu |
| 114 | `WBP_SplashScreen` | Polish | Splash screen |
| 115 | `DA_AdaptationRule` | Data Assets | Difficulty adaptation rules |
| 116 | `DA_AtmosphereProfile` | Data Assets | Atmosphere profile (audio/light/FX) |
| 117 | `DA_BehaviourVariant` | Data Assets | AI behavior variant |
| 118 | `DA_DataAssetArchitecture` | Data Assets | Data asset architecture overview |
| 119 | `DA_EncounterData` | Data Assets | Encounter definition |
| 120 | `DA_EquipmentConfig` | Data Assets | Equipment configuration |
| 121 | `DA_HapticProfile` | Data Assets | Haptic feedback profile |
| 122 | `DA_InteractionData` | Data Assets | Interaction definition |
| 123 | `DA_ObjectiveData` | Data Assets | Objective/quest data |
| 124 | `DA_PuzzleData` | Data Assets | Puzzle definition |
| 125 | `DA_RareEvent` | Data Assets | Rare event definition |
| 126 | `DA_RoomMutation` | Data Assets | Room mutation definition |
| 127 | `DA_ScareEvent` | Data Assets | Scare event definition |
| 128 | `SS_EnhancedInputManager` | Input | Enhanced Input manager |
| 129 | `DA_InputMappingProfile` | Data Assets | Input mapping profile per platform |
| 130 | `BPC_StateManager` | State | Central state authority |
| 131 | `DA_StateGatingTable` | State | State gating rules |
| 132 | `SS_AudioManager` | Adaptive | Audio subsystem (MetaSounds) |
| 133 | `BP_RoomAudioZone` | Adaptive | Room audio zone trigger |
| 134 | `DA_AudioSettings` | Data Assets | Audio bus/settings config |
| 135 | `DA_RoomAcousticPreset` | Data Assets | Room acoustic profile |
| 148 | `BPC_HapticsController` | Settings | Haptics controller — force feedback, DualSense triggers, heartbeat pulse |
| 149 | `BPC_RenderPipelineManager` | Settings | Render pipeline manager — quality presets, GI/shadows/upscaling per platform |
| — | `DA_RenderPipelineProfile` | Data Assets | Render pipeline config — per-platform quality tier render settings |

## How to Use These Docs

1. **New to the framework?** Start with [`architecture-overview.md`](architecture-overview.md) to understand the big picture.
2. **Setting up a new project?** Read [`00-starter-gameinstance.md`](00-starter-gameinstance.md) first — create `GI_StarterGameInstance` to validate your GameplayTags immediately. Then follow [`project-setup-migration.md`](project-setup-migration.md) for full Project Settings, plugins, Data Tables, and init sequence.
3. **Building a prototype?** Follow [`project-prototype-guide.md`](project-prototype-guide.md) — step-by-step instructions from blank project to working test character with verification checklist.
4. **Using the C++ classes?** Read [`cpp-integration-guide.md`](cpp-integration-guide.md) — per-system setup steps, Blueprint children to create, usage patterns, and build order. See [`../checklists/cpp-blueprint-status.md`](../checklists/cpp-blueprint-status.md) for the full 135-system status grid.
5. **Need the prioritized BP build list?** See [`../checklists/remaining-blueprint-build-order.md`](../checklists/remaining-blueprint-build-order.md) — every system with C++ status, what BP to build, and dependency-safe order.
6. **Implementing a system?** Read the Blueprint Spec in `docs/blueprints/` — every file has a Manual Implementation Guide with node-by-node logic.
7. **Need to understand internals?** Read the corresponding Developer Reference doc in this directory.
8. **Debugging?** Each category doc includes a data flow section showing how data moves between systems.
9. **Need UE5 Blueprint patterns?** See [`implementation-patterns.md`](implementation-patterns.md).
10. **Multiplayer networking?** See [`../architecture/multiplayer-networking.md`](../architecture/multiplayer-networking.md). Every doc has a Multiplayer Networking section.

## Relationship to Spec Files

| Aspect | Blueprint Spec (`docs/blueprints/`) | Developer Reference (`docs/developer/`) |
|--------|--------------------------------------|----------------------------------------|
| **Purpose** | Define what to build with node-by-node logic (v2.0) | Explain how it works (understanding) |
| **Audience** | Implementers building Blueprints manually | Anyone needing to understand internals |
| **Content** | Enums, structs, variables, functions, **Manual Implementation Guide** | Data flow, state machines, design rationale |
| **Format** | TEMPLATE.md v2.0 — includes Build Checklist | Per-category reference docs + cpp-integration-guide + project-setup-migration |

---

*Developer Reference Index v1.5 — Companion to the Blueprint Spec system. Update both together.*
