# 13 — Unknowns and Runtime Questions **Status: Draft** - **Scope:** Unresolved questions and verification requirements identified during Batch 1 (Passes 0–2). This document separates confirmed static findings from questions that require Blueprint, runtime, editor, network, or broader configuration inspection. - **Inspection method:** Consolidation of Batch 1 native C++, configuration, plugin, subclass-discovery, and MCP calibration findings. No new Unreal inspection was performed for this refactor. - **Evidence classifications used:** Observed Implementation, Documented Intent, Observed Runtime Behavior, Inferred, Unknown. - **Tool or visibility limitations:** No Git repository is available at the inspected project root. Semantic Search is not configured. Blueprint graphs, live ASC state, Montage notify timing, session behavior, and runtime consequences were outside Batch 1 scope. - **Last updated:** 2026-07-16 - **Current phase:** Phase 1 — Static Architecture - **Last completed pass:** Pass 2 (Batch 1) - **Next pass expected to contribute:** Every subsequent batch ## Draft tracking ### Completed sections - Batch 1 unknowns grouped by required verification method - Confirmed enemy ASC accessor defect separated from its runtime-impact questions - OnlineSubsystem and Steam configuration investigation separated from manual editor inspection - Tool and environment limitations recorded - Naming ambiguities and conflicting evidence recorded ### Pending sections - Ability, RPC, animation, frontend, session, enemy Blueprint, UI, and pickup unknowns from Batches 2–4 - Runtime test procedures to be finalized after static Blueprint archaeology - Priority updates after the ability migration matrix is complete ### Evidence still required - Connected Blueprint graphs for player state, player base, playable characters, enemies, widgets, and pickups - Exact Blueprint class and generated-parent verification for `WBP_PlayerHUD` - Live ASC, attribute, Gameplay Effect, HUD, and session state through controlled PIE or network testing - Broader project/plugin/Saved configuration search for OnlineSubsystem and Steam settings ### Unknowns requiring later verification - Blueprint ownership of default attribute application - Blueprint-only ability RPC and resource-routing architecture - Runtime consequences of the confirmed enemy ASC accessor mismatch - Exact source of enemy chase and attack behavior - Session configuration and production widget flow - Montage notify and visual Blueprint comment-region details --- ## Confirmed static defects with runtime questions The following item is **not Unknown** at the static implementation level. | Confirmed finding | Evidence classification | Issue classification | Exact evidence | Runtime question | |---|---|---|---|---| | `ARIRBaseEnemyCharacter` owns and initializes an ASC on itself, while inherited `ARIRBaseCharacter::GetAbilitySystemComponent()` attempts to retrieve the ASC from `ARIRPlayerState`. No native enemy override was found. | Observed Implementation | Incomplete Refactor / Existing Baseline Defect | `Source/REALMSINRUIN/Private/Characters/RIRBaseEnemyCharacter.cpp`; `Source/REALMSINRUIN/Private/Characters/RIRBaseCharacter.cpp`; `ARIRBaseEnemyCharacter::BeginPlay`; `ARIRBaseCharacter::GetAbilitySystemComponent` | Which runtime systems fail or degrade because interface-based ASC lookup can return null for enemies? | The mismatch itself is statically confirmed. PIE is required only to determine its downstream impact on Gameplay Effects, attribute access, damage, death handling, Blueprint ability-system calls, and other consumers of `IAbilitySystemInterface`. --- ## Requires Blueprint inspection | Question | Why static native inspection is insufficient | Relevant paths | Recommended safe verification method | Mutates project state? | Priority | Dependency | |---|---|---|---|---|---|---| | Does `BP_PlayerState` assign or apply `DefaultAttributesGameplayEffect`? | The property is declared on `ARIRPlayerState` but is never applied in native C++. | `/Game/_Main/Blueprints/Player/BP_PlayerState`; `Source/REALMSINRUIN/Public/Player/RIRPlayerState.h` | Read-only BlueprintTools inspection of class defaults, graphs, functions, and connected subgraphs | No | High | Native finding that `DefaultAttributesGameplayEffect` has no C++ apply path | | How are playable-character abilities routed and networked? | No native ability RPCs or native ability input bindings were found. | `/Game/_Main/Blueprints/Characters/PlayerCharacters/BP_PlayerCharacterBase`; `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Paladin/Player_Paladin`; `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Amazonian/Player_Amazonian`; `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Cleric/Player_Cleric`; `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Wizard/Player_Wizard`; `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Gunslinger/Player_Gunslinger` | Read-only graph inventory and connected path tracing of input events, `UseAbility*`, server/client/multicast events, validation, costs, damage, animation, and cleanup | No | High | Batch 2 player-base hierarchy and Batch 3 per-character reconstruction | | Where was enemy chase and attack behavior intended to live? | Native enemy code contains no targeting, movement, perception, MoveTo, or attack implementation. | `/Game/_Main/Blueprints/Characters/Enemies/BP_EnemyCharacterBase`; `/Game/_Main/Blueprints/Characters/Enemies/Skeleton/BP_Enemy_Skeleton`; `/Game/_Main/Blueprints/Characters/Interfaces/BPI_EnemyCharacter` if present at that path | Read-only Blueprint graph, component, property, event, timer, navigation, and interface inspection | No | High | Native enemy inventory and calibration finding that no project BT/BB/custom AIController assets were found | | Is `WBP_PlayerHUD` a Widget Blueprint, an `ARIRHUD` child, or a subclass-search anomaly? | The name and native `checkf` text suggest a widget, while subclass search returned it in an `ARIRHUD` query. | `/Game/_Main/UI/Widgets/HUD/WBP_PlayerHUD`; `Source/REALMSINRUIN/Private/UI/HUD/RIRHUD.cpp` | Read-only asset-class, generated-class parent, asset-tag, dependency, and referencer inspection | No | Medium | ObjectTools subclass-search anomaly recorded in Batch 1 | | Is CommonUI used by live project content? | CommonUI is enabled, but no native CommonUI references were found. | `/Game/_Main/UI`; `REALMSINRUIN_DEV.uproject` | Read-only widget parent-class, asset dependency, and referencer inspection | No | Low | Plugin enabled-state finding from `02-ProjectArchitecture.md` | | Do each of the `ARIREffectActor` Blueprint children invoke `ApplyEffectToTarget`? | Inheritance provides the native mechanism but does not prove that each child calls it. | `/Game/_Main/Blueprints/Items/Food/BP_OrangeSlice`; `/Game/_Main/Blueprints/Items/Potion/BP_HealthPotion`; `/Game/_Main/Blueprints/Items/Potion/BP_ManaPotion`; `/Game/_Main/Blueprints/Items/Potion/BP_ManaCrystal` | Read-only connected graph inspection for overlaps, authority checks, effect calls, destruction, and respawn | No | Medium | Native `ARIREffectActor::ApplyEffectToTarget` implementation | --- ## Requires runtime inspection / PIE | Question | Why static inspection is insufficient | Relevant paths or systems | Recommended safe verification method | Mutates project state? | Priority | Dependency | |---|---|---|---|---|---|---| | Which runtime systems are affected by the confirmed enemy ASC accessor mismatch? | Static analysis proves the mismatch but cannot show every consumer or symptom. | `ARIRBaseCharacter::GetAbilitySystemComponent`; `ARIRBaseEnemyCharacter`; `ARIREffectActor`; enemy damage/death/effect flows | Controlled PIE using AbilitySystemInspector and targeted read-only observation of enemy ASC, attributes, applied effects, damage, and death state | PIE changes the transient world; no asset save required | High | Confirmed static defect documented above; enemy Blueprint inspection should occur first | | Are default attributes applied when a player spawns? | No native application path was found, and Blueprint assignment/application is not yet known. | `/Game/_Main/Blueprints/Player/BP_PlayerState`; character default-attribute Gameplay Effects; player ASC | Controlled PIE inspection of granted effects and Health/Mana/Stamina values immediately after possession | PIE changes the transient world; no asset save required | High | Blueprint inspection of `BP_PlayerState` and default attribute GE CDOs | | Does HUD overlay creation complete successfully for every playable character? | Native call flow exists, but class assignments and widget bindings are Blueprint/editor data. | `ARIRPlayerCharacter::InitAbilityActorInfo`; `ARIRHUD::InitOverlay`; `/Game/_Main/UI/Widgets/HUD/WBP_PlayerHUD`; `/Game/_Main/UI/Widgets/WBP_Overlay` if confirmed | Controlled PIE observation of HUD creation, widget-controller assignment, and initial attribute broadcasts | PIE changes the transient world; no asset save required | Medium | Exact HUD/widget asset-class verification and Blueprint defaults | | Do production session create, find, join, and travel flows succeed? | Advanced Sessions operations are latent and depend on runtime online-subsystem configuration. | Production main-menu and multiplayer-browser widgets; AdvancedSessions; AdvancedSteamSessions | Controlled standalone or multi-client network test after static frontend/session graph reconstruction | Network and transient session state | Medium | Broader configuration inspection and frontend/session Blueprint pass | --- ## Requires broader filesystem/configuration inspection | Question | Why current inspection is insufficient | Search scope and likely terms | Recommended safe verification method | Mutates project state? | Priority | Dependency | |---|---|---|---|---|---|---| | Where are OnlineSubsystem and Steam runtime settings defined, if they exist? | No relevant sections were found in the initially inspected project `Config/` files. That does not establish project-wide absence. | `Config/**/*.ini`; `Plugins/**/Config/**/*.ini`; `Saved/Config/**/*.ini`; search terms: `DefaultPlatformService`, `OnlineSubsystem`, `OnlineSubsystemSteam`, `SteamDevAppId`, `SteamAppId`, `NetDriverDefinitions`, `GameServerQueryPort` | Read-only filesystem search followed by inspection of project-owned configuration. Keep engine defaults separate from project-owned settings. | No | Medium | AdvancedSessions and AdvancedSteamSessions are enabled; production usage remains unverified | | Is the GameInstance class configured outside the inspected `DefaultEngine.ini` section? | `GI_Dungeoneer` was discovered, but no assignment was found in the inspected configuration. | Project and plugin INI files; map/world settings metadata; references to `/Game/_Main/Blueprints/Game/GameInstance/GI_Dungeoneer` | Read-only project-wide text search plus asset metadata and referencer inspection | No | Medium | Blueprint framework hierarchy pass and map metadata pass | Do not treat absence from the initial `Config/` sample as proof that settings do not exist elsewhere. --- ## Requires manual editor inspection | Question | Why MCP/static metadata may be insufficient | Relevant paths | Recommended safe verification method | Mutates project state? | Priority | Dependency | |---|---|---|---|---|---|---| | What Montage sections, notifies, notify states, and exact timings drive abilities? | Calibration reported limited or empty notify metadata, and deep Montage structure may not be exposed through the approved tools. | Character Montage assets discovered during the animation and ability passes | Manually inspect Montage sections and notify tracks without saving assets | No, provided no asset is saved | Medium | Batch 3 ability inventory and Batch 4 animation pass | | Which nodes visually belong to DEPRECATED comment regions? | MCP can trace executable connectivity but may not reliably expose visual comment-box membership and boundaries. | `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Paladin/Player_Paladin`; relevant ability graphs | Manually inspect Blueprint visual layout after connected paths have been documented | No, provided no asset is saved | Medium | Batch 2 player-base inspection and Batch 3 Paladin ability analysis | --- ## Tool and environment limitations | Item | Detail | Impact | Mitigation | |---|---|---|---| | Git repository unavailable | The inspected project root returned `fatal: not a git repository`. | A complete repository diff and reliable unrelated-file change detection were unavailable. | Use filesystem listings and hashes for the current phase; establish a Git/LFS baseline before additional reconstruction work. | | Semantic Search unavailable | Calibration returned HTTP 401 because no embedding API key was configured. | No semantic asset/code discovery through that tool. | Use deterministic asset registry, subclass, dependency, referencer, node, and filesystem searches. | | Parallel MCP calls unreliable | Some batched calls failed with schema errors such as missing `server` or `toolName`. | Parallel query results may be incomplete when a batch fails. | Retry important read-only calls individually and record failures. | | Blueprint comment-box membership limited | Tooling may expose comment text or nearby nodes without reliable visual containment. | Documented Intent can be captured, but exact visual grouping may remain uncertain. | Use connected subgraph evidence and defer visual boundaries to manual editor inspection. | | Live ASC and session state unavailable statically | Runtime grants, active effects, replicated attributes, and latent session outcomes do not exist in a static editor snapshot. | Static conclusions cannot establish runtime success. | Defer to controlled PIE or network tests after static reconstruction. | --- ## Naming ambiguities | Item | Current evidence | Required resolution | Dependency | |---|---|---|---| | Amazon vs Amazonian | Playable character asset is `/Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Amazonian/Player_Amazonian`; default-attribute content uses `Amazon` naming in calibration results. | Confirm exact GE asset names, assignments, and referencers during the dedicated GAS pass. | Gameplay Effect inventory and `BP_PlayerState`/character defaults | | `WBP_PlayerHUD` | Name and native error text suggest a widget; subclass search under `ARIRHUD` returned it. | Verify asset class, generated class, native parent, and referencers. | Batch 2 Blueprint hierarchy and UI asset inspection | --- ## Conflicting evidence | Conflict | Evidence A | Evidence B | Current resolution | Remaining verification | |---|---|---|---|---| | Enemy ASC ownership and accessor | `ARIRBaseEnemyCharacter` creates and initializes an ASC on itself. | Inherited `ARIRBaseCharacter::GetAbilitySystemComponent()` retrieves from `ARIRPlayerState`. | Both are Observed Implementation. The mismatch is a confirmed static defect. | Determine affected runtime systems through Blueprint inspection followed by controlled PIE. | | Default attribute architecture | `ARIRPlayerState` declares `DefaultAttributesGameplayEffect`; default-attribute GE assets are known to exist. | No native C++ application path was found. | Property and assets are present, but the apply path is Unknown. | Inspect `BP_PlayerState`, playable-character defaults, and GE referencers. | | Gameplay Ability migration | `URIRGameplayAbility` exists and is documented as a base for project abilities. | No project-derived GA class, GA asset, or static granting path has been observed so far. | Current evidence supports GAS scaffolding without completed discrete Gameplay Ability migration. | Reconfirm through Blueprint and dedicated GAS passes. | --- ## Priority order for later verification 1. Inspect `BP_PlayerState` default-attribute assignment/application. 2. Reconstruct `BP_PlayerCharacterBase` input, RPC, resource, and legacy ability routing. 3. Verify the exact class of `WBP_PlayerHUD`. 4. Inspect enemy Blueprint logic and identify consumers of the confirmed ASC accessor defect. 5. Inspect per-character abilities and their animation dependencies. 6. Perform broader OnlineSubsystem and Steam configuration search. 7. Run controlled PIE only after the relevant static paths are fully documented.