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
DeactivateMinimapWidgeton widget deactivation (or pool release). - Call
ReactivateMinimapWidgeton 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.