Dependency-Aware Asset Cleanup for DAZ Studio
This is a standalone DAZ Studio add-on for deleting a selected asset or folder together with its discovered dependencies.
Why this product exists
Deleting a visible DUF file is rarely the same as deleting a complete DAZ asset. A character can reference DSF data, textures, thumbnails, scripts, shared base files, and content stored in another registered library. AssetGuard Purge scans those relationships first so you can review the exact source and decide what is safe to remove.
What it does
- Adds `Delete Asset` to the Content Library context menu through the compiled plug-in.
- Scans a selected asset, several selected assets, or a normal content folder.
- Reads ordinary and gzip-compressed DUF/DSF files.
- Resolves relative, content-relative, absolute, UNC, `node:/`, `./`, and `‥/` references.
- Shows `Reference / source`, `Resolved file`, and `Status` for every discovered file.
- Uses an external JSON protection manifest; no absolute library path is hard-coded into the script.
- Keeps protected rows unchecked and ignores them in all bulk-selection buttons.
- Marks shared files as `SHARED / REVIEW`.
- Keeps the references panel collapsed by default and limits it to an internal scrollable area.
- Optionally removes empty subfolders without removing a mapped content root.
- Displays a final confirmation before permanent deletion.
Button guide
- `Select all` checks every existing row eligible for automatic selection. Protected rows are skipped.
- `Deselect all` clears automatically controllable rows. Protected rows are skipped.
- `Invert selection` toggles automatically controllable rows. Protected rows are skipped.
- `Show references` opens the incoming-reference list for the selected row. Click it again to collapse it.
- `Remove empty subfolders after deletion` removes only folders left empty by the operation.
- `Delete selected` opens the final confirmation and deletes only checked, existing, deletable files.
Protection manifest
`daz_asset_purge_protected.json` is used by this product. It contains exact relative file paths from a supplied content library. Protected rows start unchecked and can be enabled only by clicking the individual row. `Select all`, `Deselect all`, and `Invert selection` never change them.
Protection is based on the exact relative path and the library where the manifest is stored. Folder names such as `Genesis`, `Runtime`, or `Textures` are not blocked by themselves. A blank manifest disables base-content protection. Export Asset does not read this file.
Installation
1. Copy `plugins/daz_asset_purge_plugin.dll` to the DAZ Studio plug-ins folder:
\plugins\
2. In any registered DAZ Studio Content Directory, create or use `Scripts/Utilities/` and copy both files there:
Scripts/Utilities/daz_asset_purge.dsa
Scripts/Utilities/daz_asset_purge_protected.json
For example:
\Scripts\Utilities\
3. Do not rename the DLL, DSA, or JSON file. Restart DAZ Studio.
4. Right-click an asset or folder in Content Library and choose `Delete Asset`.















