Tala Esenlikler

Initial UE 5.7 release

Flow Guards

Keep prompt presentation stable while a custom UI transition finishes after state-changing command execution.

Interaction Framework 1.0.0 UE5.7

Purpose

A flow guard is a per-interactor presentation guard for custom UI flows that need a controlled transition after command execution changes the interaction surface. While a guard is active, the interactor keeps the current presentation stable and blocks prompt-driven activation until Blueprint or widget code ends the guard.

When To Use It

Use a flow guard before an execution action disables the last visible command, changes state so the active page becomes empty, leaves the currently projected variant, or otherwise makes a custom widget lose the surface it was rendering. The guard gives the widget a start event so it can close, animate, or clean up on its own lifecycle.

Command-Driven Setup

  1. Add Interaction Action Begin Flow Guard before the state-changing execution action.
  2. Set a stable Reason, such as InteractionFlow, Inspection, or ModalFlow.
  3. Optionally set EventTag, such as Flow.Completed or Flow.Cancelled, when one widget handles multiple endings.
  4. Bind the owning widget or UI controller to OnInteractionFlowGuardStarted.
  5. When the widget transition finishes, call EndInteractionFlowGuard with the same reason.

Blueprint Helpers

Use GetInteractionInteractor to bind interactor events from a widget. Use the Blueprint library helpers to begin, end, clear, or query guards when the graph has only a world context.

What A Guard Does Not Do

A flow guard is not a delayed requirement and does not make failed commands valid. Authority validation, requirements, cooldowns, disabled states, and target replication remain authoritative. The guard only gives local presentation code a stable lifecycle boundary.

Networking Notes

Flow guard state is owned by the interactor and replicated to the owning client only. That keeps the event local to the player UI that needs to react. It does not broadcast UI transition details to unrelated clients.

Failure Diagnosis

  • No event fires: verify the widget is bound to the same interactor that owns the prompt.
  • The widget never returns to normal: verify EndInteractionFlowGuard is called for the same reason.
  • Prompts are still visible during the transition: combine the guard with prompt suppression when the transition should hide generated prompts.
  • Activation still fails after the guard ends: inspect requirements and execution actions; the guard does not override runtime validity.