Why can the Async Load Class Asset node (and the like) only be accessed from the Event Graph?

Hello, I have been learning UE recently and trying to figure why some nodes can only be used from the event graph and not from a function?

I assume it is something I am just not understanding about how BPs work, but would appreciate some clarification as I haven’t been able to find anything on the subject.

In my use case I have a data table of items, and one column is a texture soft reference for the icon of the item. Which I then want to load when an item is loaded so I can send it to the UI.

I don’t know the precise technical answer. From what I’ve figured out myself is because a blueprint function is a different type of function not compatible with an asynchronous function. they can’t be nested. You can’t put an asynchronous function inside a blueprint function.

if a node contain async functions you can’t nest it inside a simple function.

This implies that the event graph of a blueprint is an asynchronous function which can have inside both normal classic functions (the blueprint function) and async functions

I’m sure there is some chapter in the C++ programming reference which explain how these async functions work :slight_smile:

Oooh, you are totally right I bet. It is because they aren’t async functions/don’t support async.
I was thinking about it too hard thinking it had to do more with a Unreal thing doing ‘magic’ behind the scenes. But not being async makes total sense.

Thank you!!

actually functions are single thread, means they will run in straight line, as async load class have two output, one is in the same thread and another thread is of completed. because of this reason you can’t have async in function but in Event