Synchronous Load
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
| Pin | Type | Description |
|---|---|---|
| Asset | TSoftObjectPtr<UObject> | The soft reference to load |
| Return | UObject* | 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
| Pin | Type | Description |
|---|---|---|
| Assets | TArray<TSoftObjectPtr<UObject>> | Soft references to load |
| Return | TArray<UObject*> | Loaded objects |
When to use synchronous loading
| ✅ OK | ❌ Not OK |
|---|---|
BeginPlay during a loading screen | Gameplay tick |
| Editor utility widgets | Player input handlers |
| Pre-match / lobby phase | Spawning 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.