Document Batch 4D archaeology and add README title image outside LFS.

Exclude REALMSINRUIN_TITLE_DEV.png from Git LFS so the README hero renders on Gitea.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 23:17:56 -07:00
co-authored by Cursor
parent e028e16f70
commit ee65271212
11 changed files with 501 additions and 215 deletions
+20 -9
View File
@@ -8,8 +8,8 @@
- **Tool or visibility limitations:** Inherited Blueprint variables require querying each parent; CustomEvent FunctionFlags not exposed via ObjectTools; Gunslinger FiB/IsDataOnly anomaly.
- **Last updated:** 2026-07-16
- **Current phase:** Phase 1 — Static Architecture
- **Last completed pass:** Pass 9 (Batch 4C) — enemy hierarchy/control expanded
- **Next pass expected to contribute:** Pass 4 / Pass 10 when authorized
- **Last completed pass:** Pass 4 + Pass 10 (Batch 4D)
- **Next pass expected to contribute:** Pass 11 when authorized
## Draft tracking
@@ -20,14 +20,15 @@
- WBP_PlayerHUD asset-class resolution (AHUD, not UserWidget)
- BP_PlayerState DefaultAttributesGameplayEffect = None
- **Pass 9:** Enemy EventGraphs empty; stock AIController; BPI partial; no BT/BB
- **Pass 4/10:** Frontend PC/GM/GI roles; BPI_PlayerController `UpdatePlayerHUD`/`AddGold` unimplemented on `PC_Character`; EffectActor vs `BP_BasePickUp` hierarchies
### Pending sections
- Frontend/session graphs (Pass 4)
- CommonUI content usage
- Exact CustomEvent reliable flags
### Evidence still required
- Exact CustomEvent reliable flags
- PIE possession of placed skeletons
- CommonUI content usage
- Whether any other class implements `AddGold` / `UpdatePlayerHUD`
---
@@ -132,12 +133,16 @@ See Batch 1 sections for `ARIRBaseCharacter`, `ARIRPlayerCharacter`, `ARIRBaseEn
|-------|--------|
| Path | `/Game/_Main/Blueprints/Player/PC_Character` |
| Parent | RIRPlayerController |
| Interface | BPI_PlayerController (GetPC_DungeoneerReference) |
| Interface | BPI_PlayerController |
| Variables | CharacterSelectHUD |
| Implemented events | ServerSpawnCharacter, ReceiveBeginPlay, PlayerFirstSpawn, PlayerSelectScreenChoice, PlayerRespawn |
| **Not implemented** (`bIsImplemented=false`) | `UpdatePlayerHUD`, `AddGold`, `SetPlayerCanMove`, `AddKill_PlayerController` |
| Native C++ | `RIRPlayerController` has **no** `UpdatePlayerHUD` / `AddGold` symbols |
| CDO IMC | `/Game/_Main/Blueprints/Player/Inputs/IMC_PlayerDefault` |
| CDO MovementInput | `/Game/_Main/Blueprints/Player/Inputs/Movement/IA_Movement` |
**Pass 4:** BeginPlay creates char-select only on Authority∧IsServer. Spawn path: select → ServerSpawnCharacter → GM GetSelectedClass → PlayerFirstSpawn → SpawnActor+Possess.
### 4.2 `BP_PlayerState`
| Field | Value |
@@ -155,16 +160,17 @@ See Batch 1 sections for `ARIRBaseCharacter`, `ARIRPlayerCharacter`, `ARIRBaseEn
| Asset | Parent | Notes |
|-------|--------|-------|
| `/Game/_Main/Blueprints/Game/GameInstance/GI_Dungeoneer` | GameInstance | IsDataOnly; no implemented events; empty deps |
| `/Game/_Main/Blueprints/Game/GameInstance/GI_Dungeoneer` | GameInstance | Empty EventGraph; **0 referencers**; not in `GameInstanceClass` INI — Present but Unconnected |
| `/Game/_Main/Blueprints/Game/GameMode/GM_Dungeoneer` | GameModeBase | BPI_GameMode; vars PlayerStartLocations, ConnectedPlayers, Player Stats; events PostLogin/Logout/BeginPlay/GetSelectedClass |
| `/Game/_Main/Blueprints/Game/GameMode/GM_MainMenu` | GameModeBase | IsDataOnly; deps PC_MainMenu, BP_MainMenuPawn |
| `/Game/_Main/Blueprints/Player/PC_MainMenu` | PlayerController | HostGame CreateAdvancedSession; JoinGame JoinSession; creates WBP_MainMenu |
**GM_Dungeoneer CDO (Observed Implementation):**
- HUDClass = `WBP_PlayerHUD_C`
- PlayerControllerClass = `PC_Character_C`
- PlayerStateClass = `BP_PlayerState_C`
- DefaultPawnClass = None (spawn via PC flow)
- DefaultPawnClass = None (spawn via PC char-select flow)
---
@@ -179,6 +185,8 @@ See Batch 1 sections for `ARIRBaseCharacter`, `ARIRPlayerCharacter`, `ARIRBaseEn
No separate ability/damage/targeting/session BPI assets under `/Game/_Main/Blueprints/Interfaces` beyond the four above.
**Pass 10:** Callers of `UpdatePlayerHUD` / `AddGold` exist; `PC_Character` does not implement them → Present but Unconnected.
---
## 7. WBP_PlayerHUD resolution
@@ -192,6 +200,7 @@ No separate ability/damage/targeting/session BPI assets under `/Game/_Main/Bluep
| Verdict | **AHUD Blueprint**, not a Widget Blueprint. `WBP_` prefix is misleading. |
| Referencers | `GM_Dungeoneer` |
| Dependencies | REALMSINRUIN, `WBP_Overlay`, `BP_OverlayWidgetController` |
| CDO (Pass 10) | `overlayWidgetClass=WBP_Overlay_C`; `overlayWidgetControllerClass=BP_OverlayWidgetController_C` |
Resolves Batch 1 subclass-search anomaly: ObjectTools returned this asset under RIRHUD search because it **is** an RIRHUD child.
@@ -210,5 +219,7 @@ Resolves Batch 1 subclass-search anomaly: ObjectTools returned this asset under
| Enemy ASC access | Enemy ASC on self | Base GetASC from PlayerState | Both Observed; interface path likely broken for enemies |
| Default attributes | GE assets exist; property on PS | BP_PlayerState CDO = None; never applied in C++ | Property unused; apply path still Unknown / missing |
| HUD naming | `WBP_PlayerHUD` name suggests widget | Parent is RIRHUD (AHUD) | AHUD — name is Documented Intent mismatch |
| Dual HUD systems | Native InitOverlay → WBP_Overlay + ASC | BP Server_UpdateHUD → DEPRECATED floats → UpdatePlayerHUD | Both Observed Implementation; incomplete GAS migration |
| Dual HUD systems | Native InitOverlay → WBP_Overlay + ASC | BP Server_UpdateHUD → UpdatePlayerHUD | Overlay Connected; UpdatePlayerHUD **unimplemented** on PC (Pass 10) |
| Gameplay Abilities | URIRGameplayAbility Documented Intent | No GA assets; legacy Server_Ability_* | Legacy BP abilities active |
| Gold | BP_BasePickUp calls AddGold | AddGold unimplemented on PC_Character | Mutation Present but Unconnected |
| GameInstance | GI_Dungeoneer asset exists | Not in GameInstanceClass; 0 refs | Present but Unconnected |