Asset Replacer & Dependency Locator


Find exactly where assets are used with reverse-dependency lookups. Batch-replace project-wide references, fix missing dependencies, and consolidate scattered files using fast raw YAML injection.


by Veridian Systems


Price History +


As a solo developer, I originally built the Asset Locator & Replacer to solve a recurring headache: managing the tangled dependency webs and massive file bloat that happens when prototyping environments or importing complex third-party asset packs.

While standard Unity tools are excellent at showing you what a specific prefab relies on (e.g., clicking a model to see its assigned materials), they natively struggle to efficiently answer the reverse: What exactly in my massive project is relying on this specific placeholder texture? Deleting that texture blindly usually results in pink broken-material errors scattered across dozens of closed scenes.

This free, pipeline-agnostic toolkit provides multithreaded utilities to execute project-wide reverse-dependency lookups, safely consolidate scattered assets into clean directories, and perform asynchronous, destructive batch replacements to swap out global references (GUIDs) without forcing you to manually open a single scene or prefab.


Core Workflows & Capabilities

The toolkit is divided into three primary modules:


1. The Asset Locator (Reverse-Dependency Tracking)

This module is designed to safely track down how assets are being used across your entire project without loading heavy scenes into memory.

  • Deep Project Scanning: Assign a Texture, Material, or Prefab to execute a targeted lookup. For example, assign a normal map, and the engine will locate all materials utilizing it, and subsequently every prefab and .unity scene utilizing those materials.
  • Asset Consolidation: If you find a Prefab that relies on dependencies scattered across six different disorganized pack directories, clicking "Consolidate" will physically move the source asset, the found assets, and all underlying dependencies into a new target folder—automatically structuring them into clean subdirectories without breaking internal GUID links.
  • Package Extraction: Bundle your initial source asset, all found dependent assets, and all of their internal requirements into a localized .unitypackage. This is ideal for cleanly extracting a working subset of assets from a massive project to share with a team member.

2. The Batch Replacer (Project-Wide Rewiring)

Instead of manually digging through hundreds of materials or scenes to swap out placeholder assets for final versions, this module rewires them globally in seconds.

  • Automated Reference Replacement: The engine bypasses standard Unity APIs entirely. It utilizes asynchronous parallel background threads to read the raw text of your serialized files, finds the unique 32-character GUID of your old assets, dynamically injects the new GUIDs globally, and safely copies your originals into a backup folder.
  • Sandbox Auto-Pairing: Drag your "Old" assets into the left column, and your "New" assets into the right. The tool's algorithm evaluates filenames and automatically pairs incoming targets, stripping common iteration tags (like _v2 or _new).
  • Simulation Mode (Dry Run): Because this process is destructive, the tool defaults to a simulation mode. It runs the scan and populates a detailed checklist of affected files, allowing you to review and uncheck specific items before committing to writing any changes to your hard drive.

3. Script Backup Utility

Duplicating a .cs script inside the Unity Project window instantly causes compiler lockouts due to duplicate class names. The integrated Script Backup utility allows you to drop C# scripts, compute shaders, or JSON files into a drop zone to instantly generate safe, timestamped .txt copies. This allows you to safely maintain version history directly within Unity before a massive code refactor.


Realistic Expectations & Hard Limits

This is a pragmatic utility designed to alter raw project data for maximum speed. It operates within strict mechanical boundaries to protect your files. Before executing any batches, please review these technical constraints:

  • Strict Serialization Requirement: The Batch Replacer bypasses standard APIs to modify the raw text of your files. Because of this, your project must be set to "Force Text" serialization (Edit > Project Settings > Editor > Asset Serialization > Mode). If your project uses Binary or Mixed serialization, the execution UI will physically lock you out to prevent file corruption.
  • Destructive Operations: The replacement mode is intentionally destructive. When executed, it permanently alters your files on disk. These operations cannot be cleanly undone using Unity's standard Ctrl+Z system. Do not execute these functions unless your project is actively backed up or managed via Version Control (Git, PlasticSCM, Perforce, etc.).
  • Prefab Edit Mode Safety Block: If you attempt to execute a batch replacement while isolated inside Unity's Prefab Edit Mode, the tool will intentionally refuse to run. This prevents Unity's active memory cache from overwriting and reverting your new text replacements when you exit the prefab stage.
  • Immutable Unity Packages: Assets residing within standard Unity Packages (the Packages/ directory) are treated as read-only by the engine. The tool cannot destructively modify these files and will safely skip them.

Expand Your Pipeline & Support

The Asset Locator & Replacer targets the first major bottleneck in environment design: tangled project architecture and unmanaged dependencies. Consolidating your architecture is step one. To get the maximum performance out of Unity, consider pairing this with the rest of the Veridian optimization pipeline:

  • Step 1: Locator & Replacer (This Asset) – Cleans up architecture, unwinds tangled asset packs, and rewires dependencies.
  • Step 2: Texture Converter – Universally resizes heavy textures, pads them to standard Power-of-Two dimensions, and mechanically packs fragmented PBR channels.
  • Step 3: Materials Combinator – Takes your standardized textures, algorithmically atlases their maps together, and rewrites the underlying mesh UVs so dozens of unique props can share a single material draw-call.
  • Step 4: Mesh Constructor – Takes your atlased prefabs and physically welds their geometry together into a unified static mesh, eliminating CPU transform-hierarchy overhead.
  • Step 5: BurstLOD – Generates incredibly fast, high-quality runtime or Editor-based LODs for your welded geometry.

As a solo developer, building and maintaining these utilities takes a significant amount of time. If this free toolkit rescues your project from dependency hell, speeds up your workflow, or saves you hours of manual prefab editing, please consider leaving a rating or review on the Asset Store. Reviews are the primary way tools gain visibility and directly support my ability to keep maintaining and updating them!