Threaded Execution & Delay Control in Blueprints
Take full control of async operations from Blueprints โ no C++ required.
Async Blueprint Tools is a lightweight, production-ready Unreal Engine plugin that lets you run Blueprint logic on background threads, safely return to the game thread, introduce non-blocking delays, and even create cancelable asynchronous loops โ all through pure Blueprint nodes.
Ideal for games and tools that demand concurrency without complexity, this plugin empowers developers to process heavy logic, load data, or throttle logic execution without blocking gameplay.
The plugin exposes a set of Blueprint nodes to help you manage threading and asynchronous operations.
Executes a section of Blueprint logic on a background thread, keeping your game thread responsive.
Returns execution from a background thread to the main game thread safely.
Creates a non-blocking delay within asynchronous tasks.
Creates a repeating background task with configurable intervals.
Safely terminates a running async loop.
1. Create a Blueprint with heavy processing that needs to run without blocking gameplay
2. Use "Run Async Task" to move the heavy calculation to a background thread
3. Perform your calculations on the background thread
4. Use "On Complete" callback to bring the results back to the main thread for UI updates
Even though this plugin allows you to execute Blueprint logic on background threads, Unreal Engine's thread-safety rules still apply. You cannot bypass these fundamental limitations just because the operations are exposed to Blueprint.
Think of it like C++ async code โ you wouldn't call GEngine->AddOnScreenDebugMessage()
from a worker thread in C++ either. The same rules apply here.
Pure operations that don't touch the game world:
Anything that accesses UObjects or the game world:
Run Async Task
Task Body: Print String "Hello" โ Will fail intermittently
On Complete: (empty)
Why it fails: Print String tries to access GEngine and the viewport, which are not thread-safe. This causes race conditions and intermittent failures.
Run Async Task
Task Body: MyCounter = MyCounter + 1 โ Safe math operation
On Complete: Print String "Task Done!" โ Runs on game thread
Why it works: Task Body only does pure math (thread-safe). Print String runs in On Complete which executes on the game thread where it's safe.
Task Body: Pure calculations, data processing, heavy math only
On Complete: Game world interactions, UI updates, Print String, Actor manipulation
If you're experiencing intermittent failures or tasks that "don't fire consistently," test with simple thread-safe operations first:
Run Async Task
Task Body: bTaskCompleted = true (or increment a counter)
On Complete: Print String "Counter value: {counter}"
This will prove your async task IS firing every time. If it works, then the issue was using thread-unsafe nodes in Task Body.
AsyncTaskFThreadSafeBool for atomic cancellationAsyncBlueprintTools (Runtime)Blueprint Function Library that exposes all core functionality to Blueprint users.
Internal shared object that maintains state between threads.
โ No โ all logic is local and runtime-threaded
Important: Consider using Cancel Async Loop when objects are destroyed to prevent hanging references.
Last Update: January 25, 2026
Distribution Method: Plugin
If you have any questions or need assistance with the plugin, feel free to reach out.
Contact Support