ue-asset-management

Reference and load Unreal Engine assets using hard and soft pointers, async streaming, and the Asset Registry.

55|5|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-asset-management-kevinpbuckley
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ue-asset-management
Source: https://github.com/kevinpbuckley/unreal-engine-skills/tree/main/skills/core/ue-asset-management
Command: npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-asset-management-kevinpbuckley

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing the wrong asset reference type in Unreal C++ causes load hitches, memory bloat, and oversized cooked packages. This Skill teaches the correct patterns for referencing, loading, and querying .uasset content so agents write asset code that scales. ## Core Features & Use Cases - Hard vs soft references: Choose between TObjectPtr, TSoftObjectPtr, and TSoftClassPtr based on when the target must load, avoiding cook and memory bloat from widely-loaded classes. - Async loading: Load assets on demand with FStreamableManager and FStreamableHandle, including batch loads, combined handles, priorities, and handle lifecycle management. - Asset Registry queries: Enumerate and filter assets by class, path, and searchable tags without loading them, using FARFilter and FAssetData. - Primary asset pipeline: Set up UPrimaryDataAsset with UAssetManager and asset bundles for large content libraries, DLC, and chunked delivery. - Use Case: A GameInstance holds hard references to dozens of textures causing huge memory usage; convert them to soft references and load them asynchronously only when the relevant screen opens. ## Quick Start Ask the agent to convert the hard asset references in your character class to soft references and load them asynchronously with the streamable manager.

Frequently Asked Questions about ue-asset-management

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I load assets asynchronously in Unreal Engine C++?

Use UAssetManager::GetStreamableManager().RequestAsyncLoad with the asset's FSoftObjectPath and a completion delegate. Store the returned TSharedPtr<FStreamableHandle> as a member so the loaded asset stays resident; releasing the handle allows GC to reclaim it.

What is the difference between TObjectPtr and TSoftObjectPtr in Unreal?

TObjectPtr is a hard reference that loads the target and its dependencies whenever the owner loads, affecting memory and cook size. TSoftObjectPtr stores only an FSoftObjectPath and loads the asset only when you explicitly request it, suiting heavy or optional content.

How do I find assets without loading them in Unreal Engine?

Use the Asset Registry via IAssetRegistry::GetAssets with a FARFilter combining class paths, package paths, and tag values. It returns FAssetData metadata from .uasset headers without loading; call GetAsset() only on the entries you actually need.

Why does IsValid return false on my TSoftObjectPtr?

IsValid() on a soft pointer checks whether the object is currently resident in memory, not whether the path is set. A non-null soft pointer returns false until you load the asset; use IsNull() to test whether the path itself is empty.

Can I use ConstructorHelpers FObjectFinder outside a constructor?

No, FObjectFinder and FClassFinder only work inside a class constructor and fail or assert at runtime elsewhere. For game content, prefer exposing soft or hard UPROPERTY references that designers assign in Blueprint subclasses instead of hard-coded paths.

When should I use UAssetManager and primary data assets?

Use UAssetManager with UPrimaryDataAsset when you have a large content library, DLC, or chunked delivery requiring typed loading by FPrimaryAssetId. Asset bundles let you load only the content each context needs, such as UI versus in-game assets.