Skip to main content

API Reference

Complete API documentation for Elys Asset Tools Blueprint and C++ interfaces.

Overview

Elys Asset Tools provides a comprehensive API accessible from both Blueprints and C++. The main entry point is the Editor Subsystem, which provides high-level operations for asset management.

Main Components

Editor Subsystem

Class: UERP_AssetToolsEditorSubsystem

The primary API for all asset management operations. Access via:

UERP_AssetToolsEditorSubsystem* Subsystem =
GEditor->GetEditorSubsystem<UERP_AssetToolsEditorSubsystem>();

Learn more →


Dependency Scanner

Class: UERP_AssetDependencyScanner

Scans assets and folders to find dependencies and referencers.

UERP_AssetDependencyScanner* Scanner = NewObject<UERP_AssetDependencyScanner>();
FERP_AssetDependencyScanResult Result = Scanner->ScanPath("/Game/MyFolder");

Learn more →


Move Operation

Class: UERP_AssetMoveOperation

Handles batch move operations with crash recovery.

UERP_AssetMoveOperation* MoveOp = NewObject<UERP_AssetMoveOperation>();
MoveOp->StartMoveOperation(Sources, Destination);

Learn more →


Quick Reference

Common Operations

TaskAPI Call
Scan folder dependenciesSubsystem->ScanFolder(Path)
Move assetsSubsystem->StartMoveAssets(Sources, Dest)
Safe delete folderSubsystem->SafeDeleteFolder(Path)
Delete empty foldersSubsystem->DeleteEmptyFolders(Path)
Check if safe to deleteSubsystem->IsFolderSafeToDelete(Path)
Open tools panelSubsystem->OpenToolsPanel(Path)

Data Structures

StructPurpose
FERP_AssetDependencyScanResultDependency scan results
FERP_AssetMoveOperationDataMove operation state

Enums

EnumPurpose
ERP_ScanTypeType of dependency scan
ERP_MoveOperationStateMove operation status

Code Examples

Blueprint Example

// Get subsystem (in Blueprint: Get Editor Subsystem)
UERP_AssetToolsEditorSubsystem* Subsystem =
GEditor->GetEditorSubsystem<UERP_AssetToolsEditorSubsystem>();

// Scan folder
FERP_AssetDependencyScanResult Result = Subsystem->ScanFolder("/Game/MyFolder");

// Check if safe to delete
if (Result.Referencers.Num() == 0)
{
// Safe to delete
Subsystem->SafeDeleteFolder("/Game/MyFolder");
}

C++ Example

#include "Subsystems/UERP_AssetToolsEditorSubsystem.h"
#include "Tools/UERP_AssetDependencyScanner.h"

void MyEditorUtility::ProcessAssets()
{
// Get subsystem
UERP_AssetToolsEditorSubsystem* Subsystem =
GEditor->GetEditorSubsystem<UERP_AssetToolsEditorSubsystem>();

// Scan and move
TArray<FString> Sources = {"/Game/Old/Folder"};
Subsystem->StartMoveAssets(Sources, "/Game/New/Location");
}

Logging

All API operations log to the LogElysAssetTools category.

Enable verbose logging:

UE_LOG(LogElysAssetTools, Verbose, TEXT("Detailed message"));

Check Output Log for:

  • Operation progress
  • Error messages
  • Dependency scan results
  • Move operation status

Thread Safety

Editor Thread Only

All Elys Asset Tools APIs must be called from the Editor/Game thread. They are not thread-safe and should not be called from background threads.


API Stability

  • Public APIs (UERP_*, FERP_*, ERP_*) - Stable, backward compatible
  • Private implementation - May change between versions

We follow semantic versioning:

  • Major version - Breaking changes
  • Minor version - New features, backward compatible
  • Patch version - Bug fixes only

Next Steps

Explore the detailed API documentation: