Difference between CustomEvent and public void Function? (Blueprints)

Any principal difference?

In standard events, yes theres not much diffrence mosty cosmetic, in fact in C++ its just funtion which you just override like any other function. Keep in mind there is no diffrence between normal event and custom event, only diffrnce is that customevent is made in blueprint normal is event from C++

But if you use event dispachers (delegates in C++), thats the only way to hear events in class from other objects without need of adding special code in that other class.

Ohh, lol ofc, i can subscribe to events, how could i miss that.

Hmmm, but i still dont know is it possible or not to subscribe to CustomEvent, plus CustomEvent can be called outside of own Blueprint, not like C# event which can be called only by owner, so CustomEvent behaves like usual function… thats why confusion…

This is an interesting topic and I hope UE staff can give the perfect answer. The answer in this thread is not really helpful.

It isn’t distinctive if you use it in Blueprint. But from a programming standpoint, events are executed in a separate thread (subprocess), while functions are executed in the same thread.

So in computer, every execution flow is considered to be 1 thread. A collection of threads, is called a process. And a collection of process is called an application (it’s called a program during the DOS age).

So if you call a function, then the same thread that you use to call it, will execute the instructions inside that function. But if you call a custom event, then UE will generate another thread to execute the instructions inside that event. So you’ll have 2 executing thread that runs in parallel at the time you call an event. That’s why, you are not allowed to depend on the result of an event execution.

UE staff, please CMIIW about this.