Interaction Engine Documentation

Slot reference

Slot fields and nested settings.

A slot is one actionable operation on an interactable: open, pick up, hold, damage, toggle, mash, or any custom gameplay action you bind to the slot events. This page documents the authored slot settings, the replicated runtime state, and the display data used by widgets and input glyphs.

Important: author slot definitions in the Slots array, but do not treat that array as your mutable runtime state after BeginPlay. Runtime enable/disable, cooldown, health, blocking, and toggle state are tracked separately and replicated through the component's slot runtime state.

Slot definition versus runtime state

Slot definition

The authored data: SlotID, InteractionType, prompt text, input action, hold duration, damage values, conditions, cooldown rules, behavior, and feedback assets.

Runtime state

The live state: enabled, blocked, cooldown, toggle state, current health, hit count, and cooldown timing. Use the provided Blueprint functions to change this state at runtime.

Interaction types

TypeBehaviorPrimary settings
SimpleCompletes from a single press.Display, Conditions, Cooldown, Behaviour, Feedback.
HoldRequires the input to remain active until the hold duration is reached.Hold, Display, Conditions, Feedback.
MultiHitDamage-based interaction. Each hit reduces slot health until completion.MultiHit, Feedback, damage type/multiplier setup.
ToggleSwitches between active and inactive states.Display, Conditions, Cooldown, Behaviour, Feedback.
ButtonMashRequires repeated presses within a timeout window.ButtonMash, Display, Conditions, Feedback.

Core slot fields

FieldWhat it doesNotes
SlotIDUnique identifier for the slot inside the interactable.Use stable, readable IDs such as Open, Harvest, Damage, or Talk. Widgets and Blueprint calls use this ID.
InteractionTypeSelects the runtime behavior model for the slot.Determines which nested settings matter for execution.
SelectionPriorityPriority used when multiple slots on the same target can be selected.Higher values are preferred by automatic slot selection.
DisplayPrompt, hint, fallback key label, and Enhanced Input action.Feeds the focus widget, row widgets, and glyph resolution.
HoldSettings used by Hold mode.Ignored by other interaction types.
MultiHitSettings used by MultiHit mode.Ignored by other interaction types.
ButtonMashSettings used by ButtonMash mode.Ignored by other interaction types.
ConditionsAccess restrictions and concurrency checks.Evaluated before the slot can execute.
CooldownTemporary slot lockout after use.Used for repeat-use timing.
BehaviourOutcome behavior such as delayed destruction or automatic triggering.Applies object-side behavior after interaction logic.
FeedbackSound, Niagara, and network delivery settings for feedback.Lets you configure audiovisual feedback without rewriting slot logic.

Display settings

Display settings are used by focus widgets, row widgets, and the input glyph system.

FieldWhat it doesNotes
PromptMain action text shown in the prompt widget.Example: Open, Talk, Harvest, Break.
HintSecondary contextual text.Useful for requirements, consequences, or short instructions.
KeyLabelLegacy/fallback text label.Used when InputAction is not set, Enhanced Input data is unavailable, or no glyph can be resolved.
InputActionEnhanced Input action associated with this slot.Preferred source for resolving the current key, button, or glyph. Set this for keyboard, mouse, and gamepad-aware prompts.
Recommended: set Display.InputAction for every player-facing slot. Use KeyLabel only as a text fallback, not as the primary input binding source.

Hold settings

FieldWhat it doesNotes
HoldDurationDuration that input must remain active before completion.Use small values for quick interactions and longer values for heavy or deliberate actions.
bResetProgressOnCancelResets hold progress when the player releases early.Disable only when partial progress should persist across cancelled attempts.

Multi-hit settings

FieldWhat it doesNotes
MaxHealthTotal durability that must be removed before completion.Used as the starting health for damage-driven slots.
DamagePerHitDefault progress/damage applied by each hit.Used when the interactor does not provide an override or damage-type-specific multiplier.
HitResetTimeoutOptional timeout that resets the hit sequence when exceeded.Use 0 when hit progress should not reset by time.
DamageMultipliersPer-damage-type modifiers for hit effectiveness.Useful for tools, weapons, or elemental damage. This tuning data is intentionally not replicated as a nested TMap.

Button mash settings

FieldWhat it doesNotes
ButtonMashCountNumber of presses required for completion.Defines how many repeated presses are needed.
ButtonMashTimeoutTime limit for completing the press sequence.If the player does not finish in time, the interaction fails or resets according to runtime logic.
MinServerMashIntervalAuthority-side anti-spam guard for mash RPCs.This is not a UX delay. It prevents modified clients from completing a mash by sending many server requests in one frame.

Condition settings

FieldWhat it doesNotes
RequiredInteractorTagsName-based tags that must be satisfied by the interactor.The interactor can satisfy these through the requirement provider interface, additional interactor tags, or editor fallback actor tags in non-shipping builds.
RequiredInteractorGameplayTagsGameplay tags that must all be present on the interactor.Use this when your project already uses Gameplay Tags for abilities, items, states, or permissions.
MaxSimultaneousInteractorsMaximum number of players allowed to use the slot concurrently.Relevant for multiplayer and co-op interactions. Set to 1 for exclusive use.

