The Asset Deduplicator finds assets in the current level that can be replaced by links to matching shared assets. It can reduce level size by replacing duplicate files with .link files, while keeping the level’s file references loadable through the engine’s link file system.
Use this tool after a level has accumulated local copies of assets that already exist in shared folders such as /assets/, /art/, stock levels, or other scanned content.
Open it from the World Editor window menu under Assets > Asset Deduplicator.
.link files in their place. Review the preview carefully and back up unpacked level or mod content before applying changes. This tool is intended for unpacked content where files can be modified directly.When the tool opens, it builds or loads a cache at /temp/assetdeduplicator.cache.json. The cache contains asset information for shared asset folders, stock and mod levels, and the current level.
The cache is used so the tool does not need to rescan every asset folder for every assessment. It stores scan results for the current game version and the currently loaded level. If the game version, cache version, or current level data changes, the tool may rebuild part of the cache.
If the cache is out of date, use:
Reset the current level cache after adding, deleting, renaming, or moving files inside the level. Use deep clean when shared assets changed or when the displayed results do not match the files on disk.
The tool supports two comparison modes:
The Allow linking with mods option allows links to point at mod assets. This can be useful during development, but it is riskier because the target mod may not be installed or may change independently.
Prefer File hash comparison for normal cleanup work. Use File name comparison only when you are intentionally looking for likely duplicates and are prepared to inspect the proposed target file before applying.
Leave Allow linking with mods disabled for content that must work without a specific mod dependency.
When candidates are found, the tool reports how many files can be removed and how much level size can be saved.
The assessment compares current level files against cached asset groups and searches for a suitable link target. Targets are prioritized from shared asset locations when available, because those are more stable than local duplicates.
Click Preview and apply to open the candidate list. The preview shows the original file and the link target that would replace it.
In the preview:
After accepting, the tool removes each selected duplicate and writes a .link file pointing to the selected target asset.
For image assets, clicking a row can open a side-by-side comparison view. Use this before accepting filename-based matches, because two textures with the same file name can still have different resolution, color data, compression, or alpha content.
For each accepted candidate, the original file is removed and replaced with a .link file at the original path plus the .link extension. The link stores the selected target path and tells the engine to load the shared asset instead of keeping a separate local copy.
For example, a duplicate local texture can become a link to a texture under /assets/. The level continues to reference the local path, but the link redirects loading to the shared target.
If linking fails, the tool reports the failed file and error. Common causes include packed mods, read-only files, missing file permissions, or files that changed after the cache was generated.
Before applying:
After applying, load the level again and use Resources Checker to verify that textures, meshes, and materials still resolve correctly.
Was this article helpful?