Skip to main content

Synchronous Load

Blocks the game thread

These functions block the game thread until loading is complete. They will cause a visible hitch if called during gameplay. Only use them during loading screens, startup sequences, or editor tooling.

Load Asset Sync

Load a single asset synchronously and return the result immediately.

Category: AsyncKit | Sync

PinTypeDescription
AssetTSoftObjectPtr<UObject>The soft reference to load
ReturnUObject*The loaded object, or null if the path is invalid

If the asset is already in memory, the function returns it immediately with no overhead.

Load Assets Sync

Load an array of assets synchronously and return the complete array.

Category: AsyncKit | Sync

PinTypeDescription
AssetsTArray<TSoftObjectPtr<UObject>>Soft references to load
ReturnTArray<UObject*>Loaded objects

When to use synchronous loading

✅ OK❌ Not OK
BeginPlay during a loading screenGameplay tick
Editor utility widgetsPlayer input handlers
Pre-match / lobby phaseSpawning actors at runtime
Startup (GameInstance::Init)Mid-game hot-loading

Warning on sync load

By default, a warning is printed to the Output Log whenever a sync load is called. This helps catch accidental synchronous loads during gameplay.

You can disable this warning in Project Settings → AsyncLoad Toolkit → Warn On Sync Load.

Query without loading

If you only need to know whether an asset is in memory (without loading it), use the query functions instead:

Is Asset Loaded ──▶ bool
Get If Loaded ──▶ UObject* (null if not in memory)
Are All Loaded ──▶ bool

These are pure functions with no side effects.