Cooldown settings

FieldWhat it doesNotes
bHasCooldownEnables cooldown tracking for the slot.The duration and initial cooldown fields are ignored when this is disabled.
CooldownDurationDuration of the cooldown after slot use.Defines how long the slot remains unavailable.
bInitiallyOnCooldownStarts play with the slot already on cooldown.Use when the slot should unlock after a delay instead of being immediately available.

Behaviour settings

FieldWhat it doesNotes
bDestroyOwnerOnCompletedDestroys the owner actor after the slot completes.Common for pickups or disposable world objects.
DestroyDelayDelay before owner destruction is applied.Useful when an effect, animation, sound, or notification should play before removal.
AutoInteractDistanceExecutes the slot automatically when the interactor enters range.Used for trigger-like actions or automatic pickups. A value of 0 disables auto-interaction.

Feedback settings

Feedback settings allow common sound and Niagara responses to be configured directly on the slot. Delivery settings control whether the feedback follows the normal event scope or is limited to the interacting client.

FieldWhat it doesNotes
SoundOnInteractSound played on each interaction event.Simple/Toggle: press. Hold: start. MultiHit: each hit. ButtonMash: first press.
ParticleOnInteractNiagara system spawned on each interaction event.Useful for contact, sparks, impact, or start feedback.
InteractFeedbackDeliveryNetwork delivery scope for start/hit feedback.UseEventScope follows the normal event scope. InteractingClientOnly plays only for the player who interacted.
SoundOnCompletedSound played when the slot completes successfully.Used for confirmation and success feedback.
ParticleOnCompletedNiagara system spawned when the slot completes successfully.Used for reward, break, collection, or completion effects.
CompletedFeedbackDeliveryNetwork delivery scope for completion feedback.Use client-only delivery for private UI-like feedback; use event scope for world feedback other players should perceive.
SoundOnFailedSound played when the interaction fails before completion.Useful for button mash failure, validation failure, or failed requirements.
ParticleOnFailedNiagara system spawned when the interaction fails before completion.Use sparingly for failure feedback that should appear in the world.
SoundOnCancelledSound played when an active interaction is cancelled.Common for released hold interactions or interrupted interactions.
ParticleOnCancelledNiagara system spawned when an active interaction is cancelled.Useful when cancellation should have visible feedback.
CancelledFeedbackDeliveryNetwork delivery scope for cancellation feedback.Same options as the other delivery fields.

Feedback delivery modes

ModeMeaningUse when
UseEventScopeFeedback follows the normal interaction event scope.The sound or effect represents something that happened in the world.
InteractingClientOnlyFeedback is delivered only to the player performing the interaction.The feedback is private, UI-like, or should avoid noise for other players.

Runtime state fields

These fields expose the slot's current runtime state to Blueprint. They are typically read during UI updates, state inspection, or gameplay logic. Change them through component functions rather than editing authored slot data directly.

FieldWhat it tells youWhy it matters
SlotIDThe runtime state entry's slot identifier.Used to match runtime state to a slot definition or widget row.
bIsEnabledWhether the slot is currently enabled.Reflects changes made through enable/disable control.
bIsBlockedWhether the slot is currently blocked.Useful for runtime gating and blocked UI states.
BlockedReasonCurrent human-readable reason for the blocked state.Can be surfaced directly to the player UI.
HoldProgressCurrent progress value for hold interactions.Useful for progress bars and radial UI.
CurrentHitCountCurrent hit count in a multi-hit flow.Useful for repeated impact UI and progression logic.
CurrentHealthRemaining health or durability in a multi-hit slot.Useful for breakable nodes or damage-driven interactions.
bIsToggleActiveWhether a toggle slot is currently active.Useful for switches, lights, and stateful objects.
bIsOnCooldownWhether the slot is currently in cooldown.Useful for disabled prompt states and timing checks.
CooldownProgressNormalized cooldown progress.Useful for radial or bar-based cooldown presentation.
CooldownDurationDeterministic cooldown length replicated for presentation.Clients can derive progress without relying on per-tick replication.
CooldownStartServerTimeServer-time timestamp for cooldown start.Used to keep cooldown UI consistent in multiplayer.

Interaction data payloads

Interaction events expose FInteractionData. This includes the slot ID, transaction ID, interactor, target actor, hit data, hold progress, hit count, damage data, and optional payload data.

FieldStatusNotes
CustomPayloadLegacyKept for Blueprint compatibility. Prefer typed payloads for new gameplay.
TypedPayloadRecommendedUse FInteractionPayload when you need structured gameplay data instead of a plain string.
TransactionIdCurrentIdentifies one server-validated active interaction. Do not use SlotID alone to identify lifecycle messages.

Blueprint authoring checklist