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>();
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");
Move Operation
Class: UERP_AssetMoveOperation
Handles batch move operations with crash recovery.
UERP_AssetMoveOperation* MoveOp = NewObject<UERP_AssetMoveOperation>();
MoveOp->StartMoveOperation(Sources, Destination);
Quick Reference
Common Operations
| Task | API Call |
|---|---|
| Scan folder dependencies | Subsystem->ScanFolder(Path) |
| Move assets | Subsystem->StartMoveAssets(Sources, Dest) |
| Safe delete folder | Subsystem->SafeDeleteFolder(Path) |
| Delete empty folders | Subsystem->DeleteEmptyFolders(Path) |
| Check if safe to delete | Subsystem->IsFolderSafeToDelete(Path) |
| Open tools panel | Subsystem->OpenToolsPanel(Path) |
Data Structures
| Struct | Purpose |
|---|---|
FERP_AssetDependencyScanResult | Dependency scan results |
FERP_AssetMoveOperationData | Move operation state |
Enums
| Enum | Purpose |
|---|---|
ERP_ScanType | Type of dependency scan |
ERP_MoveOperationState | Move 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
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:
- Subsystem API - Main editor subsystem
- Dependency Scanner API - Dependency analysis
- Move Operation API - Batch move operations