UnityDataTool

March 11, 2026 · View on GitHub

A command-line tool for analyzing and inspecting Unity build output—AssetBundles, Player builds, Addressables, and more.

Commands

CommandDescription
analyzeExtract data from Unity files into a SQLite database
dumpConvert SerializedFiles to human-readable text
archiveList or extract contents of Unity Archives
serialized-fileQuick inspection of SerializedFile metadata
find-refsTrace 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.exe to your PATH environment 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.


TopicDescription
Analyzer Database ReferenceSQLite schema, views, and extending the analyzer
TextDumper Output FormatUnderstanding dump output
ReferenceFinder DetailsReference chain output format
Analyze ExamplesPractical database queries
Comparing BuildsStrategies for build comparison
Unity Content FormatTypeTrees and file formats