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.