1
Unreal Engine tracking UI and HUD components for moving them
k4sh44 edited this page 2026-02-23 22:14:58 +00:00
We can track and log high candidates for manipulating UI and HUD offsets.
In ProcessEvent hook, the following code will track and store candidates before they can be logged
if (object && func && object->IsA(UUserWidget::StaticClass())) {
std::string funcName = func->GetName();
if (funcName == "Construct") TrackWidgetConstruct((SDK::UUserWidget*)object);
if (funcName == "Destruct") TrackWidgetDestruct((SDK::UUserWidget*)object);
}
Then, in a fix function togglable, we can dump and log all the results.
It's really important to dump and log the output after the UI or HUD has been displayed in order to track the relevant widgets.
This tool will only track for objects that inherit from UUserWidget class.
Some relevant widgets members of class may inherit from UWidget or other class and won't be detected.**
static void FogFixEnabled() {
if(g_Fog_fix_enabled)
DumpUIAnalysis(logger);
... some other code
Example of output logging :
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Class: StartGameMenuWidget_BP_C
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Type : Menu UI
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Root Type : CanvasPanel
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Construct : 1
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Destruct : 1
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Persistent : No
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] InViewport : Yes
[2026-02-23 21:15:29.196] [Cronos : The New Dawn] [info] Outer : SHGameInstance_BP_C
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Class: ExtendedTutorial_Widget_C
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Type : Unclassified
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Root Type : Overlay
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Construct : 4
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Destruct : 3
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Persistent : Yes
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] InViewport : No
[2026-02-23 22:38:43.715] [Cronos : The New Dawn] [info] Outer : WidgetTree
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Class: WBP_UpgradeMenuWidget_C
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Type : Menu UI
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Root Type : Overlay
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Construct : 1
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Destruct : 1
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Persistent : No
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] InViewport : Yes
[2026-02-23 22:38:43.716] [Cronos : The New Dawn] [info] Outer : SHGameInstance_BP_C