Don't understand why we are using a BlueprintImplementableEvent



I get that Multicast delegates only works on Actor and that BlueprintImplementableEvent is for Blueprint. What I don’t understand is why, in the case of ATankPlayerController, it is considered getting this event on a blueprint and why, in the door case, it was considered getting that other event on an actor?

When I compare the two projects, it looks to me that we get both events in the blueprints. This makes me think that I didn’t get something, or that even if it visually looks the same, there’s a difference between the two that I don’t understand.

Here is soem picture to show what I mean:


A BlueprintImplementableEvent is only implementable on a child blueprint of the class that it’s declared in. It’s specific to that instance of the blueprint it’s tied to. So… in the TankPlayerController, it calls that event, and only the TankPlayercontroller_BP that is implementing it will get it… If, for example, you had such an event on the tank tracks (and corresponding track blueprints), if you called the event from the Left_Track, only the Left Track blueprint would pick up the event. Multicast Delegates cross out of that boundary, and allow other unrelated actors to pick up the event. Also, Multicast Delegates only work on components derived from actors, which PlayerController is not.