italink/unrealclientprotocol/unreal-asset-operation
Claude Code and agent skill by italink/unrealclientprotocol
- community
Checking that the SKILL.md file is still in the repository.
Query and manage UE assets via UCP. Use when the user asks about asset search, dependencies, referencers, asset CRUD, asset management, getting selected/current assets, opening/closing asset editors, or any editor asset operation in Unreal Engine.
Install
npx vskill@latest install italink/unrealclientprotocol/unreal-asset-operationSKILL.md
Unreal Asset Operations
Operate on Unreal Engine assets through UCP's call command. The core approach is to obtain the IAssetRegistry instance and call its rich API directly, combined with engine asset libraries for CRUD operations.
Prerequisite: The unreal-client-protocol skill must be available and the UE editor must be running with the UCP plugin enabled.
Custom Function Library
UAssetEditorOperationLibrary (Editor)
CDO Path: /Script/UnrealClientProtocolEditor.Default__AssetEditorOperationLibrary
| Function | Params | Returns | Description | |
|---|---|---|---|---|
GetAssetRegistry | (none) | IAssetRegistry object | Returns the AssetRegistry instance. Call its functions directly via UCP call. | |
ForceDeleteAssets | AssetPaths (array of string) | int32 — number deleted | Force-deletes assets ignoring references. Wraps ObjectTools::ForceDeleteObjects. | |
FixupReferencers | AssetPaths (array of string) | bool | Cleans up redirectors left after rename/consolidate. Wraps IAssetTools::FixupReferencers. |
Getting the AssetRegistry
The returned object path can then be used as the object parameter for subsequent calls to IAssetRegistry functions.
Alternatively, you can use the engine helper directly:
Force-deleting assets
Fixing up redirectors
After renaming or consolidating assets, redirectors may be left behind. Use FixupReferencers to resolve them:
Engine Built-in Asset Libraries
IAssetRegistry (via GetAssetRegistry)
Once you have the AssetRegistry instance, you can call these BlueprintCallable functions on it:
Asset Queries
| Function | Key Params | Description | |
|---|---|---|---|
GetAssetsByPackageName | PackageName, OutAssetData, bIncludeOnlyOnDiskAssets | Get assets in a specific package | |
GetAssetsByPath | PackagePath, OutAssetData, bRecursive | Get assets under a content path | |
GetAssetsByPaths | PackagePaths, OutAssetData, bRecursive | Get assets under multiple paths | |
GetAssetsByClass | ClassPathName, OutAssetData, bSearchSubClasses | Get all assets of a specific class | |
GetAssets | Filter, OutAssetData | Query with an FARFilter (powerful filtered search) | |
GetAllAssets | OutAssetData, bIncludeOnlyOnDiskAssets | Get ALL registered assets | |
GetAssetByObjectPath | ObjectPath | Get single asset data by path | |
HasAssets | PackagePath, bRecursive | Check if any assets exist under a path | |
GetInMemoryAssets | Filter, OutAssetData | Query only currently loaded assets |
Dependency & Reference Queries
| Function | Key Params | Description | |
|---|---|---|---|
GetDependencies | PackageName, DependencyOptions, OutDependencies | Get packages this asset depends on | |
GetReferencers | PackageName, ReferenceOptions, OutReferencers | Get packages that reference this asset |
Class Hierarchy
| Function | Key Params | Description | |
|---|---|---|---|
GetAncestorClassNames | ClassPathName, OutAncestorClassNames | Get parent classes | |
GetDerivedClassNames | ClassNames, DerivedClassNames | Get child classes |
Path & Scanning
| Function | Key Params | Description | |
|---|---|---|---|
GetAllCachedPaths | OutPathList | Get all known content paths | |
GetSubPaths | InBasePath, OutPathList, bInRecurse | Get sub-paths under a base path | |
ScanPathsSynchronous | InPaths, bForceRescan | Force scan specific paths | |
ScanFilesSynchronous | InFilePaths, bForceRescan | Force scan specific files | |
SearchAllAssets | bSynchronousSearch | Trigger full asset scan | |
ScanModifiedAssetFiles | InFilePaths | Scan modified files | |
IsLoadingAssets | (none) | Check if scan is in progress | |
WaitForCompletion | (none) | Block until scan finishes |
Filter & Sort
| Function | Key Params | Description | |
|---|---|---|---|
RunAssetsThroughFilter | AssetDataList, Filter | Filter asset list in-place (keep matching) | |
UseFilterToExcludeAssets | AssetDataList, Filter | Filter asset list in-place (remove matching) |
UAssetRegistryHelpers (Static Utilities)
CDO Path: /Script/AssetRegistry.Default__AssetRegistryHelpers
| Function | Description | |
|---|---|---|
GetAssetRegistry | Get the IAssetRegistry instance | |
GetDerivedClassAssetData | Get asset data for derived classes | |
SortByAssetName | Sort FAssetData array by name | |
SortByPredicate | Sort FAssetData array by custom predicate |
IAssetTools (via UAssetToolsHelpers::GetAssetTools())
Get the instance via static helper:
Then call functions on the returned instance:
Create
| Function | Key Params | Description | |
|---|---|---|---|
CreateAsset | AssetName, PackagePath, AssetClass, Factory | Create a new asset (Factory can be null for simple types) | |
CreateUniqueAssetName | InBasePackageName, InSuffix | Generate a unique name to avoid conflicts | |
DuplicateAsset | AssetName, PackagePath, OriginalObject | Duplicate an existing asset |
Example: Create a new material
Import & Export
| Function | Key Params | Description | |
|---|---|---|---|
ImportAssetTasks | ImportTasks (array of UAssetImportTask) | Import external files as assets | |
ImportAssetsAutomated | ImportData (UAutomatedAssetImportData) | Automated batch import | |
ExportAssets | AssetsToExport, ExportPath | Export assets to files |
Rename & Move
| Function | Key Params | Description | |
|---|---|---|---|
RenameAssets | AssetsAndNames (array of FAssetRenameData) | Batch rename/move assets | |
FindSoftReferencesToObject | TargetObject | Find soft references to an object | |
RenameReferencingSoftObjectPaths | PackagesToCheck, AssetRedirectorMap | Update soft references after rename | |
MigratePackages | PackageNamesToMigrate, DestinationPath | Migrate packages to another project |
Example: Batch rename assets
RenameAssets takes an array of FAssetRenameData structs. Each struct has Asset (the object to rename), NewPackagePath (destination directory), and NewName (new asset name):
Example: Find soft references
UEditorAssetLibrary
CDO Path: /Script/EditorScriptingUtilities.Default__EditorAssetLibrary
Query & Check
| Function | Description | |
|---|---|---|
DoesAssetExist(AssetPath) | Check if an asset exists | |
DoAssetsExist(AssetPaths) | Batch existence check | |
ListAssets(DirectoryPath, bRecursive, bIncludeFolder) | List assets in directory | |
ListAssetByTagValue(AssetTagName, TagValue) | List assets matching a specific tag value | |
LoadAsset(AssetPath) | Load an asset into memory | |
LoadBlueprintClass(AssetPath) | Load a Blueprint and return its generated class | |
GetTagValues(AssetPath, AssetTagName) | Get tag values for a specific asset | |
FindPackageReferencersForAsset(AssetPath, bLoadAssetsToConfirm) | Find all packages that reference this asset |
Example: Find references to an asset
Example: List assets by tag
Example: Load a Blueprint class
Create & Modify
| Function | Description | |
|---|---|---|
DuplicateAsset(SourceAssetPath, DestinationAssetPath) | Duplicate an asset by path | |
DuplicateDirectory(SourceDirectoryPath, DestinationDirectoryPath) | Duplicate an entire directory of assets | |
RenameAsset(SourceAssetPath, DestinationAssetPath) | Rename/move an asset by path | |
RenameDirectory(SourceDirectoryPath, DestinationDirectoryPath) | Rename/move an entire directory | |
SaveAsset(AssetToSave, bOnlyIfIsDirty) | Save an asset to disk | |
SaveDirectory(DirectoryPath, bOnlyIfIsDirty, bRecursive) | Save all assets in directory |
Example: Duplicate a directory
Example: Rename a directory
Delete & Reference Replace
| Function | Description | |
|---|---|---|
DeleteAsset(AssetPathToDelete) | Delete an asset by path | |
ConsolidateAssets(AssetToConsolidateTo, AssetsToConsolidate) | Replace all references to AssetsToConsolidate with AssetToConsolidateTo, then delete the consolidated assets |
Example: Consolidate assets
Replace all references to M_OldMaterial with M_NewMaterial, effectively merging them:
After consolidation, run FixupReferencers to clean up any leftover redirectors:
Directory Management
| Function | Description | |
|---|---|---|
MakeDirectory(DirectoryPath) | Create a content directory | |
DeleteDirectory(DirectoryPath) | Delete a content directory | |
DoesDirectoryExist(DirectoryPath) | Check if directory exists | |
DoesDirectoryHaveAssets(DirectoryPath, bRecursive) | Check if directory contains assets |
Metadata Tags
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingSkills/unreal-asset-operation/SKILL.md
Popularity
- Repository stars
- 114
- Repository forks
- 14
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/italink/unrealclientprotocol/unreal-asset-operation)