Skip to main content

Interaction Methods

The plugin supports multiple interaction “methods”, controlled by:

  • EEDInteractionMethod
  • FEDInteractionInfo::InteractionMethod

Single Interaction

  • Meaning: a single press triggers the interaction immediately.
  • Typical use: doors, buttons, pickups (if you handle pickup in your gameplay code).

Runtime flow:

  • Client presses Interact
  • Server validates the target
  • UEDInteractableComponent::PlayerInteracted(...) is called
  • OnInteractionSuccessful is broadcast

After Duration

  • Meaning: holding interaction for a duration completes the interaction.
  • Controlled by FEDInteractionInfo::InteractAfterDuration (seconds).

Runtime flow:

  • Client starts interaction → progress UI updates locally
  • Server starts an “after duration” timer and periodically re-validates the target
  • On completion, server calls PlayerInteracted(...)

Multiplayer support:

  • bAllowMultipleInteractors on the interactable component enables multiple players.
  • MultiplayerSpeedMultiplier, MinPlayersRequired, MaxPlayersAllowed allow co-op interactions.

Hit Points (Damage-Based)

  • Meaning: interaction is performed by applying damage until HP reaches 0.
  • Controlled by FEDInteractionInfo::MaxHitPoints.

Important:

  • Damage is applied server-side (the plugin uses UGameplayStatics::ApplyDamage).
  • The interactable listens to AActor::OnTakeAnyDamage when configured as HitPoints.

Event timing:

For HitPoints interactables you can choose when the “interaction happened” event should fire:

  • FEDInteractionInfo::HitPointsInteractionEventTrigger
    • On Pressed (E): fire interaction event on the first validated press
    • On Completed (HP ≤ 0): fire interaction event only when HP is depleted

Button Mashing

  • Meaning: the player repeatedly presses Interact until a counter is reached.
  • Controlled by:
    • FEDInteractionInfo::ButtonMashingCountNeeded
    • FEDInteractionInfo::ButtonMashingTimeout

Runtime flow:

  • Each press increases a local counter and updates UI percent.
  • When the counter reaches the required amount, the client requests the interaction and the server validates it.