ArTchie Studios

Prefab Override Diff

Lists prefab instance property overrides in scenes versus their source prefab.

Editor-only. Unity 2021.3+. Lives in Rivet.Editor (includePlatforms: Editor). No extra packages.

Editor window

ArTchie / Rivet / Prefab Override Diff

Control What it does
Open scenes only On (default): scan loaded scenes. Off: every scene under Assets/ (skips Packages/ and Library/).
Include default overrides Off (default): hide root position / rotation / scale defaults.
Scan Walks prefab instance roots; lists instances with at least one property override.
Copy JSON Puts the report JSON on the clipboard.
Write report Writes <project>/RivetReports/prefab-override-diff.json (creates the folder if needed).
Ping Selects and pings the instance. Opens the scene additively if it is not loaded.

Each row is: scene path, GameObject hierarchy path, source prefab path, and override property paths.

Batchmode (CI)

Unity -batchmode -nographics -quit -projectPath <proj> -executeMethod Rivet.PrefabOverrideDiff.RunBatch -rivet-out <file.json> -rivet-fail
Arg Meaning
-rivet-out <file.json> Output path. Default: <project>/RivetReports/prefab-override-diff.json
-rivet-fail Exit code 1 if any instance with overrides was found; otherwise 0
-rivet-open-scenes Scan only scenes that are already loaded (default batch scan is every Assets/ scene)
-rivet-defaults Include default overrides (root pos/rot/scale)

RunBatch only calls EditorApplication.Exit when Application.isBatchMode is true. It logs count= and the output path.

Also accepts -rivet-out=file.json.

JSON

{
  "tool": "PrefabOverrideDiff",
  "generatedUtc": "2026-08-18T02:00:00Z",
  "count": 1,
  "items": [
    {
      "scene": "Assets/Scenes/Main.unity",
      "objectPath": "Level/Door",
      "prefabPath": "Assets/Prefabs/Door.prefab",
      "overrides": ["m_LocalPosition"]
    }
  ]
}

prefabPath is "" when the instance source is missing. Vector / color component suffixes (.x / .r …) are collapsed to the parent path.

Notes

  • Uses PrefabUtility.HasPrefabInstanceAnyOverrides, GetObjectOverrides, and GetPropertyModifications.
  • Added / removed component overrides are not listed (those APIs are noisy). An instance is reported only when a property modification remains after default-override filtering.
  • Nested prefab instance roots are included.
  • All-scenes scan: additive open+close in the Editor window (prompts to save, restores your previous setup); OpenSceneMode.Single in batch.
  • Empty projects and a missing RivetReports folder are fine (count 0).
  • Does not apply or revert overrides. Does not touch runtime player code.

Source in the box: Assets/ArTchie Studios/ArTchie-Suite/com.artchie.rivet/Documentation/PrefabOverrideDiff.md