Event/functions, what's the main difference between them?

They are similar in:

I double-click function, it tells me what’s it gonna do; I double-click event, it also tells me what’s it gonna do.

function can be used outside, events can be used outside.

What’s the main difference between them? When should we use events, and when should we use functions?

Short answer: custom events can have latent actions(e.g. delay) and timelines… functions can have non-exec outputs

TL : DR - functions can return a value - events can’t.