Initialize Git with LFS for binary assets and add standard Unreal Engine .gitignore/.gitattributes. Co-authored-by: Cursor <cursoragent@cursor.com>
16 KiB
16 KiB
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
- Inspect
BP_PlayerStatedefault-attribute assignment/application. - Reconstruct
BP_PlayerCharacterBaseinput, RPC, resource, and legacy ability routing. - Verify the exact class of
WBP_PlayerHUD. - Inspect enemy Blueprint logic and identify consumers of the confirmed ASC accessor defect.
- Inspect per-character abilities and their animation dependencies.
- Perform broader OnlineSubsystem and Steam configuration search.
- Run controlled PIE only after the relevant static paths are fully documented.