Skip to content

JourneymanMiniMap Patch Notes (Project Overrides)

Date: 2026-02-03

Purpose: Make the minimap UI resilient to pooled/reused widgets and level travel by providing explicit deactivate/reactivate hooks and a tracker clear API. These changes are intended as a patch seed to reapply after updating the plugin.

Summary of Changes

1) Added widget lifecycle helpers on MapBackground and MapIconComponent. 2) Added Blueprint helpers to deactivate/reactivate a minimap widget across all tracked objects. 3) Added a Blueprint API to clear MapTrackerComponent tracked lists (without destroying actors/components). 4) (Debugging) Added explicit logging in MapBackground BeginPlay/EndPlay and MapIconComponent registration paths.

Files and Diffs

1) MapBackground: Deactivate/Reactivate for Widgets

Files: - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Public/MapBackground.h - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Private/MapBackground.cpp

API additions: - void DeactivateForWidget(UUserWidget* Widget); - void ReactivateForWidget(UUserWidget* Widget);

Behavior: - Deactivate: removes all map background delegates bound by the widget. - Reactivate: re-broadcasts current background state (texture/material/appearance/levels/overlay) so a widget that rebinds can refresh safely.

Notes: - Added include: Blueprint/UserWidget.h.

2) MapIconComponent: Deactivate/Reactivate for Widgets

Files: - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Public/MapIconComponent.h - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Private/MapIconComponent.cpp

API additions: - void DeactivateForWidget(UUserWidget* Widget); - void ReactivateForWidget(UUserWidget* Widget);

Behavior: - Deactivate: removes widget-bound delegates and clears the widget’s UMG material instance entry. - Reactivate: re-broadcasts appearance/material/material-instances.

Notes: - Added include: Blueprint/UserWidget.h.

3) MapFunctionLibrary: Global Widget Deactivate/Reactivate

Files: - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Public/MapFunctionLibrary.h - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Private/MapFunctionLibrary.cpp

API additions: - static void DeactivateMinimapWidget(UObject* WorldContextObject, UUserWidget* Widget); - static void ReactivateMinimapWidget(UObject* WorldContextObject, UUserWidget* Widget);

Behavior: - Looks up MapTracker using the world context (or the widget). - Iterates all registered backgrounds/icons and forwards Deactivate/Reactivate to each.

Notes: - Added include: Blueprint/UserWidget.h.

4) MapTrackerComponent: Clear Tracked Objects

Files: - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Public/MapTrackerComponent.h - Plugins/JourneymanMiniMap/Source/MinimapPlugin/Private/MapTrackerComponent.cpp

API additions: - UFUNCTION(BlueprintCallable) void ClearTrackedObjects();

Behavior: - Unregisters every tracked icon/background/fog/revealer (broadcasting Unregistered events). - Clears internal arrays afterward. - Does not destroy actors/components.

Usage Notes

  • Call DeactivateMinimapWidget on widget deactivation (or pool release).
  • Call ReactivateMinimapWidget on widget activation (or pool acquire).
  • If you manually clear tracked objects, ensure the widget rebinds once new background/icons register.

Debug Logging

Added MinimapDebug logs around: - MapBackground BeginPlay/EndPlay register/unregister. - MapIconComponent OnComponentCreated / OnRegister (duplicate detection).

These are useful for ordering and lifecycle diagnostics.