Asset Deduplicator

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.

The apply step removes selected duplicate files and creates .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.

Cache Generation

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 current level asset cache: clears only the current level data so it can be scanned again.
  • Deep clean asset cache: clears the full cache so all asset groups are rebuilt.

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.

Comparison Modes

The tool supports two comparison modes:

  • File hash comparison: matches files with identical content. This is the safest mode because the matched assets are byte-identical.
  • File name comparison: matches files by name. This can find more candidates, but files with the same name may not contain the same data, so manual review is required.

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.

Assessing Duplicates

  1. Select the comparison mode.
  2. Decide whether Allow linking with mods should be enabled.
  3. Click Run assessment.
  4. Wait for the assessment to finish.

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.

Preview And Apply

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:

  • Use Select All or Clear All to manage the candidate list.
  • Click a row to compare image assets side by side when a preview is available.
  • Check the proposed link target before applying, especially in filename comparison mode.
  • Press Accept only after the selected file list is correct.

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.

Link Output

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.

Safe Usage Checklist

Before applying:

  1. Use hash comparison unless you specifically need filename matching.
  2. Review the selected candidates in the preview.
  3. Confirm link targets are stable shared assets.
  4. Keep mod linking disabled unless the dependency is intentional.
  5. Back up unpacked content or commit your work before applying.

After applying, load the level again and use Resources Checker to verify that textures, meshes, and materials still resolve correctly.

Related Tools

Last modified: June 8, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.