Interaction Engine Documentation

Interactor reference

Interactor Component field reference.

The interactor component owns local target acquisition, focus data, interaction input entry points, server-facing requests, nearby icon gathering, notification routing, and foliage virtual focus.

Current architecture: focus and UI are local for responsiveness, while interaction results are server-authoritative in multiplayer. For gameplay reactions, prefer the confirmed events. Use predicted/local-only events only for immediate input feedback.

Trace and focus acquisition

These fields control how the interactor finds the current target. The selected trace method produces either a focused actor interactable, a list of focus candidates, or a virtual foliage focus when foliage support is enabled.

VariableWhat it doesWhen to change it
TraceMethodSelects the focus algorithm: line, sphere, box, multi trace, closest-in-range, or view angle.Use line traces for precise prompts, sphere/box traces for forgiving targeting, and multi/closest methods for games with several nearby interactables.
TraceOriginSelects whether tracing begins from the camera, actor root, or a socket.Use Camera for standard player view traces, Actor for top-down/character-centered selection, and Socket for hand/tool-based interactions.
TraceDistanceMaximum distance used by focus traces.Adjust to match the expected interaction range of the player character or tool.
TraceRadiusRadius used by sphere-based trace methods.Increase for more forgiving targeting; decrease for more precise targeting.
BoxHalfExtentHalf-size used by box trace methods.Relevant only when the selected trace method uses a box volume.
TraceChannelCollision channel used by client/local focus traces and icon visibility checks.Change when your interactables use a project-specific collision channel.
ServerValidationTraceChannelCollision channel used by authority-side line-of-sight validation.Use when server validation should test a different collision channel than local focus tracing.
bTraceComplexEnables complex collision for traces.Use only when simple collision is not accurate enough for the target shape.
TraceRateInterval between automatic focus traces. 0 means every tick.Raise this value when you want less frequent polling for performance reasons.
bAutoTraceControls whether focus traces run automatically.Disable only when you will call ForceTrace manually from Blueprint or code.
TraceSocketNameSocket used when TraceOrigin is Socket.Set this to the hand, weapon, or tool socket that should act as the trace origin.
MaxMultiTraceTargetsMaximum number of candidates kept by multi-target trace methods.Increase when cycling between many nearby interactables should be possible.
ViewAngleDegreesHalf-cone angle used by ViewAngle and ClosestInRange.Use smaller values for strict facing requirements, larger values for more forgiving target selection.
TraceStartOffsetOffset applied to actor/socket trace starts.Use when traces begin inside the capsule, mesh, or held object.
bDrawDebugDraws trace debug visualization.Enable only while tuning focus behavior or diagnosing targeting issues.

Display and nearby icons

The display group is separate from the focused target. It is used to discover nearby interactables that may show distant indicators, minimap-style markers, or lightweight world icons.

VariableWhat it doesWhen to change it
IconDisplayRadiusRadius used to gather nearby interactables that can show distant indicators.Set to 0 to disable nearby icon discovery.
MaxIconTargetsMaximum number of nearby icon targets shown at once.Lower it for cleaner UI; raise it when discoverability is more important than visual density.
bIconRequiresLineOfSightRequires a visibility check before a distant indicator is shown.Disable when icons should remain visible through walls or occluding meshes.

Interaction and validation

VariableWhat it doesWhen to change it
HitDamageAmountDefault predicted hit damage used for local feedback when SendHit has no override.Relevant for MultiHit or damage-driven interactions. Authoritative hit resolution still happens on the server.
ServerValidationDistanceToleranceExtra distance allowed when the server validates interaction requests.Increase carefully for network tolerance; avoid values that allow interactions from unrealistic distances.
InteractorTagsReplicated name tags owned by the interactor.Use for slot requirements such as key ownership, tool type, or simple access permissions.
InteractorGameplayTagsReplicated Gameplay Tags owned by the interactor.Use when your project already uses Gameplay Tags for abilities, items, equipment, or permissions.
CurrentDamageTypeServer-authoritative damage type used by hit checks and damage requirements.Set on the authority when tools or weapons should satisfy different damage-type requirements.

Foliage setup fields

These fields allow the interactor to focus foliage instances before a proxy actor exists. When a matching foliage instance is detected, the interactor creates a virtual focus payload that can later be validated and converted into a foliage proxy interaction.

VariableWhat it doesWhen to change it
FoliageDatabaseDatabase asset used to resolve foliage interaction definitions.Use when foliage interactions are authored through the plugin database asset workflow.
FoliageDataTableDataTable alternative for foliage interaction definitions.Use when your project prefers tabular data for foliage entries.
FoliageTraceRadiusFallback sweep radius used by foliage detection.Increase when tiny or thin foliage instances are hard to acquire.
FoliageServerValidationTolerancePosition tolerance used by the server when matching a client foliage hit to a real instance.Increase only when foliage validation is too strict under networked play or dense foliage placement.

Runtime state access

