What is a 'delegate' and how to use them?

Hi,
Event nodes has a small red square on top right that says ‘output delegate’. I can’t find documentation or tutorials talking about it; only c++ related questions talking about delegates but I don’t understand when and how to use them on Blueprints.
Thanks.

Delegates are special events which insted of being called like a function, you bind function to that event and when it will be broadcast i will call all binded functions, major benefit from it is that you can bind any function (in case of blueprint it’s custom event) regardless where they are (in standard event code can be only inside the class it’s being called) and you can bind more then one function and all of them will be called on broadcast.

Binding it self is like function call, i never used delegates on BPs but you can get bind nodes for specific events when you drag link from that red square you talking about.

Also UE4 from C++ let you implement function binding to anything in Blueprint, for example aside of normal event delegates you can find red square input in timers and bind event to timer.

I think i got it now :slight_smile: Thank you. Is like using variables of function type in other programming languages, to store the reference to the function, then the event call it later. That’s great news I can bind more than one function… so it stores a list of all binds?
The last detail i need is how to preform the “binding” action inside the graph editor, can I drag the function to the little red square or there is a node to do that? Sorry I’m learning :slight_smile:
Thanks!