Tala Esenlikler

Initial UE 5.7 release

Widget Payloads

Use widget payload objects to choose prompt widget classes and apply project-specific widget data.

Interaction Framework 1.0.0 UE5.7

Payload Role

UInteractionRuntimeWidgetPayload is an instanced object that participates in widget selection and widget setup. It is authored on target definition content rather than on the widget itself, so a point, variant, or linked group can choose a custom prompt widget without changing the global UI manager settings.

Use payloads when the presentation depends on authored content. A terminal can use a terminal prompt widget, a lock can use a lock status widget, and a co-op lever can use a participant prompt widget. The target definition owns the payload because the target definition owns the authored interaction identity.

Where Payloads Are Authored

FInteractionRuntimePointDefinition has a point-level widget payload. FInteractionRuntimeVariantDefinition has a widget payload override. FInteractionRuntimeLinkedGroupDefinition has a shared widget payload for linked surfaces. Use the narrowest layer that matches the content: point payload for a physical surface, variant payload for a state-specific widget, linked-group payload for shared surfaces.

Point payloads are useful for one special socket or interaction zone. Variant payloads are useful when locked, unlocked, powered, or multiplayer states need different widgets. Linked-group payloads are useful when several linked points should all resolve the same widget and setup data.

Choosing A Widget Class

Set Widget Class Override for simple asset-based selection, or override ResolveWidgetClass when the widget class depends on FInteractionRuntimeRequirementContext. A locked state can resolve a lock widget, a multi-participant point can resolve a group widget, and a story interaction can resolve a custom UI flow-style widget.

Widget payload override classes should resolve widgets derived from UInteractionUIWidgetBase when they are used by the framework prompt path. Editor validation checks payload widget class overrides and warns when an override cannot load or does not derive from the expected widget base.

The bundled pickup example uses WB_PickUpInteraction as a custom item pickup widget selected by a widget payload override. Use that example when you need a specific interaction to override the project default widget without changing every other prompt.

Applying Payload Data

Override ApplyPayloadToWidget to push project-specific data into a created widget. The function receives the widget instance and requirement context. Use it to set Blueprint variables, theme identifiers, display assets, localized title keys, icons, rarity colors, station names, or lightweight data needed by the widget.

Keep authority-owned gameplay state in the runtime target and execution systems. Payloads are for UI setup. A payload can tell a widget which icon to show; it should not grant the reward, unlock the door, or change the target variant.

Widget Base Events

A widget derived from UInteractionUIWidgetBase can combine payload setup with runtime events. Payload setup supplies authored or project-specific widget data. Widget base events supply changing runtime data such as projection, prompt entries, controls, progress, outcome, route projection, paging, and payload changes.

Payload Versus Prompt Provider

A prompt provider decides text and structured prompt parts. A widget payload chooses/configures the widget. If the only difference is copy, use a prompt provider. If the widget class, icons, layout, or custom widget variables change, use a payload. Many advanced prompts use both: a provider for text and a payload for presentation data.

Build Checklist

  • Use global UI settings for the normal widget class.
  • Add a point payload when one surface needs special presentation.
  • Add a variant payload when the widget changes with interaction state.
  • Add a linked-group payload when several surfaces should share one widget setup.
  • Keep payload data visual and presentation-focused.
  • Confirm custom widget classes derive from UInteractionUIWidgetBase for the framework UI path.