Example Project
The examples below cover the most common interaction patterns. Each one follows the same structure: add a trigger, add a receiver, link them with an ID.
Example 1 — Button Opening Two Doors
A classic puzzle mechanic: one button activates two different doors at the same time.
Set up the button actor
Add an InteractionTriggerComponent to your button actor. In the IDs_Table, add the values 1 and 2.
Set up the first door
Add an InteractionReceiverComponent to Door_A and set its ID to 1.
Bind the OnInteractReceiver event → call your door-open animation or logic.
Set up the second door
Add an InteractionReceiverComponent to Door_B and set its ID to 2.
Bind the OnInteractReceiver event → same door-open logic.
Fire the interaction
When the player presses the button, call TriggerInteractionByIDArray() from the trigger component. Both doors open instantly.
Result: One trigger, two receivers, zero hardcoded references.
Example 2 — Lever Triggering a Trap
A lever that activates a single specific trap in the level.
Set up the lever
Add an InteractionTriggerComponent to your lever. Add ID 3 to its IDs_Table.
Set up the trap
Add an InteractionReceiverComponent to Trap_A and set its ID to 3.
Bind OnInteractReceiver → activate the trap mechanism.
Fire the interaction
When the lever is pulled, call TriggerInteractionByIDArray(). Only Trap_A responds since it's the only receiver with ID 3.
Example 3 — Sending Data: Pressure Plate with Intensity
A pressure plate that sends a float value (pressure level) to a mechanical door — the door uses that value to decide how fast it opens.
Set up the pressure plate
Add an InteractionTriggerComponent to your pressure plate. Add ID 10 to its IDs_Table.
Calculate the pressure value
In your Blueprint logic, calculate a float between 0.0 and 1.0 based on how much weight is on the plate.
Fire the interaction with data
Call TriggerInteractionByIDArrayWithFloat(PressureValue) from the trigger component.
Set up the mechanical door
Add an InteractionReceiverComponent to the door with ID 10.
Bind the OnInteractReceiver_Float event and use the received float to drive the opening speed or animation blend value.
Example 4 — Dynamic Targeting at Runtime
A character that dynamically decides which object to interact with based on gameplay logic.
Set up the character
Add an InteractionTriggerComponent to your character.
Detect the target at runtime
Use a line trace or overlap to detect the actor the player is looking at. Read its receiver ID dynamically.
Call a single-target interaction
Call TriggerInteractionByID(TargetID) with the ID you just retrieved. Only the one matching actor responds — no need to pre-fill the IDs_Table.
Video Preview
Watch the full example project walkthrough:
Easy Interaction System — Example Project
See a complete setup in action — button, lever, doors, and more.
Summary Table
| Use case | Trigger function | Receiver event | IDs used |
|---|---|---|---|
| Button → 2 doors | TriggerInteractionByIDArray | OnInteractReceiver | 1, 2 |
| Lever → trap | TriggerInteractionByIDArray | OnInteractReceiver | 3 |
| Pressure plate → speed | TriggerInteractionByIDArrayWithFloat | OnInteractReceiver_Float | 10 |
| Dynamic pickup | TriggerInteractionByID | OnInteractReceiver | Runtime |