Skip to content

Risks

Shared binary ownership

BP_RephraseCharacter1, both input mapping contexts, DA_RuneDrawingGraph, puzzle Blueprints, and maps can only be edited safely by one owner at a time.

Mitigation: assign ownership before checkout and keep each shared-asset change in one focused changelist.

Rune-matrix growth

Every new Verb × Noun row can multiply implementation and test work.

Mitigation: approve rows before implementation, reuse status transitions, and use noun overrides before adding bespoke effect classes.

Drawing-pattern collisions

Two words with the same exact stroke set are indistinguishable.

Mitigation: validate uniqueness on DA_RuneDrawingGraph and test extra-stroke rejection before promotion.

Command collision gaps

The command orb reaches actors through overlap queries. Missing or disabled query collision makes a visually nearby receiver unreachable.

Mitigation: include collision and command-range checks in every rune-content PIE checklist.

Presentation re-entry

Commands that arrive while a puzzle performance or repair sequence plays can create conflicting state and camera ownership.

Mitigation: a puzzle plays one performance at a time and lets Freeze through; test repeated commands at each transition boundary.

Input-context conflicts

Menus, the drawing tablet, and alternate pawns can leave a mapping context or focus mode active after possession/UI changes.

Mitigation: keep add/remove ownership in URuneCoordinatorComponent, use explicit restore policy, and test controller changes and menu overlap.

Save compatibility

Runeable object tags and puzzle presentation state will evolve after players have saves.

Mitigation: version the schema from its first implementation and define defaults/migrations for added statuses.

Content throughput

Custom C++ for every matrix row would bottleneck rune production.

Mitigation: matrix rows are data on each noun, and puzzles pick from shared performance behaviors, so most rows need no C++.

Change history

  • 2026-09-17 — Gabriel Li — Replaced retired carry/calculator risks with current binary ownership, pattern, collision, presentation, input, save, and content-scaling risks.
  • 2026-08-12 — Gabriel Li — Engine pin moved to UE 5.8 / MSVC 14.50 for Unreal MCP.
  • 2026-05-08 — Gabriel Li — Added baseline change history section for weekly wiki maintenance.