Function or stateWhat it returnsNotes
GetFocusedInteractableThe current actor-based InteractableComponent.Returns null while focusing only virtual foliage.
GetFocusedActorThe actor that owns the focused interactable.Useful for project-specific UI or actor queries.
HasFocusedInteractableWhether an actor interactable is focused.Does not mean virtual foliage is focused.
GetCurrentFocusDataUnified UI data for the current focus target.Preferred for widgets because it works with actor interactables and virtual foliage.
GetCurrentVirtualFocusThe current FVirtualFoliageFocus.Use for foliage-specific diagnostics or custom UI behavior.
IsFocusingVirtualFoliageWhether the current focus is a virtual foliage instance.Useful when the widget needs to branch between actor and foliage presentation.
GetMultiTraceResultsThe candidates found by the last multi-trace pass.Used by custom target selectors and debug UI.
GetActiveFoliageProxiesFoliage proxy actors currently tracked by this interactor.Useful for custom save, debug, or lifecycle logic.
GetCurrentInteractionDataBuilds interaction data for the current focus and slot.Useful for UI previews, notifications, and debug output.
GetHoldProgressCurrent hold progress for a slot.Use for widgets that are not bound to InteractionFocusWidgetBase.
GetButtonMashProgressCurrent mash progress for a slot.Use for custom mash UI.
CanInteractWithFocusedWhether the current focus target can be interacted with.Checks the currently selected/default slot.
CanInteractWithSlotWhether a specific slot can be interacted with.Use when your UI displays several slots at the same time.

Interaction entry points

FunctionUse it forImportant behavior
StartInteractTap, hold, mash, and other slot starts.Uses the current focus target and optional SlotID. In multiplayer, it sends a validated server request.
StartInteractWithPayloadStarting an interaction with a legacy string payload.The string payload exists for Blueprint compatibility. New gameplay data should prefer typed payload data when available in FInteractionData.
StopInteractEnding hold-style or sustained interactions.Call on input release for hold interactions.
StopInteractWithPayloadStopping with a legacy string payload.Use only when your interaction needs to echo small legacy payload data.
SendHitDamage, chopping, mining, breaking, and MultiHit interactions.The optional damage override is prediction-oriented; the server resolves authoritative damage from the slot/context.
SendHitWithPayloadHit interactions with a legacy string payload.Payload size is validated. Gameplay authority remains on the server.
StopAllInteractionsEmergency cleanup or state reset.Useful when disabling the player, changing modes, opening menus, or cleaning up custom interaction state.
SetDamageTypeChanging the current damage/tool type.Authority-only. Use when different weapons/tools should satisfy different slot requirements.
SetInteractorTagsReplacing name tags on the interactor.Authority-only and replicated.
SetInteractorGameplayTagsReplacing Gameplay Tags on the interactor.Authority-only and replicated.

Predicted, confirmed, and rejected events

In multiplayer, do not drive permanent gameplay from predicted events. Predicted events are for immediate local feedback. Confirmed events are the server-approved result and are the correct place for persistent gameplay logic, inventory rewards, quest state, and authoritative animations.

EventScopeUse it for
OnInteractionPredicted_LocalOnlyOwning client/local feedback.Play immediate button press feedback, predicted UI response, or light cosmetic feedback.
OnInteractionStarted_ConfirmedServer-confirmed start.Start authoritative gameplay reactions or replicated visual state.
OnInteractionCompleted_ConfirmedServer-confirmed completion.Grant rewards, remove resources, open doors, update quests, or trigger final gameplay outcomes.
OnInteractionCancelled_ConfirmedServer-confirmed cancellation.Reset gameplay state after hold release, interruption, or authority-side cancellation.
OnInteractionRejected_LocalOnlyOwning client rejection feedback.Display why a request was denied, such as out of range, cooldown, invalid slot, blocked slot, or no line of sight.
OnInteractionStartedLegacy compatibility.Kept for existing Blueprints. Prefer OnInteractionStarted_Confirmed for new logic.
OnInteractionCompletedLegacy compatibility.Kept for existing Blueprints. Prefer OnInteractionCompleted_Confirmed for new logic.
OnInteractionFailedFailure/cancel-style result.Useful for generic failure handling, but prefer the more specific confirmed/rejected events when possible.

Progress and hit events

EventWhen it firesRecommended use
OnHoldProgressUpdatedWhile a hold interaction is active.Update progress bars for a specific SlotID.
OnButtonMashProgressUpdatedWhile a mash interaction is active.Update mash UI and progress indicators.
OnButtonMashFailedWhen mash interaction fails to start or times out.Play failure feedback or reset the mash widget.
OnHitSentWhen the local hit input is sent.Use only for predicted/local hit feedback such as input animation or impact anticipation.
OnHitConfirmedWhen the server confirms the hit.Use for confirmed damage feedback, resource state, and replicated hit outcomes.

Focus and selection functions

