Quick answer: Unreal blueprint interface call returning false on an actor component that implements it? Interface dispatch only checks the actor, not its components - call Implements_Interface on the component directly.
DoesImplementInterface(Actor, IInteractable) returns false even though UInteractableComponent on that actor implements IInteractable.
Search the components
auto Comp = Actor->FindComponentByInterface(UInteractable::StaticClass());
if (Comp) IInteractable::Execute_Interact(Comp);Interface implementation is per-UObject. Components are UObjects but not the actor's UClass.
Forward from the actor
If the actor itself doesn't implement the interface but should look like it does, give it a thin IInteractable_Implementation that forwards to the component. Cleaner for blueprint consumers.
Avoid Get All Actors of Interface
That node is O(n_actors) on every call. If you have many interactable components per actor, build and cache a registry on game start.
“Interfaces in Unreal are per-class - not 'somewhere on the actor's component tree'.”
Build the interactable registry as part of a custom subsystem. Lookup becomes O(1), and your gameplay code stops needing to know which actor type holds the interface.