Is there no way to do multi-threading without C++ or purchased plugin in blueprint?

Well, technically, “asynchronous” just means “deferred execution,” and can still happen on the main thread.

As it turns out, you can already do this in regular blueprints; just make an event out of a function on your object, and bind it to a timer! The timer could be set to execute 0 seconds in the future if you want.

Multi-threading blueprints for real (running multiple separate blueprint functions in parallel) and even just calling into the Unreal gameplay framework in multiple threads, isn’t supported. It might maybe be possible to create a whole second instantiation of the blueprint VM, and run a second set of blueprints there, but then they’d have to use some kind of message queue to pass data back and forth, and they couldn’t be using the same objects. Also, you couldn’t really use all of the Actor stuff from more than the “main” instance.

Finally, plugins in the store generally come with source, so you could buy them and see how they do it. Maybe there’s something really clever there that I don’t know about? I would probably bet against that, but the chance is greater than zero :slight_smile:

1 Like