in raw Unreal this would be a delegate (probably a multicast Delegate)
one way you can go about this is if all of the receiving objects have the same interface or parent class then you can use a manager type system where the receivers would register to the manager, which puts them into an array, and then when the time to broadcast happens if the array is not empty you iterate over the array, and if the object is still valid call the receiving function.
delegates would get around needing to know the objects type because it using purely argument matching. (again this is with raw Unreal)
I was also able to find this: Multicast Delegate Equivalent in UEFN Verse?