License Tracking
The License Tracking system helps you keep track of where your assets come from - which marketplace pack, which publisher, and which license covers each asset.
Overview
The system revolves around License Sources - data assets that represent an asset pack or marketplace purchase. Each source stores:
- Pack name and publisher
- Purchase URL and notes
- The list of assets mapped to it (distributed registry)
License Manager Panel
Open via Tools > Elys License Manager > License Manager.
The panel has two tabs:
Sources Tab
Manage your license sources:
- View all sources with asset counts
- Create, edit, and delete sources
- Purge dead links (remove mappings for deleted assets)
- Merge two sources into one
Asset Explorer Tab
Browse assets and their license coverage:
- Scan a folder to see which assets are assigned to sources
- Identify unlicensed/unassigned assets
- Assign assets to sources directly
Creating a Source
- Open the License Manager panel
- Click "+ New Source"
- Enter the pack name (e.g., "Medieval Props Pack")
- Fill in optional fields:
- Publisher - Who made the pack
- Purchase URL - Link to the marketplace page
- Notes - Any additional information
- Click Save
Assigning Assets
By Folder
- Select a source in the Sources tab
- Click "Add Folder"
- Browse the folder tree and select the content folder
- All assets in that folder (recursively) are assigned to the source
By Selection
- Select a source in the Sources tab
- Click "Add Assets"
- Select individual assets from the Content Browser
From Content Browser
- Right-click a folder or asset in the Content Browser
- Select Elys License Manager > Assign License Source
- Pick a source from the dialog (or create a new one)
Viewing License Info
- Right-click an asset > Elys License Manager > View License Info to see which source it belongs to
- Double-click an asset in the License Manager's linked assets list to navigate to it in the Content Browser
Purging Dead Links
When assets are deleted from your project, their mappings become stale:
- Select a source in the Sources tab
- Click "Purge Dead Links"
- The system removes all mappings pointing to non-existent assets
You can also purge dead links from all sources at once via Blueprint.
Merging Sources
To combine two sources into one:
- Select the source you want to merge away
- Click "Merge Into..."
- Select the target source
- All asset mappings move to the target, and the original source is deleted
Distributed Registry
Each AssetSourceData asset stores its own MappedAssets array. This means:
- When you migrate a source to another project, all mappings come with it
- No central registry file to maintain
- The global
LicenseRegistryonly tracks which sources exist (for discovery)
Legacy Migration
If you have an older version with centralized mappings, they are automatically migrated to the distributed format on first load. No user action is needed.
Blueprint API
// Get the subsystem
UERP_AssetInsightsEditorSubsystem* Subsystem =
GEditor->GetEditorSubsystem<UERP_AssetInsightsEditorSubsystem>();
// Get the license manager
UERP_AssetLicenseManager* LM = Subsystem->GetLicenseManager();
// Assign assets to a source
TArray<FString> AssetPaths = { "/Game/Props/SM_Table", "/Game/Props/SM_Chair" };
LM->AssignAssetsToSource(AssetPaths, MySource);
// Check what source an asset belongs to
UERP_AssetSourceData* Source = LM->GetSourceForAsset("/Game/Props/SM_Table");
// Purge dead links
int32 Removed = LM->PurgeDeadMappings(MySource);
// Merge sources
LM->MergeSourceInto(SourceA, SourceB, /*bDeleteAfter=*/ true);
Next Steps
- Dependency Scanner - Analyze asset dependencies
- Safe Deletion - Safely remove folders