Files
realms-in-ruin-dev/Documentation/Archaeology/00-MCP-Capability-Calibration.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

13 KiB

name, overview, todos, isProject
name overview todos isProject
MCP Calibration Report Read-only Unreal MCP capability-calibration results for Realms in Ruin. No editor/project state was modified; PIE was not started. SemanticSearch failed (missing embedding API key); AssetTools and other inspect APIs succeeded.
id content status
archaeology-prep Use this calibration report as the gate checklist before the full archaeology pass (read-only tool whitelist + PIE-gated queries) pending
id content status
semantic-search-key Optional: configure SemanticSearch embedding API key so Search/FindSimilar can be used in later passes pending
false

Unreal MCP Read-Only Capability Calibration Report

Session constraints honored: No ProgrammaticToolset, no create/update/set/save/delete/move/rename/compile/execute/activate/load-level/PIE/screenshot/click/type/drag, no Slate UI automation. PIE status checked only (IsPIERunning = false). Current level left as /Game/_Main/Levels/Testing/Test01.


Successful Read-Only Queries

1. Asset location (AssetTools.find_assets)

Query Result paths
Player_Paladin /Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Paladin/Player_Paladin (+ meshes SKM_Player_Paladin, SM_Player_Paladin)
Player_Amazon No exact match. Closest: /Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Amazonian/Player_Amazonian
BP_Enemy_Skeleton /Game/_Main/Blueprints/Characters/Enemies/Skeleton/BP_Enemy_Skeleton
Test01 /Game/_Main/Levels/Testing/Test01
Dev_Island /Game/_Main/Levels/Testing/Dev_Island (+ Dev_Island_BuiltData)

2. SemanticSearch (SemanticSearchToolset.Search)

Failed. Embedding generation returned HTTP 401 (no API key). Index/toolset present but not usable until SemanticSearch embedding credentials are configured.

3. Player_Paladin structural inspection

Field Value
Asset path /Game/_Main/Blueprints/Characters/PlayerCharacters/PlayerCharacterClasses/Paladin/Player_Paladin
Object ref /Game/_Main/Blueprints/.../Player_Paladin.Player_Paladin
Generated class Player_Paladin_C/Game/.../Player_Paladin.Player_Paladin_C
Blueprint parent /Game/_Main/Blueprints/Characters/PlayerCharacters/BP_PlayerCharacterBase.BP_PlayerCharacterBase_C
Native parent /Script/REALMSINRUIN.RIRPlayerCharacter
Own variables Ability001Montages, ChargeStartLoc, ChargeFinishLoc, IsCharging, IsBlocking
Inherited DEPRECATED vars (on base) On BP_PlayerCharacterBase: DEPRECATED_CurrentHealth/MaxHealth, DEPRECATED_CurrentMana/MaxMana, DEPRECATED_CurrentStamina/MaxStamina, DEPRECATED_ManaRegenOverTime, DEPRECATED_Ability00{1-4}Damage/ManaCost
Graphs UserConstructionScript, GetPlayerPaladinREF, PlayerHitCheck, EventGraph
Implemented functions (local) UserConstructionScript, GetPlayerPaladinREF, PlayerHitCheck
Key implemented events Charge, Client_Charge, Server_Ability_00{1-4}_*, UseAbility001/004, ReceiveBeginPlay, ReceiveTick, ReceiveActorBeginOverlap
Components (via CDO get_components) Native: CollisionCylinder, Arrow, CharacterMesh0, CharMoveComp, AbilitySystemComponent; many skeletal mesh attach comps (Helmet, Sword, Shield, sockets, etc.); inherited TPSpringArm, ThirdPersonCamera, footstep comps
Interfaces on Paladin asset tags Not listed in get_asset_tags ImplementedInterfaces (empty/absent). Referencers include /Game/_Main/Blueprints/Interfaces/BPI_PlayerCharacter
DEPRECATED ability section Structurally inspectable. find_nodes(title="DEPRECATED") + get_node_infos + get_connected_subgraph walk EventGraph nodes e.g. GetDEPRECATED_Ability003ManaCostFCanUseMana → Branch → Charge / Client_Charge chain from EventServer_Ability_003_Begin

4. Selected BP_Enemy_Skeleton instance

