Skip to main content

Developer Overlay

Base:
UNDeveloperOverlay
Type:
UNGuardianDeveloperOverlay
Header File:
NexusGuardian/Public/NGuardianDeveloperOverlay.h

A live readout of the UNGuardianSubsystem suitable for embedding in a debug HUD or running as an UNEditorUtilityWidget. It surfaces three numbers — current UObject count, the baseline captured by SetBaseline(), and the value of the next threshold the count is approaching.

The class is Abstract; the plugin ships a Blueprint subclass at /NexusGuardian/WB_NGuardianDeveloperOverlay that you can wrap as an UNEditorUtilityWidget from Tools > NEXUS > Guardian, or instantiate at runtime in any UMG hierarchy.

What It Shows​

ElementSourceMeaning
Current countUNGuardianSubsystem::GetLastObjectCount()The most recent UObject count sampled in tick.
Baseline countUNGuardianSubsystem::GetBaseObjectCount()The count latched when SetBaseline() was called. Zero until baseline is set.
Next thresholdThe lowest of warning / snapshot / compare that has not yet been crossed.The number the current count is climbing toward. Falls to 0 once all three have been crossed.

Color States​

The current and next numbers change color as thresholds are crossed, mirroring the action the UNGuardianSubsystem takes:

StateCurrent / Next ColorNext Threshold Shown
Baseline set, no threshold crossedWhiteWarning threshold
Warning crossedYellowSnapshot threshold
Snapshot crossedRedCompare threshold
Compare crossedBlue0 (no further action will be taken)

Idle vs. Runtime​

The overlay runs in one of two states depending on whether a game world is active:

  • Runtime — A Game or PIE world has been initialized. The overlay binds to that world's UNGuardianSubsystem and the three numbers reflect its live state.
  • Idle — No game world is active (e.g. main menu, editor between PIE sessions). The count container is hidden and a banner reads Only Available At Runtime.

The overlay subscribes to OnPostWorldInitialization and OnWorldBeginTearDown and re-binds on its own — there is no manual setup required after the widget is constructed. When multiple Game/PIE worlds are active simultaneously, all of their subsystems are tracked but only the first one's counts are displayed.

tip

The overlay is purely a reader — it does not call SetBaseline() or alter any thresholds. Configure thresholds in Project Settings, then call SetBaseline() from gameplay (or via the N.Developer.CacheSnapshot console command for ad-hoc use) when you want monitoring to start.