UAsyncKitHandle
Every load function returns a UAsyncKitHandle — a BlueprintType object you can store in a variable and query or cancel at any time.
Storing the handle
Promote the return value to a variable to hold onto it:
[Load Assets] ──▶ return value ──▶ [Promote to variable: My Load Handle]
You can then query or cancel the load from anywhere — a progress bar tick, a cancel button, a level unload event.
Status
Get Status ──▶ EAsyncKitStatus
| Status | Meaning |
|---|---|
Pending | Request created, not yet started |
Loading | Streaming is in progress |
Completed | All assets loaded successfully |
Cancelled | Cancelled by user or timeout |
Failed | Load failed (invalid paths, etc.) |
Progress
Get Progress ──▶ float (0.0 – 1.0)
Get Loaded Count ──▶ int32
Get Total Count ──▶ int32
Is Complete ──▶ bool
Get Progress returns 1.0 once complete and 0.0 after cancellation. During chunked loads, progress is reported per chunk.
Loaded assets
Get Loaded Assets ──▶ TArray<UObject*>
Valid only after On Completed fires. The array matches the order of the original input array. May contain nullptr entries for paths that failed to resolve.
Delegates
The handle exposes two assignable multicast delegates you can bind additional listeners to at any time:
On Completed ──▶ FAsyncKitHandleCompleted (TArray<UObject*>)
On Cancelled ──▶ FAsyncKitHandleCancelled ()
These fire in addition to the On Loaded / On Failed delegates passed at load time.
Actions
Cancel
Abort the in-flight request. On Cancelled broadcasts and On Loaded will never fire.
[My Load Handle] ──▶ Cancel
If assets were partially loaded (chunked mode), no further chunks are processed.
Set Priority
Runtime priority changes are not supported in UE 5.2 — set Priority in FAsyncKitLoadParams before calling the load function. This method is a no-op and will log a warning.
Release
Drops the subsystem's GC-preventing pin on this handle. Does not cancel the load. Use this if you no longer need to track the handle but want the load to finish. The On Loaded callback will still fire.
GC safety
The subsystem holds a strong UPROPERTY reference to every active handle until it completes, is cancelled, or Release is called. You do not need to store the handle in a UPROPERTY yourself to prevent it from being GC'd mid-load.