A command-line tool for analyzing and inspecting Unity build output—AssetBundles, Player builds, Addressables, and more.
Commands
| Command | Description |
|---|---|
analyze |
Extract data from Unity files into a SQLite database |
dump |
Convert SerializedFiles to human-readable text |
archive |
List or extract contents of Unity Archives |
serialized-file |
Quick inspection of SerializedFile metadata |
find-refs |
Trace reference chains to objects (experimental) |
Quick Start
# Show all commands UnityDataTool --help # Analyze AssetBundles into SQLite database UnityDataTool analyze /path/to/bundles -o database.db # Dump a file to text format UnityDataTool dump /path/to/file.bundle -o /output/path # Extract archive contents UnityDataTool archive extract file.bundle -o contents/ # Quick inspect SerializedFile UnityDataTool serialized-file objectlist level0 UnityDataTool sf externalrefs sharedassets0.assets --format json # Find reference chains to an object UnityDataTool find-refs database.db -n "ObjectName" -t "Texture2D"
Use --help with any command for details: UnityDataTool analyze --help
Use --version to print the tool version.
External TypeTree Data
Starting with Unity 6.5, asset bundles can be built with TypeTree data extracted into a separate file. When bundles are built this way, the TypeTree data file must be loaded before the bundles can be processed.
The --typetree-data (-d) option is available on the analyze and dump commands:
# Analyze bundles that use an external TypeTree data file UnityDataTool analyze /path/to/bundles --typetree-data /path/to/typetree.bin # Dump a bundle with external TypeTree data UnityDataTool dump /path/to/file.bundle -d /path/to/typetree.bin
Note: This option requires a version of UnityFileSystemApi from Unity 6.5 or newer. Using it with an older version of the library will produce an error message.
Installation
Building
First, build the solution as described in the main README.
The executable will be at:
UnityDataTool/bin/Release/net9.0/UnityDataTool.exe
Tip: Add the directory containing
UnityDataTool.exeto yourPATHenvironment variable for easy access.
Mac Instructions
On Mac, publish the project to get an executable:
Intel Mac:
dotnet publish UnityDataTool -c Release -r osx-x64 -p:PublishSingleFile=true -p:UseAppHost=true
Apple Silicon Mac:
dotnet publish UnityDataTool -c Release -r osx-arm64 -p:PublishSingleFile=true -p:UseAppHost=true
If you see a warning about UnityFileSystemApi.dylib not being verified, go to System Preferences → Security & Privacy and allow the file.
Related Documentation
| Topic | Description |
|---|---|
| Analyzer Database Reference | SQLite schema, views, and extending the analyzer |
| TextDumper Output Format | Understanding dump output |
| ReferenceFinder Details | Reference chain output format |
| Analyze Examples | Practical database queries |
| Comparing Builds | Strategies for build comparison |
| Unity Content Format | TypeTrees and file formats |