Skip to content

UIExtension patch

Purpose

Track local modifications that must be reviewed and reapplied when updating the four Lyra-derived project plugins.

Current overrides

UIExtensionPointWidget.cpp adds diagnostic logging for global, local-player, and PlayerState extension-point registration. It also logs request add/remove events and the widget classes created from extension data.

UIExtensionPointWidget.h exposes this non-reflected C++ accessor:

const FGameplayTag& GetExtensionPointTag() const { return ExtensionPointTag; }

The diagnostic messages use the [UIExtPoint] prefix and LogUIExtension category. They are useful for tracing UI registration across world travel and should be reviewed for verbosity before a shipping release.

Integration notes

In addition to the source overrides above, project code assumes:

  • UUIExtensionPointWidget exposes a UPROPERTY named ExtensionPointTag (from the plugin header). We avoid direct method calls and read the property via reflection in:
  • Source/Metal_terra/Private/Core/TankBlueprintFunctionLibrary.cpp

The accessor is available to native callers, while the current project lookup uses reflection. If a future plugin update renames or removes ExtensionPointTag, update both the accessor patch and the reflection lookup.

Upgrade procedure

  1. Compare the current project plugin against both the previous and new Epic versions; do not infer intent from timestamps or line endings.
  2. Start from the new official plugin source.
  3. Reapply the logging and accessor above only if they remain useful.
  4. Compile UIExtension in Tank Game project context.
  5. Exercise UI extension registration through PIE start, travel, teardown, and re-entry.

The UE 5.6-to-5.8 reconciliation is documented in the UE AngelScript 5.8 upgrade.