Overrideproof — Prove Your Override Edits Survive The Next Open
OverrideProof 1.2.0 — documentation
What it is for
A library override lets you change a linked asset inside your own scene.Blender records each change as an override edit and ties the whole override tothe library by name. If that name stops existing in the library, the overridecannot be matched on the next open: Blender builds a fresh one from the libraryand your edits are gone, silently.
OverrideProof answers two questions. Before: what would the next opendestroy. After: what did it destroy. It changes nothing and fixes nothing.
Where it lives
Press N in the 3D Viewport and open the Overrides tab in the sidebar.
Check The Libraries
This is the one to press when someone tells you the asset library changed,or before you close a file you care about.
It walks every override in the file, opens each library file on disk in readonly mode, lists the names inside it, and compares. Nothing is linked andnothing is loaded into your scene. For every override whose original is nolonger in the library it reports the object, how many of your edits are on it,and what those edits are.
The summary is one of four things: all your edits still match the libraries;the next open destroys a given number of edits; some overrides no longer standon anything; or one or more libraries could not be read, in which case it saysplainly that the file was not fully checked.
Remember The Edits
Writes a snapshot of every override and every edit into a text block insideyour .blend. It has to live in the file rather than in memory, because the losshappens while the file is closed.
Press it when your overrides are in the state you want to keep. Save thefile afterwards, the same as any other change.
Prove Nothing Was Lost
Compares the file as it is now against that snapshot. For each override itreports edits that are no longer recorded, and for each override that could notbe matched at all it reports how many edits died with it, together with the newname the library gave it and what changed in numbers.
Records are matched by what they were built from in the library, not by thename you gave them locally, so renaming an override in your own file is notreported as a loss. If the same asset is in the scene twice, both copies aretracked separately.
Report to Text
Puts the whole report into a text block called OverrideProof Report insideyour file, for pasting into a message to whoever maintains the library.
What it never does
- it does not resync anything — that decision is yours
- it does not write to library files, ever
- it does not change your scene: the only things it writes are the snapshotand the report text blocks, and only when you press the button
- it does not report a library it could not read as a library thatmatches — neither when checking nor when proving
Two things worth knowing
It asks Blender to tidy its own bookkeeping. Blender writesdown an override edit when you save the file or when an action goes onto theundo stack. Before that the list is empty, and an add-on reading it would sayyou have no edits at all while six of them are about to die. So the check asksBlender to work the list out now. Measured: the list that comes back is exactlythe one saving produces, and not one value in your scene changes. What Blenderrecords for itself — the object list of an overridden collection, whichmodifier is currently active — is not counted as an edit of yours.
Not every missing name means a loss. For an overriddencollection Blender substitutes a placeholder and keeps your edits: measuredacross two opens in a row, every edit survived. That case is reported as anote, not as a loss. And when the library has lost one asset and gainedanother, the add-on compares what your override was built from against thenewcomer before calling it a rename — otherwise it says plainly that this is adifferent thing.
Reading the findings
Blocking means edits of yours are at stake: either the nextopen will destroy them, or they are already gone, or a library could not bechecked at all.
Risky means the override still stands on the same thing inthe library, but some edits that were in the snapshot are no longer recorded.If you did not undo them yourself, they were dropped.
Plain notes cover the harmless cases: an asset that left the library whileyou had no edits on it, or an override that is new since the snapshot.
What was measured
Renaming an object in the library and reopening the scene: six recordededits became zero, the position went from 5.0 back to 0.0, an added modifierdisappeared and a material reverted to the library one. Moving the same objectinto a sub-collection of the library instead: all six edits kept, position,modifier and material intact — which is why the add-on stays quiet in thatcase. Deleting a different object from the library: your edits untouched, andno finding about them.
Sixty-nine checks run on Blender 4.2, 5.1 and 5.2 with no problems, andnineteen deliberate breakages of the add-on all turn that suite red.
Limits worth knowing
It compares names, because that is what Blender itself matches on. If anasset is renamed and then renamed back before you open the file, nothing wasever at risk and nothing is reported.
A snapshot written by a different version of the add-on is not comparedagainst; it says so rather than guessing.
Requires Blender 4.2 or newer.
Checking a whole folder
The sidebar has a Whole Delivery panel. It has two buttons.
Check A Folder Of .blend Files runs this product over every.blend in the folder you pick. Check A Folder With Every Check YouOwn runs every tool from this line that you have installed, over thesame files, in one pass — one report, one verdict.
Each file is opened in its own background Blender. Your open scene is nevertouched: not opened over, not saved, not modified in any way. This is also why afile that will not open costs you only that file — the rest of the delivery isstill checked. Press Escape to stop; nothing partial is written, because areport covering half a delivery is a report nobody should trust.
When it finishes you get an HTML report next to the folder. It is one filewith nothing loaded from the internet, so it can be attached to an email, put inthe delivery folder, or opened years later on a machine that has never seen thisadd-on.
Running it from a pipeline
The same check runs headless, with no interface and no person, and finisheswith a code your build system can read: one code for clean, another whensomething blocking was found, and a third when a file could not be checked atall. Those last two are deliberately different. A check that did not run has notpassed, and a gate that treats silence as success will one day wave through thedelivery it existed to stop. The exact command line is in the add-onpreferences.
Comparing against last week
Any run can be saved as a baseline. A later run then reports what changed:which numbers moved and in which direction, which findings are new, and whichones you have fixed since. Direction matters and is not guessed — eachmeasurement carries its own sense of which way is worse, so rising coveragereads as better and rising drift reads as worse.
Signing a file off
When a file is clean you can sign it off. The record lives inside the .blenditself, not in a folder next to it, so it travels with the file: open it nextmonth and it tells you when it was checked, by which version, and how it cameout. If the file is saved after that, the record says plainly that it is out ofdate — a sign-off that survives an edit it never saw would be worse than nosign-off at all.
One tab instead of twelve
Every tool in this line can put its panel under a single shared sidebar tabinstead of its own. One button does it for all of them at once, and each panelarrives collapsed, so twelve tools cost you one tab and no scrolling. Yourchoice is remembered, and a tool that you later use on its own can be given itsown tab back the same way.
What is deliberately not claimed
A check that could not run is reported as exactly that, never as a pass. If atool from this line is not installed, or is an older version that predates thecombined run, the report names it in a list of checks that did not take part,so the gap is visible rather than quietly absent.