Field Value
Selected actor /Game/_Main/Levels/Testing/Test01.Test01:PersistentLevel.BP_Enemy_Skeleton_C_1
Blueprint asset /Game/_Main/Blueprints/Characters/Enemies/Skeleton/BP_Enemy_Skeleton
Class /Game/.../BP_Enemy_Skeleton.BP_Enemy_Skeleton_C
Blueprint parent /Game/_Main/Blueprints/Characters/Enemies/BP_EnemyCharacterBase.BP_EnemyCharacterBase_C
Native parent /Script/REALMSINRUIN.RIRBaseEnemyCharacter
Implemented interface BPI_EnemyCharacter/Game/_Main/Blueprints/Interfaces/BPI_EnemyCharacter.BPI_EnemyCharacter_C (graph GetEnemyREF)
AI Controller class /Script/AIModule.AIController (stock engine class)
AutoPossessAI PlacedInWorld
Components CollisionCylinder, Arrow, CharMoveComp, CharacterMesh0, AbilitySystemComponent (+ AttributeSet property → ...BP_Enemy_Skeleton_C_1.AttributeSet)
ASC editor state defaultStartingData=[], activatableAbilities.items=[]
Dependencies SKM_Skeleton_Guard_Body, BPI_EnemyCharacter, BP_EnemyCharacterBase, /Script/REALMSINRUIN, /Game/_Main/Animations/Enemies/Skeleton/ABP_Skeleton
Perception / BT / Blackboard props on instance Not present as dedicated properties on the actor instance beyond stock pawn AI fields

5. BehaviorTreeTools vs project content

  • AssetTools.find_assets with asset_type=/Script/AIModule.BehaviorTree over /Game[]
  • No BT_*, Blackboard, AIC_*, or Perception assets under /Game/_Main
  • ObjectTools.search_subclasses(AIController, "RIR")[]
  • Conclusion: BehaviorTreeTools APIs (list_nodes, get_blackboard, etc.) are available, but no Behavior Tree asset is associated with BP_Enemy_Skeleton in this project — nothing to inspect.

6. AttributeSetToolset

FindAttributeSetClasses returned:

  • RIRAttributeSet (native, empty assetPath) — Realms in Ruin set: Health, MaxHealth, Mana, MaxMana, Stamina, MaxStamina
  • AbilitySystemTestAttributeSet (engine/test)
  • GASToolsetsTestAttributeSet (toolset test)

7. GameplayTagsToolset (read-only ListTags / GetTagInfo)

  • ListTags(parentTag="") returned full manager list (project + engine/plugin tags).
  • Sample project tags from DefaultGameplayTags.ini: State.Dead, Disable.Ability, plus Disable.*, Effect.*, State.*, etc.
  • Also listed engine/plugin tags (EnhancedInput.*, Niagara.*, UI.Action.*, Tests.*, …).
  • Mutators (AddTag/RemoveTag/RenameTag) not used.

8. Domain capability probes (read-only)

Domain Tooling that worked Sample / note
Gameplay Effects AssetTools + ObjectTools on CDO e.g. /Game/_Main/Blueprints/Game/GameSystems/GAS/GameplayEffects/PlayerCharacters/Paladin/GE_Paladin_DefaultAttributes — Instant GE, overrides RIRAttributeSet:Health/Mana to 100
Gameplay Abilities Class filter /Script/GameplayAbilities.GameplayAbility[]; GA_* name search → []; search_subclasses[] No discrete GA assets found; abilities appear BP-event driven (Server_Ability_*, UseAbility*)
Anim Blueprints AssetTools + BlueprintTools.list_graphs /Game/_Main/Animations/PlayerCharacters/Human/CharacterClasses/Paladin/ABP_Paladin — AnimGraph states Idle/WalkRun/Charge/Block/Death
Anim Montages AssetTools + get_asset_tags e.g. Paladin_Ability004_Montage — Skeleton SKEL_Hu_M, length 1.866667
UMG AssetTools + BlueprintTools + UMG read helpers Widgets under /Game/_Main/UI/Widgets/...; UMGToolSet has ListWidgetBlueprints, GetWidgets, GetWidgetTreeDepth, etc. (mutating UMG ops exist but were not used)
Advanced Sessions PluginToolset + AssetTools + BlueprintTools Plugin enabled; path .../Plugins/AdvancedSessions; example BP /Game/_Main/Blueprints/Examples/ExampleAdvancedSessionsFunctionsChar contains many K2Node_LatentOnlineCall / Session nodes

Information Available

  • Asset registry search by name/type/folder; deps/refs; asset class; asset registry tags; metadata tags; load soft refs
  • Blueprint parent chain (BP + native); graphs; functions; events (incl. bIsImplemented); variables (per-Blueprint, not auto-merged inheritance in one call)
  • Graph structure: find nodes by title, node infos (pins/connections/positions), connected subgraphs, read_graph_dsl
  • Actor/instance: selection query, class, components, property list/get (AIControllerClass, ASC, AttributeSet, etc.)
  • AttributeSet discovery + attribute names
  • Gameplay tag list + per-tag comment/source/children
  • Plugin enablement + descriptor/path for Advanced Sessions
  • AnimBP graph/state machine listing via BlueprintTools
  • GE CDO modifiers/duration via ObjectTools
  • Current level path; PIE running flag

