Skip to main content

AsyncLoad Toolkit

AsyncLoad Toolkit is an Unreal Engine plugin that gives Blueprint full control over asynchronous and synchronous asset loading — the kind of control FStreamableManager offers in C++ but that vanilla Blueprint nodes do not expose.

Why AsyncLoad Toolkit?​

Unreal's built-in Async Load Asset node covers the most basic case. The moment you need anything beyond a single soft reference, you hit a wall.

FeatureVanilla BPAsyncLoad Toolkit
Load 1 soft reference✅✅
Load an array of assets❌ (pre-5.7)✅ all versions
Callable in a function / macro❌✅ via delegate
0–1 progress❌✅
Cancellation❌✅
Priority❌✅
Deduplication (already in-flight)❌✅
Keep-alive (anti-GC)❌✅ ref-counted
Throttling / chunks (anti-OOM)❌✅
Handle storable as a variable❌✅
The main differentiator

AsyncLoad Toolkit's library functions are non-latent: they return immediately and fire a delegate when done. This means they compile and run inside Blueprint function graphs, macros, and interfaces — not just Event Graphs. This is the feature vanilla async nodes can never offer.

Key concepts​

  • Function vs. Node — when to use the library function vs. the async node.
  • Handle — a storable UAsyncKitHandle object with progress, cancel, and status.
  • Keep-alive — ref-counted hard references that prevent GC from evicting assets.
  • Deduplication — identical in-flight requests are merged automatically.
  • Chunking — load thousands of assets in batches to keep RAM usage flat.

Supported engine versions​

Plugin versionUE versions
v1.05.2, 5.3, 5.4, 5.5, 5.6, 5.7

Architecture overview​

Blueprint / C++
│
▼
UAsyncKitLibrary ← non-latent, usable anywhere
UAsyncKitNodes ← async action nodes, Event Graph only
│
▼
UAsyncKitSubsystem ← single source of truth (GameInstance lifetime)
├── dedup map
├── retain map
├── active handle list (anti-GC)
└── progress ticker
│
▼
FStreamableManager ← Unreal's native streaming backend