Files
realms-in-ruin-dev/Documentation/Archaeology/13-Unknowns-And-RuntimeQuestions.md
T
tedwardsandCursor ff5640a020 Establish UE 5.8 known-good baseline with Batch 1 archaeology docs.
Initialize Git with LFS for binary assets and add standard Unreal Engine .gitignore/.gitattributes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 19:40:19 -07:00

16 KiB
Raw Blame History

13 — Unknowns and Runtime Questions

Status: Draft

  • Scope: Unresolved questions and verification requirements identified during Batch 1 (Passes 02). 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 24
  • 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.