Most overrides in a mature project do nothing.
Dead Overrides walks your prefab variant chains and reports the overrides that have stopped mattering: values identical to what they override, values pointing at properties that no longer exist, values buried under another override further down the chain. It also finds prefab families that have quietly become copies of each other.
Variant chains accumulate, they never compact
A prefab variant records every property it overrides on its parent. Over a production cycle those records pile up and nothing ever removes them. The base prefab gets updated to the value the variant was already forcing, and the override becomes redundant — but it stays, and now it silently blocks the base from ever changing that value again. A component is removed and its overrides linger, pointing at nothing. A deeper variant sets the same property again, and the intermediate override becomes unreachable.
The Editor shows you a blue override marker for all of these equally. It does not tell you which ones still carry intent, and it counts a freshly created variant as already having eleven overrides before you have touched anything. By the time a chain is four levels deep, nobody on the team can say what is load-bearing.
Findings
- Redundant The override sets a property to the value it would already have inherited. Deleting it changes nothing today — and lets the base prefab drive the value again tomorrow.
- Stale The override targets a property or object that no longer exists in the source, usually left behind by a removed component or a refactored script.
- Shadowed A later link in the chain overrides the same property, so this one can never take effect. Common in deep chains and easy to mistake for the value that is actually winning.
- Duplicate families Separate prefabs whose structure and values have converged closely enough that they are candidates for consolidation into a shared base.
- Baseline aware The overrides Unity writes automatically at variant creation are recognised as such and reported separately, so the counts reflect decisions your team made rather than bookkeeping the Editor did.
For the detail behind that last point, see Every prefab variant is born with 11 overrides.
Typical uses
Before touching a base prefab. You need to know which variants will ignore your change because they override the property, and which of those overrides are redundant and could be dropped.
Inheriting a codebase. A report of what is actually load-bearing in the variant chains is faster than clicking through them one at a time.
Consolidating art content. Duplicate detection surfaces prefabs that three different people built to the same spec on three different weeks.
Debugging "why won't this value stick". Shadowed overrides are the usual answer, and they are close to invisible in the Inspector.
Compatibility
- Unity 2022.3 LTS and newer, including Unity 6.
- Serialization Project must use Force Text asset serialization (Project Settings → Editor → Asset Serialization).
- Legacy prefabs Pre-2018.3 prefab files are recognised and handled rather than skipped, which matters in projects carrying old third-party packages.
- Safety Read-only. The tool reports findings; removing an override remains a deliberate action you take in the Editor.