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" } } }