Find out why your build grew. Diff two builds, see the assets that shipped in more than one bundle and what that cost, and fail the build on a budget nobody is watching.A build grows 200 MB over a sprint and nobody can say which commit did it. An asset ends up in six bundles because six materials reference it, and nothing in the editor mentions that. A level bundle is 2 MB and a player downloads 62 MB to open it.Content Inspector answers those questions from what your build already wrote.THE DIFF, FIRSTTwo builds side by side, sorted by what changed most: what appeared, what grew, what went. Snapshots are plain JSON small enough to commit, so last sprint's build is still there in three months. It reads Unity's own build report and needs no Addressables at all.DUPLICATES, AND WHICH OF THE TWO MISTAKES IT ISAn asset in more than one bundle is paid for once per bundle. Two different problems produce the same symptom and want opposite fixes: named by two groups (take it out of one) or named by nobody and copied into every bundle that needed it (move it into a shared group). The cost quoted is everything except the heaviest copy - the least the fix can save, never the most. Select a row and you get the chain that dragged the asset in, through the material rather than around it. That chain is the reference somebody actually has to change.WHAT A BUNDLE COSTS TO LOADNot what it weighs. A 2 MB level bundle that depends on a 60 MB shared bundle is a 62 MB download; the Addressables window shows the 2. Dependency cycles are named too - not fatal, but they mean neither bundle can ever ship without the other.REAL WEIGHT, NOT SOURCE SIZEWhat each asset serialised to inside the bundle, by type and by group, with the heaviest assets counted across every copy. A 2 MB texture shipped six times sorts above an 8 MB one shipped once.SHADER VARIANTSCounted while the build compiles them - the only moment the number exists - after every stripping callback in the project has run, so it is what shipped rather than what the shaders declare. Select a shader to see which keywords its variants are made of.IMPORT AUDIT, ON DAY ONEThe one screen that works before you have built anything. Texture, audio and model settings that cost build size or memory, each saying what is set, what that costs and what to set instead, marked Certain, Likely or Consider. Build size and runtime memory are counted separately. Most findings are fixed from the window, one at a time or all at once; the ones that depend on how the asset is used are reported and left alone.BUDGETS THAT STOP A BUILDA limit on the build, a group, a bundle or an asset type, kept in a JSON file meant to be committed. On the build machine, Ci.Check exits non-zero when one breaks and writes the numbers as JSON either way. A budget naming a group somebody renamed is reported as broken rather than passed silently.WHAT THE PLAYER ACTUALLY GETSPoint it at the folder your bundles were uploaded to: one HEAD request each, nothing downloaded, and it reports which are missing and which are left over from an older build.WHAT YOU GETFull C# source. No DLL, no third-party code, no additional package required. 217 tests, run against Unity 6000.4. Works without Addressables on a plain build report; reads Addressables layouts when they are there. The code that does is in an assembly that only compiles when the package is installed, so the package itself depends on nothing. A 20 000-asset project is analysed in under two seconds.WHAT IT IS NOTIt is not Project Auditor - that one is free and looks at code and project settings. This looks at the bundle graph and the bytes. They answer different questions and are worth having together. It does not build for you, and it strips nothing: the shader recorder passes every variant through untouched.Build diff: two builds compared, sorted by what changed most. Snapshots are plain JSON you commit.Duplicates: every asset that shipped in more than one bundle, what it cost, and the reference chain that dragged it in.Weight: what each asset serialised to inside the bundle, by type and across every copy of it.Cost to load: what a player downloads to open a bundle, once its dependencies are counted. Dependency cycles are named.Shader variants: counted while the build compiles them, after every stripping callback has run.Import audit: texture, audio and model settings that cost size or memory, marked Certain, Likely or Consider, most fixable from the window.Budgets: limits on the build, a group, a bundle or a type, kept in a committed JSON file.CI gate: Ci.Check exits non-zero on a broken budget and writes the numbers as JSON either way.Remote content: one HEAD request per bundle against your CDN, nothing downloaded.Works with or without Addressables; reads Unity's own build report when Addressables is absent.Full C# source, three assemblies, no DLLs, no third-party code, no external services.217 tests, passing on Unity 6000.4. Editor only: nothing is added to your player build.The C# source, the documentation and the store copy were written with the help of an AI coding assistant, used the way a pair programmer would be: it drafted and revised code under direction, and every piece was read, corrected and kept or thrown out by the publisher. No generated art, audio, textures or models are included - the package contains no art assets at all, and the gallery images are screenshots of the real windows. Correctness was established by running the package, not by trusting the assistant: 217 automated tests ship with it and pass on Unity 6000.4, and the shipped .unitypackage was imported into an empty project and tested from there before submission.


