ArTchie-Bedder-Suite / Docs / Anvil
Build Settings Auditor
Sanity-checks EditorBuildSettings scenes and a few PlayerSettings fields (product / company, scripting backend, color space).
Editor-only. Unity 2021.3+. Lives in Anvil.Editor (includePlatforms: Editor). No extra packages.
Editor window
ArTchie / Anvil / Build Settings Auditor
| Button | What it does |
|---|---|
| Scan | Reads the build scene list, every scene under Assets/, and PlayerSettings. |
| Copy JSON | Puts the report JSON on the clipboard. |
| Write report | Writes <project>/AnvilReports/build-settings.json (creates the folder if needed). |
Project scene listing skips Packages/ and Library/.
Batchmode (CI)
Unity -batchmode -nographics -quit -projectPath <proj> -executeMethod Anvil.BuildSettingsAuditor.RunBatch -anvil-out <file.json> -anvil-fail
| Arg | Meaning |
|---|---|
-anvil-out <file.json> |
Output path. Default: <project>/AnvilReports/build-settings.json |
-anvil-fail |
Exit code 1 if any item has severity: "error"; otherwise 0 |
-anvil-fail-unlisted |
Also exit 1 if any unlistedScene item exists. Promotes those items to error in the JSON. |
RunBatch only calls EditorApplication.Exit when Application.isBatchMode is true. It logs count= and the output path.
Also accepts -anvil-out=file.json.
Without -anvil-fail-unlisted, scenes under Assets/ that are not in the build list stay info and do not fail the process.
JSON
{
"tool": "BuildSettingsAuditor",
"generatedUtc": "2026-08-18T02:00:00Z",
"count": 3,
"items": [
{
"rule": "missingEnabledScene",
"severity": "error",
"detail": "Enabled build scene is missing on disk (index 0).",
"assetPath": "Assets/Scenes/Gone.unity"
},
{
"rule": "unlistedScene",
"severity": "info",
"detail": "Scene under Assets/ is not in EditorBuildSettings (info unless -anvil-fail-unlisted).",
"assetPath": "Assets/Scenes/Dev.unity"
},
{
"rule": "colorSpace",
"severity": "info",
"detail": "PlayerSettings.colorSpace is Linear.",
"assetPath": ""
}
]
}
Rules
| Rule | Severity | Meaning |
|---|---|---|
missingEnabledScene |
error | Enabled EditorBuildSettings scene GUID/path is missing on disk |
disabledScene |
warn | Scene is in the build list but disabled (detail notes if the asset is also missing) |
noBuildScenes |
warn | Build list is empty |
noEnabledBuildScenes |
error | Build list has entries but none are enabled |
unlistedScene |
info (error if -anvil-fail-unlisted) |
Scene under Assets/ is not in the build list |
emptyProductName |
error | PlayerSettings.productName is empty / whitespace |
emptyCompanyName |
error | PlayerSettings.companyName is empty / whitespace |
colorSpace |
info | Current PlayerSettings.colorSpace |
scriptingBackend |
info | Active build target + ScriptingImplementation (Mono vs IL2CPP note) |
scanFailed |
error | Unexpected exception while auditing |
assetPath is "" for player-settings / list-wide rules.
Notes
- Scripting backend is read with
PlayerSettings.GetScriptingBackend(BuildPipeline.GetBuildTargetGroup(activeBuildTarget)). If that API throws, the item detail says so and the rest of the report still writes. - Color space and scripting-backend rows are always emitted (info), so a clean empty project still gets a small report.
- Empty projects and a missing
AnvilReportsfolder are fine. - Does not modify Build Settings or PlayerSettings. Does not touch runtime player code.
Source in the box: Assets/ArTchie Studios/ArTchie-Suite/com.artchie.anvil/Documentation/BuildSettingsAuditor.md