Quick answer: Interface Message nodes silently no-op if the target doesn’t implement the interface. Add the interface to the target BP and implement the event; guard with Does Implement Interface.
An interaction system sends an “OnInteract” interface Message to whatever the player looks at. Nothing happens — the target doesn’t implement the interface, so the message goes nowhere.
Message vs Call
- Message node (purple): safe — if the target doesn’t implement the interface, it silently does nothing.
- Direct call: requires the target be cast to a class that implements the function.
The “safe” behavior of Message is exactly why your call vanishes — it’s not erroring, it’s no-oping.
Implement on the Target
- Open the target Blueprint → Class Settings → Implemented Interfaces → Add your interface.
- In the My Blueprint panel, find the interface event under Interfaces and implement it.
Just adding the interface isn’t enough — you must implement the event/function too.
Guard With Does Implement Interface
Branch (Does Implement Interface: BPI_Interactable)
True -> OnInteract (Message)
False -> (show "can't interact" feedback)
Makes the intent explicit and lets you give the player feedback for non-interactable objects.
Verifying
Look at an interactable object and interact — its event fires. Look at a wall — the guard catches it. No silent failures.
“Interface Messages are fire-and-forget. The target must implement the interface AND the event.”
For C++ interfaces called from Blueprint, the implementing class must mark functions BlueprintNativeEvent or BlueprintImplementableEvent to be reachable.