FunctionUse it forNotes
SetTraceActiveEnabling/disabling all focus tracing.Useful during menus, cutscenes, UI-only mode, or player disable states.
ForceTraceRunning one manual focus update.Use when bAutoTrace is disabled or when you need an immediate refresh after changing settings.
SetTraceMethodChanging trace strategy at runtime.Useful for switching between exploration, combat, lock-on, or tool modes.
SetTraceDistanceChanging interaction range at runtime.Useful for temporary buffs, tools, or context-sensitive interaction range.
SetForcedFocusForcing one interactable to be focused.Use for scripted moments, tutorials, or targeting systems. Clear it when normal tracing should resume.
ClearForcedFocusReturning to normal trace-based focus.Call after a scripted forced interaction is no longer needed.
GetOrderedFocusCandidatesReading valid focus candidates in priority order.Useful for custom selection UI and target cycling.
GetDisplaySlotsForFocusedTargetGetting focused slots in display/authored order.Best for UI rows, because it preserves authored slot order.
GetOrderedSlotsForFocusedTargetGetting focused slots in selection-priority order.Best for choosing the default slot to execute.
GetFocusedSlotIDReading the currently selected/default slot.Use to highlight the active row or pass the selected slot to input handlers.
CycleFocusTargetMoving manual selection between focus candidates.Useful for gamepad navigation or target cycling.
CycleFocusedSlotMoving manual selection between slots on the focused target.Useful when the same object has several possible interactions.
ResetManualFocusSelectionClearing manual target selection.Use when the target list changes or the player exits selection mode.
ResetManualSlotSelectionClearing manual slot selection.Use when the focused target or available slots change.

Focus and foliage events

EventWhen it firesUse it for
OnFocusedInteractableChangedWhen the actor-based focused interactable changes.Actor-specific focus logic. For unified UI, prefer OnFocusChanged.
OnFocusChangedWhenever unified focus data changes.Recommended event for focus widgets because it supports actor interactables and virtual foliage.
OnMultipleInteractablesFoundWhen multi-target tracing finds several candidates.Custom target selection and debug visualization.
OnInRangeInteractablesChangedWhen nearby icon targets change.Distant indicators, minimap markers, and nearby prompts.
OnVirtualFoliageFocusedWhen a foliage instance becomes the current virtual focus.Foliage-specific UI or diagnostics before the proxy actor is spawned.
OnVirtualFoliageUnfocusedWhen the current virtual foliage focus is cleared.Hide foliage-specific UI or clear debug state.

Snapshot functions

These functions are useful when you need per-interactor access to currently active foliage proxies. For normal project-level save/load, prefer the world-level nodes documented in the Save and Persistence page.

FunctionUse it forNotes
CaptureActiveFoliageProxySnapshotsCapturing currently active foliage proxy state from this interactor.Useful for custom save systems or debug tools.
RestoreFoliageProxySnapshotsRestoring multiple foliage proxy snapshots.Use only when you intentionally manage snapshots per interactor.
RestoreFoliageProxySnapshotRestoring one foliage proxy snapshot.Returns whether the restore was accepted/applied.

Notifications

Notifications are local UI messages routed through the interactor. They are useful for messages such as missing requirements, cooldown feedback, failed interaction attempts, or custom project-specific prompts.

Function or eventPurposeNotes
SendInteractionNotificationSends a notification payload to this interactor's owning client.The UI decides whether to show a toast, modal, HUD message, or custom widget.
GetLastInteractionNotificationReturns the most recent notification payload.Useful for UI binding or debugging.
OnInteractionNotificationReceivedFires when the local interactor receives a notification.Bind your HUD or notification manager here.
Automatic widget spawning: when the notification payload contains a NotificationWidgetClass, the interactor can spawn that widget locally and pass the payload into InteractionNotificationWidgetBase.

Deprecated outline fields

The old Material Parameter Collection outline fields remain visible for compatibility, but they are deprecated. Interaction Engine now favors per-component CustomDepth/Stencil outline state from the interactable's outline settings.

Deprecated fieldWhy it is deprecatedPreferred approach
FocusOutlineParameterCollectionMPCs are global and do not scale well for per-target outline state.Use per-component CustomDepth/Stencil outline settings.
FocusOutlineEnabledParameterGlobal scalar state is not target-specific.Use the interactable outline settings.
FocusOutlineColorParameterGlobal vector state is not target-specific.Use per-target outline color settings.
FocusOutlineThicknessParameterGlobal scalar state is not target-specific.Use the outline material/stencil path configured by your project.
bResetOutlineParametersWhenNoFocusOnly applies to the deprecated MPC workflow.No action is usually needed with the current per-component outline path.

Blueprint checklist

Useful debug commands

ie.Debug.Focus 1
ie.Debug.Validation 1
ie.Debug.Net 1
ie.Debug.Transaction 1
ie.Debug.Foliage.EventTrace 1
ie.Debug.FoliageProxy 1