editor.asset

Asset operations (create, delete, rename, import, export)

← API Reference

editor.asset.find

Searches the Asset Registry for assets by name, path, or class.

Parameters:

NameTypeRequiredDescription
namestringNoSubstring filter on asset name
pathstringNoContent path to search within
classstringNoAsset class to filter by (e.g. "StaticMesh")
max_resultsnumberNoMaximum number of results (default 100)
recursiveboolNoSearch subdirectories when filtering by path (default true)

Returns:

NameTypeDescription
countnumberNumber of matching assets
assetsarrayEach: {name, path, package, class, is_loaded}

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.find", "params": { "class": "StaticMesh", "max_results": 5 } }

editor.asset.getMetadata

Returns detailed metadata for an asset including dependencies and referencers.

Parameters:

NameTypeRequiredDescription
pathstringYesObject path or package name of the asset

Returns:

NameTypeDescription
namestringAsset name
pathstringFull asset path
packagestringPackage name
classstringAsset class name
is_loadedboolWhether asset is currently loaded
disk_sizenumberDisk size in bytes (if available)
dependenciesarrayPackage names this asset depends on
referencersarrayPackage names that reference this asset

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.getMetadata", "params": { "path": "/Game/Meshes/SM_Cube" } }

editor.asset.load

Loads an asset into memory.

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path to load

Returns:

NameTypeDescription
successboolWhether load succeeded
namestringAsset name
classstringAsset class name
pathstringFull asset path

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.load", "params": { "path": "/Game/Meshes/SM_Cube" } }

editor.asset.save

Saves a single asset to disk.

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path to save
only_if_dirtyboolNoOnly save if modified (default true)

Returns: success (bool), path (string)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.save", "params": { "path": "/Game/Meshes/SM_Cube" } }

editor.asset.saveAll

Saves all dirty packages (maps and/or content).

Parameters:

NameTypeRequiredDescription
save_mapsboolNoWhether to save map packages (default true)
save_contentboolNoWhether to save content packages (default true)

Returns: success (bool)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.saveAll" }

editor.asset.duplicate

Duplicates an asset to a new path.

Parameters:

NameTypeRequiredDescription
source_pathstringYesPath of the asset to duplicate
destination_pathstringYesTarget path for the copy

Returns: success (bool), name (string), path (string), source_path (string)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.duplicate", "params": { "source_path": "/Game/Materials/M_Ground", "destination_path": "/Game/Materials/M_Ground_Copy" } }

editor.asset.rename

Renames/moves an asset from one path to another.

Parameters:

NameTypeRequiredDescription
source_pathstringYesCurrent asset path
destination_pathstringYesNew asset path

Returns: success (bool), source_path (string), destination_path (string)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.rename", "params": { "source_path": "/Game/Materials/M_Old", "destination_path": "/Game/Materials/M_New" } }

editor.asset.delete

Deletes an asset.

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path to delete

Returns: success (bool), path (string)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.delete", "params": { "path": "/Game/Materials/M_Temp" } }

editor.asset.import

Imports an external file (e.g. FBX, PNG) into the project as an asset.

Parameters:

NameTypeRequiredDescription
file_pathstringYesFilesystem path of the file to import
destination_pathstringYesContent path where the asset should be created

Returns: success (bool), count (number), imported (array of {name, path, class})

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.import", "params": { "file_path": "C:/Assets/hero.fbx", "destination_path": "/Game/Meshes" } }

editor.asset.reimport

Reimports an existing asset from its original source file (or a new source file).

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path of the asset to reimport
source_filestringNoNew source file path (if omitted, uses original source)

Returns: success (bool), path, name, class, source_files (array)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.reimport", "params": { "path": "/Game/Meshes/SM_Hero.SM_Hero" } }

editor.asset.bulkImport

Imports multiple external files into the project in a single operation.

Parameters:

NameTypeRequiredDescription
filesarrayYesArray of filesystem file paths to import
destination_pathstringYesContent path where assets should be created
replace_existingboolNoReplace existing assets (default true)
saveboolNoSave imported assets (default true)

Returns: success (bool), total_files, success_count, fail_count, imported_count, imported (array)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.bulkImport", "params": { "files": ["C:/Assets/hero.fbx", "C:/Assets/hero_diffuse.png"], "destination_path": "/Game/Characters/Hero" } }

editor.asset.getSourceFile

Gets the source file path(s) for an imported asset.

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path to query

Returns: path, name, class, has_source (bool), source_file, source_files (array), can_reimport (bool)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.getSourceFile", "params": { "path": "/Game/Meshes/SM_Hero.SM_Hero" } }

editor.asset.scan

Bulk-enumerates assets under a content path with full Asset Registry tags and disk size. Designed for asset catalog ingestion.

Parameters:

NameTypeRequiredDescription
pathstringYesContent path to scan (e.g. "/Game/Fab")
classstringNoFilter by asset class (e.g. "StaticMesh")
recursiveboolNoScan subdirectories (default true)
max_resultsnumberNoMaximum results per page (default 500)
include_tagsboolNoInclude Asset Registry tags (default true)
offsetnumberNoSkip first N results for pagination (default 0)

