Binding an event of any collider to dispatch an event on the parent, but more elegantly

I have a bp ‘placeable object’ and multiple child bps having their own mesh override with their colliders. I wanted to handle mouse over of these objects in PlaceableObject.

My thought was to get the collider instance from this object and bind its cursor over and out events, to then have a event dispatcher, dispatch the event. And handle that from the EventGraph.

My vision was to create a function handling the binding, since there is no base class and the different colliders need their own binding. Then handle the event from the dispatcher nice and clean in the EventGraph.

I have all the functionality working in the image, but this is all one big mess on the EventGraph. Trying to make it a function fails, because the event objects cannot be in the function (if I understand that correctly?). I fail to understand what could be the proper in-/outputs for the function here to make it work.

How can I make this more elegant/less messy on the EventGraph? And am I using the event dispather correctly?

Primitive components also inform their actor of this event, and the actor itself broadcasts a similar OnBeginCursorOver/OnEndCursorOver Event, which you can bind to instead of binding to every individual component’s events

Actor also has implementable events you can just override, ActorBeginCursorOver/ActorEndCursorOver, so you don’t even have to bind another event yourself

The only issue would be if you wanted to know which component was hovered over, in which case you might have to do some more work. Unfortunately there’s not a super easy way to do it either in code or bp, but you can also just GetComponentsByClass<PrimitiveComponent>, loop over them and bind your events accordingly, without having to check for each different primitive type separately

I’d use an interface and On event call the interface event and pass a simple reference or build a strict for more details.