Skip to main content

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
StatusMeaning
PendingRequest created, not yet started
LoadingStreaming is in progress
CompletedAll assets loaded successfully
CancelledCancelled by user or timeout
FailedLoad 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

UE 5.2

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.