Returns: count, total, assets (array with name, path, package, class, is_loaded, disk_size, tags)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.scan", "params": { "path": "/Game/Fab/Furniture", "class": "StaticMesh", "max_results": 10 } }

editor.asset.getTags

Retrieves custom metadata tags from an asset's .uasset file.

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path to query

Returns: path (string), tags (object — key-value map of custom metadata)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.getTags", "params": { "path": "/Game/Fab/Furniture/SM_Desk_Modern_01" } }

editor.asset.setTags

Sets custom metadata tags on an asset's .uasset file. Tags are key-value string pairs persisted alongside the asset.

Parameters:

NameTypeRequiredDescription
pathstringYesAsset path to tag
tagsobjectYesKey-value pairs to set (all values must be strings)
saveboolNoWhether to save the asset after setting tags (default true)

Returns: success (bool), path (string), tags_set (number)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.setTags", "params": { "path": "/Game/Fab/Furniture/SM_Desk", "tags": { "AgentUX_DisplayName": "Modern Desk" } } }

editor.asset.validate

Validates a single asset using the Data Validation subsystem.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesAsset path to validate

Returns:

NameTypeDescription
resultstring"valid", "invalid", or "not_validated"
asset_pathstringAsset path
errorsarrayError messages (strings)
warningsarrayWarning messages (strings)
error_countnumberNumber of errors
warning_countnumberNumber of warnings

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.validate", "params": { "asset_path": "/Game/Blueprints/BP_MyActor" } }

editor.asset.validateBatch

Validates multiple assets matching a wildcard path pattern.

Parameters:

NameTypeRequiredDescription
patternstringYesWildcard path pattern (e.g. "/Game/Blueprints/*")
limitnumberNoMax assets to validate (default 100, max 1000)

Returns:

NameTypeDescription
num_requestednumberTotal assets gathered
num_checkednumberAssets actually validated
num_validnumberAssets without issues
num_invalidnumberAssets with errors
num_warningsnumberAssets with warnings
num_skippednumberAssets skipped

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.validateBatch", "params": { "pattern": "/Game/Blueprints/*", "limit": 50 } }

editor.asset.validateFolder

Validates all assets in a folder (optionally recursive).

Parameters:

NameTypeRequiredDescription
folder_pathstringYesContent folder path (e.g. "/Game/Blueprints")
recursiveboolNoInclude subfolders (default true)

Returns: Same fields as validateBatch plus folder_path.

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.validateFolder", "params": { "folder_path": "/Game", "recursive": true } }

editor.asset.getValidators

Returns information about the Data Validation subsystem availability.

No parameters.

Returns:

NameTypeDescription
availableboolWhether validation subsystem is available
subsystem_classstringSubsystem class name

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.getValidators" }

editor.asset.getValidationSummary

Validates and returns a detailed summary for a single asset.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesAsset path

Returns:

NameTypeDescription
asset_pathstringAsset path
asset_namestringAsset name
asset_classstringAsset class
resultstring"valid", "invalid", or "not_validated"
error_countnumberNumber of errors
warning_countnumberNumber of warnings
errorsarrayError messages
warningsarrayWarning messages

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.getValidationSummary", "params": { "asset_path": "/Game/Blueprints/BP_MyActor" } }

editor.asset.migrate

Migrates assets (with dependencies) to another project's Content directory.

Parameters:

NameTypeRequiredDescription
asset_pathsarrayYesArray of asset paths to migrate
destination_pathstringYesAbsolute disk path to target project's Content directory
ignore_dependenciesboolNoSkip dependency chain (default: false)
conflictstringNoConflict handling: "skip", "overwrite", or "cancel" (default: "overwrite")

Returns: success (bool), asset_count (number), destination_path (string), ignore_dependencies (bool)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.migrate", "params": { "asset_paths": ["/Game/Meshes/SM_Rock"], "destination_path": "D:/UnrealProjects/MyProject/Content", "conflict": "overwrite" } }

editor.asset.listDependencies

Queries full dependency chain for an asset, with optional recursive tree walk and referencers.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesAsset path to query
recursiveboolNoWalk full dependency tree via BFS (default: false)
include_referencersboolNoAlso return assets that reference this one (default: false)

Returns:

NameTypeDescription
dependenciesarrayPackage names this asset depends on
dependency_countnumberNumber of dependencies
recursiveboolWhether tree was walked recursively
asset_pathstringQueried asset path
referencersarrayPackages referencing this asset (if requested)
referencer_countnumberNumber of referencers (if requested)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.listDependencies", "params": { "asset_path": "/Game/Blueprints/BP_MyActor", "recursive": true, "include_referencers": true } }

editor.asset.createUniqueName

Generates a conflict-free asset name by appending a suffix and incrementing if needed.

Parameters:

NameTypeRequiredDescription
base_pathstringYesBase package path (e.g., "/Game/Meshes/SM_Rock")
suffixstringNoSuffix to append (default: "_Copy")

Returns: package_name (string), asset_name (string), base_path (string), suffix (string)

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.asset.createUniqueName", "params": { "base_path": "/Game/Meshes/SM_Rock", "suffix": "_Migrated" } }