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.
| Variable | What it does | When to change it |
TraceMethod | Selects 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. |
TraceOrigin | Selects 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. |
TraceDistance | Maximum distance used by focus traces. | Adjust to match the expected interaction range of the player character or tool. |
TraceRadius | Radius used by sphere-based trace methods. | Increase for more forgiving targeting; decrease for more precise targeting. |
BoxHalfExtent | Half-size used by box trace methods. | Relevant only when the selected trace method uses a box volume. |
TraceChannel | Collision channel used by client/local focus traces and icon visibility checks. | Change when your interactables use a project-specific collision channel. |
ServerValidationTraceChannel | Collision channel used by authority-side line-of-sight validation. | Use when server validation should test a different collision channel than local focus tracing. |
bTraceComplex | Enables complex collision for traces. | Use only when simple collision is not accurate enough for the target shape. |
TraceRate | Interval between automatic focus traces. 0 means every tick. | Raise this value when you want less frequent polling for performance reasons. |
bAutoTrace | Controls whether focus traces run automatically. | Disable only when you will call ForceTrace manually from Blueprint or code. |
TraceSocketName | Socket used when TraceOrigin is Socket. | Set this to the hand, weapon, or tool socket that should act as the trace origin. |
MaxMultiTraceTargets | Maximum number of candidates kept by multi-target trace methods. | Increase when cycling between many nearby interactables should be possible. |
ViewAngleDegrees | Half-cone angle used by ViewAngle and ClosestInRange. | Use smaller values for strict facing requirements, larger values for more forgiving target selection. |
TraceStartOffset | Offset applied to actor/socket trace starts. | Use when traces begin inside the capsule, mesh, or held object. |
bDrawDebug | Draws 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.
| Variable | What it does | When to change it |
IconDisplayRadius | Radius used to gather nearby interactables that can show distant indicators. | Set to 0 to disable nearby icon discovery. |
MaxIconTargets | Maximum number of nearby icon targets shown at once. | Lower it for cleaner UI; raise it when discoverability is more important than visual density. |
bIconRequiresLineOfSight | Requires a visibility check before a distant indicator is shown. | Disable when icons should remain visible through walls or occluding meshes. |
Interaction and validation
| Variable | What it does | When to change it |
HitDamageAmount | Default 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. |
ServerValidationDistanceTolerance | Extra distance allowed when the server validates interaction requests. | Increase carefully for network tolerance; avoid values that allow interactions from unrealistic distances. |
InteractorTags | Replicated name tags owned by the interactor. | Use for slot requirements such as key ownership, tool type, or simple access permissions. |
InteractorGameplayTags | Replicated Gameplay Tags owned by the interactor. | Use when your project already uses Gameplay Tags for abilities, items, equipment, or permissions. |
CurrentDamageType | Server-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.
| Variable | What it does | When to change it |
FoliageDatabase | Database asset used to resolve foliage interaction definitions. | Use when foliage interactions are authored through the plugin database asset workflow. |
FoliageDataTable | DataTable alternative for foliage interaction definitions. | Use when your project prefers tabular data for foliage entries. |
FoliageTraceRadius | Fallback sweep radius used by foliage detection. | Increase when tiny or thin foliage instances are hard to acquire. |
FoliageServerValidationTolerance | Position 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 state | What it returns | Notes |
GetFocusedInteractable | The current actor-based InteractableComponent. | Returns null while focusing only virtual foliage. |
GetFocusedActor | The actor that owns the focused interactable. | Useful for project-specific UI or actor queries. |
HasFocusedInteractable | Whether an actor interactable is focused. | Does not mean virtual foliage is focused. |
GetCurrentFocusData | Unified UI data for the current focus target. | Preferred for widgets because it works with actor interactables and virtual foliage. |
GetCurrentVirtualFocus | The current FVirtualFoliageFocus. | Use for foliage-specific diagnostics or custom UI behavior. |
IsFocusingVirtualFoliage | Whether the current focus is a virtual foliage instance. | Useful when the widget needs to branch between actor and foliage presentation. |
GetMultiTraceResults | The candidates found by the last multi-trace pass. | Used by custom target selectors and debug UI. |
GetActiveFoliageProxies | Foliage proxy actors currently tracked by this interactor. | Useful for custom save, debug, or lifecycle logic. |
GetCurrentInteractionData | Builds interaction data for the current focus and slot. | Useful for UI previews, notifications, and debug output. |
GetHoldProgress | Current hold progress for a slot. | Use for widgets that are not bound to InteractionFocusWidgetBase. |
GetButtonMashProgress | Current mash progress for a slot. | Use for custom mash UI. |
CanInteractWithFocused | Whether the current focus target can be interacted with. | Checks the currently selected/default slot. |
CanInteractWithSlot | Whether a specific slot can be interacted with. | Use when your UI displays several slots at the same time. |
Interaction entry points
| Function | Use it for | Important behavior |
StartInteract | Tap, hold, mash, and other slot starts. | Uses the current focus target and optional SlotID. In multiplayer, it sends a validated server request. |
StartInteractWithPayload | Starting 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. |
StopInteract | Ending hold-style or sustained interactions. | Call on input release for hold interactions. |
StopInteractWithPayload | Stopping with a legacy string payload. | Use only when your interaction needs to echo small legacy payload data. |
SendHit | Damage, chopping, mining, breaking, and MultiHit interactions. | The optional damage override is prediction-oriented; the server resolves authoritative damage from the slot/context. |
SendHitWithPayload | Hit interactions with a legacy string payload. | Payload size is validated. Gameplay authority remains on the server. |
StopAllInteractions | Emergency cleanup or state reset. | Useful when disabling the player, changing modes, opening menus, or cleaning up custom interaction state. |
SetDamageType | Changing the current damage/tool type. | Authority-only. Use when different weapons/tools should satisfy different slot requirements. |
SetInteractorTags | Replacing name tags on the interactor. | Authority-only and replicated. |
SetInteractorGameplayTags | Replacing 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.
| Event | Scope | Use it for |
OnInteractionPredicted_LocalOnly | Owning client/local feedback. | Play immediate button press feedback, predicted UI response, or light cosmetic feedback. |
OnInteractionStarted_Confirmed | Server-confirmed start. | Start authoritative gameplay reactions or replicated visual state. |
OnInteractionCompleted_Confirmed | Server-confirmed completion. | Grant rewards, remove resources, open doors, update quests, or trigger final gameplay outcomes. |
OnInteractionCancelled_Confirmed | Server-confirmed cancellation. | Reset gameplay state after hold release, interruption, or authority-side cancellation. |
OnInteractionRejected_LocalOnly | Owning client rejection feedback. | Display why a request was denied, such as out of range, cooldown, invalid slot, blocked slot, or no line of sight. |
OnInteractionStarted | Legacy compatibility. | Kept for existing Blueprints. Prefer OnInteractionStarted_Confirmed for new logic. |
OnInteractionCompleted | Legacy compatibility. | Kept for existing Blueprints. Prefer OnInteractionCompleted_Confirmed for new logic. |
OnInteractionFailed | Failure/cancel-style result. | Useful for generic failure handling, but prefer the more specific confirmed/rejected events when possible. |
Progress and hit events
| Event | When it fires | Recommended use |
OnHoldProgressUpdated | While a hold interaction is active. | Update progress bars for a specific SlotID. |
OnButtonMashProgressUpdated | While a mash interaction is active. | Update mash UI and progress indicators. |
OnButtonMashFailed | When mash interaction fails to start or times out. | Play failure feedback or reset the mash widget. |
OnHitSent | When the local hit input is sent. | Use only for predicted/local hit feedback such as input animation or impact anticipation. |
OnHitConfirmed | When the server confirms the hit. | Use for confirmed damage feedback, resource state, and replicated hit outcomes. |
Focus and selection functions
| Function | Use it for | Notes |
SetTraceActive | Enabling/disabling all focus tracing. | Useful during menus, cutscenes, UI-only mode, or player disable states. |
ForceTrace | Running one manual focus update. | Use when bAutoTrace is disabled or when you need an immediate refresh after changing settings. |
SetTraceMethod | Changing trace strategy at runtime. | Useful for switching between exploration, combat, lock-on, or tool modes. |
SetTraceDistance | Changing interaction range at runtime. | Useful for temporary buffs, tools, or context-sensitive interaction range. |
SetForcedFocus | Forcing one interactable to be focused. | Use for scripted moments, tutorials, or targeting systems. Clear it when normal tracing should resume. |
ClearForcedFocus | Returning to normal trace-based focus. | Call after a scripted forced interaction is no longer needed. |
GetOrderedFocusCandidates | Reading valid focus candidates in priority order. | Useful for custom selection UI and target cycling. |
GetDisplaySlotsForFocusedTarget | Getting focused slots in display/authored order. | Best for UI rows, because it preserves authored slot order. |
GetOrderedSlotsForFocusedTarget | Getting focused slots in selection-priority order. | Best for choosing the default slot to execute. |
GetFocusedSlotID | Reading the currently selected/default slot. | Use to highlight the active row or pass the selected slot to input handlers. |
CycleFocusTarget | Moving manual selection between focus candidates. | Useful for gamepad navigation or target cycling. |
CycleFocusedSlot | Moving manual selection between slots on the focused target. | Useful when the same object has several possible interactions. |
ResetManualFocusSelection | Clearing manual target selection. | Use when the target list changes or the player exits selection mode. |
ResetManualSlotSelection | Clearing manual slot selection. | Use when the focused target or available slots change. |
Focus and foliage events
| Event | When it fires | Use it for |
OnFocusedInteractableChanged | When the actor-based focused interactable changes. | Actor-specific focus logic. For unified UI, prefer OnFocusChanged. |
OnFocusChanged | Whenever unified focus data changes. | Recommended event for focus widgets because it supports actor interactables and virtual foliage. |
OnMultipleInteractablesFound | When multi-target tracing finds several candidates. | Custom target selection and debug visualization. |
OnInRangeInteractablesChanged | When nearby icon targets change. | Distant indicators, minimap markers, and nearby prompts. |
OnVirtualFoliageFocused | When a foliage instance becomes the current virtual focus. | Foliage-specific UI or diagnostics before the proxy actor is spawned. |
OnVirtualFoliageUnfocused | When 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.
| Function | Use it for | Notes |
CaptureActiveFoliageProxySnapshots | Capturing currently active foliage proxy state from this interactor. | Useful for custom save systems or debug tools. |
RestoreFoliageProxySnapshots | Restoring multiple foliage proxy snapshots. | Use only when you intentionally manage snapshots per interactor. |
RestoreFoliageProxySnapshot | Restoring 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 event | Purpose | Notes |
SendInteractionNotification | Sends a notification payload to this interactor's owning client. | The UI decides whether to show a toast, modal, HUD message, or custom widget. |
GetLastInteractionNotification | Returns the most recent notification payload. | Useful for UI binding or debugging. |
OnInteractionNotificationReceived | Fires 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 field | Why it is deprecated | Preferred approach |
FocusOutlineParameterCollection | MPCs are global and do not scale well for per-target outline state. | Use per-component CustomDepth/Stencil outline settings. |
FocusOutlineEnabledParameter | Global scalar state is not target-specific. | Use the interactable outline settings. |
FocusOutlineColorParameter | Global vector state is not target-specific. | Use per-target outline color settings. |
FocusOutlineThicknessParameter | Global scalar state is not target-specific. | Use the outline material/stencil path configured by your project. |
bResetOutlineParametersWhenNoFocus | Only applies to the deprecated MPC workflow. | No action is usually needed with the current per-component outline path. |
Blueprint checklist
- Bind input press to
StartInteract or SendHit, depending on the slot type.
- Bind input release to
StopInteract for hold interactions.
- Pass a specific
SlotID when your focused target has multiple interaction rows.
- Use
GetDisplaySlotsForFocusedTarget for widget rows and GetOrderedSlotsForFocusedTarget for priority-based execution.
- Use
OnInteractionPredicted_LocalOnly only for instant local feedback.
- Use
OnInteractionCompleted_Confirmed for permanent gameplay outcomes.
- Use
OnFocusChanged and GetCurrentFocusData for unified actor/foliage UI.
- Use
OnHitConfirmed instead of OnHitSent for authoritative hit results.
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