AgentStack
SKILL verified MIT Self-run

Ue5 Ui Umg Slate

skill-teixasalone-unrealengine5-skills-ue5-ui-umg-slate · by teixasalone

UE5.6/UE5.7 UI development workflow using UMG and Slate integration. Use when requests involve Widget Blueprint setup, Slate host widgets, lifecycle binding, input and focus handling, tooltip behavior, or viewport clamping logic.

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-teixasalone-unrealengine5-skills-ue5-ui-umg-slate

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Ue5 Ui Umg Slate? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Quick Start

  • Identify whether feature belongs to UMG, Slate, or hybrid bridge.
  • Define data source component/subsystem and UI binding point.
  • Output widget tree intent and runtime binding sequence.

UE5.7 API Anchors

  • UMG lifecycle and viewport anchors:
  • UUserWidget::NativeConstruct(), UUserWidget::NativeDestruct()
  • UUserWidget::AddToViewport(...)
  • UWidget::RemoveFromParent()
  • UWidget::SetVisibility(...)
  • UWidget::SetKeyboardFocus()
  • UMG input mode anchors:
  • UWidgetBlueprintLibrary::SetInputMode_UIOnlyEx(...)
  • UWidgetBlueprintLibrary::SetInputMode_GameAndUIEx(...)
  • UWidgetBlueprintLibrary::SetInputMode_GameOnly(...)
  • UMG/Slate bridge anchors:
  • UWidget::TakeWidget() for Slate bridge hand-off
  • SCompoundWidget, SLATE_BEGIN_ARGS(...)
  • FSlateApplication::SetKeyboardFocus(...), SetUserFocus(...)
  • Viewport geometry anchor:
  • UGameViewportClient::GetViewportSize(...)

UI Stage Contract

  • Every UI task must define:
  • UI layer ownership (UMG-only, Slate-only, or hybrid bridge)
  • data source and update trigger (pull, push, event, or mixed)
  • focus and input ownership transition
  • viewport-safe placement behavior for tooltip/popup
  • teardown/cleanup path for unbinds and widget removal
  • If any item is missing, the UI implementation is incomplete.

Workflow

1) UI Architecture Decision

  • Select UMG for standard game HUD/menu work.
  • Select Slate for custom rendering/input behavior that UMG cannot express cleanly.
  • Select hybrid when a UWidget host needs to embed custom Slate content.

2) Construct and Lifetime

  • Initialize widget bindings in construct/init path.
  • Register event listeners once and store handles when required.
  • Define destruct/unregister logic explicitly to avoid stale bindings.

3) Data Binding and Refresh

  • Bind runtime data from one authoritative source (subsystem/component/view model).
  • Use event-driven refresh for high-frequency data where possible.
  • Keep display widgets read-only for gameplay state mutation.

4) Input and Focus Ownership

  • Set input mode deliberately when opening/closing UI contexts.
  • Set keyboard/user focus to intended root widget.
  • Ensure focus return path back to gameplay on close.

5) Tooltip/Popup Viewport Clamp

  • Compute desired tooltip position from anchor and cursor/widget geometry.
  • Clamp final placement to viewport bounds to avoid off-screen rendering.
  • Debounce high-frequency hover updates to avoid flicker.

6) Remove and Cleanup

  • Remove widget from parent or viewport on close.
  • Clear timers/delegates and transient references.
  • Confirm no duplicate instances persist after reopen.

Constraints

  • Keep UI rendering and gameplay state mutation separated.
  • Avoid direct gameplay writes from passive display widgets.
  • Clamp tooltip and popup placement to viewport bounds.
  • Prefer deterministic input ownership and focus transitions.
  • Keep Slate-only code isolated behind clear bridge boundaries.
  • Do not rely on per-frame polling if event-driven updates are available.

Failure Handling

  • Symptom: widget appears but never refreshes.
  • Locate: construct timing, binding registration, source event firing.
  • Fix: bind after source readiness and verify event subscription path.
  • Symptom: widget refreshes once then stops.
  • Locate: lost delegate handle or widget recreated without rebind.
  • Fix: rebind on construct and unbind on destruct; prevent duplicate create/destroy churn.
  • Symptom: input is swallowed by UI unexpectedly.
  • Locate: current input mode and focused widget path.
  • Fix: enforce intended input mode and set explicit focus target.
  • Symptom: keyboard/controller navigation breaks after popup open.
  • Locate: focus transfer and return path.
  • Fix: store previous focus owner and restore on popup close.
  • Symptom: tooltip flickers near screen edges.
  • Locate: oscillating clamp output and hover source jitter.
  • Fix: debounce hover updates and clamp with stable viewport metrics.
  • Symptom: memory growth after repeated open/close.
  • Locate: stale delegate/timer/reference retention.
  • Fix: clear bindings and transient refs in teardown.

UE5.6 / UE5.7 Compatibility Notes

  • UMG lifecycle, input mode, and Slate focus APIs listed above are stable in UE5.6/UE5.7.
  • Prefer Enhanced Input + explicit UI input mode ownership in both versions.

Escalation

  • Escalate when behavior requires engine-level Slate customization beyond project scope.
  • Escalate when UI architecture conflicts with existing CommonUI framework decisions.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.