Information Not Exposed

  • SemanticSearch without embedding API key
  • Dedicated GameplayAbility asset inspector (no GA assets + no GA-specific toolset beyond runtime AbilitySystemInspectorToolset)
  • Behavior Trees / Blackboards / custom AIControllers / AI Perception assets for enemies in this project (tools exist; content absent)
  • ImplementedInterfaces as a reliable ObjectTools property on BP/CDO (failed property reads); available via asset registry tags when populated (worked for Skeleton, not Paladin tags)
  • Inherited Blueprint variables not returned by child list_variables alone (must query each parent BP)
  • Comment-box / graph-section / “DEPRECATED ability section” as a named region — only discoverable via node title search + subgraph walk
  • Montage notify/timeline deep structure beyond asset registry tags (AnimNotifyList was empty ; in sample)
  • Runtime ASC state (granted abilities, active effects, live attribute values) without PIE
  • Online session runtime (Advanced Sessions latent results) without PIE/network
  • Full UMG visual tree layout details without loading widget into UMGToolSet/GetWidgets (read APIs exist; not fully exercised for every widget)

Queries Requiring PIE

Mark as Requires Runtime Inspection:

  • GASToolsets.AbilitySystemInspectorToolset.* (GetGrantedAbilities, GetAttributeValues, GetActiveTags, GetActiveEffects) — needs live ASC
  • Runtime AI possession / Behavior Tree tick / Blackboard values (even if BTs existed)
  • Advanced Sessions create/find/join session outcomes
  • Montage playback, ability activation success, damage application, death/respawn flows
  • GameplayCueToolset.ExecuteCueOnSelectedActor (executes cue; docs note PIE/manager for visible results) — also mutating/execute, excluded here

Queries Requiring Manual Editor Inspection

  • SemanticSearch captions/similarity until API key configured
  • Visual layout of DEPRECATED comment regions / collapsed graph sections in EventGraph
  • Confirm whether enemy AI logic lives entirely in native RIRBaseEnemyCharacter C++ (no BT assets found)
  • Exact BPI_PlayerCharacter implementation chain on Paladin vs base (tags vs interface editor UI)
  • AnimMontage notify tracks / section names when registry tags are empty
  • Any content outside /Game that uses non-standard naming (e.g. undocumented AI assets)

Primary (read-only):

  1. editor_toolset.toolsets.asset.AssetTools — locate, classify, deps/refs, tags
  2. editor_toolset.toolsets.blueprint.BlueprintTools — graphs/functions/events/variables/nodes/DSL
  3. editor_toolset.toolsets.object.ObjectTools — CDO/instance properties, subclass search
  4. editor_toolset.toolsets.actor.ActorTools — component trees on CDO/instances
  5. EditorToolset.EditorAppToolset — selection, open assets, PIE status only
  6. editor_toolset.toolsets.scene.SceneToolsget_current_level, find_actors (avoid load_level)
  7. GASToolsets.AttributeSetToolset — attribute inventory
  8. GameplayTagsToolset.GameplayTagsToolsetListTags / GetTagInfo / FindReferencersByTag only
  9. GASToolsets.GameplayCueToolsetListCues / GetCueInfo / FindCueNotifyAssets only
  10. PluginToolset.PluginToolsetListEnabledPlugins / GetPluginInfo / IsEnabled
  11. UMGToolSet.UMGToolSetListWidgetBlueprints, GetWidgets, GetWidgetTreeDepth, GetWidgetDescription only
  12. aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools — only if BT assets appear later

Deferred / gated:

  • SemanticSearchToolset — after API key
  • GASToolsets.AbilitySystemInspectorToolsetRequires Runtime Inspection (PIE)
  • Avoid: ProgrammaticToolset, SlateInspector, mutating Asset/Blueprint/Object/Scene/UMG/GameplayTags ops

Suggested archaeology order: AttributeSets + Tags → Character BP hierarchy (native → base → class) → GE CDOs → AnimBP/Montages → UI widgets → Plugin/session examples → level-placed enemy instances → (optional PIE) ASC runtime.


Calibration verdict

Unreal MCP read-only tooling is sufficient for structural archaeology of Blueprints, levels, GEs, AnimBPs, montages, tags, AttributeSets, plugins, and UMG widget discovery. Gaps: SemanticSearch credentials, absence of GA/BT project assets, and any live GAS/AI/session behavior (Requires Runtime Inspection).