Page MenuHome

Library Overrides: Shader drivers stop working after save and reload
Confirmed, NormalPublicTO DO


System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71

Blender Version
Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-11-02 08:33, hash: rBd49c71e96e55

Short description of error
Shader drivers seem to stop working after a file with a library override is saved and reloaded. This can be fixed by running Resync Library Override Hierarchy on the collection every time the file is opened.

Exact steps for others to reproduce the error

  • File:
  • Link the CH-plane collection to a fresh file and Make Library Override.
  • Enter Material Preview in the 3D viewport.
  • On the armature's only bone, find the "transparency" custom property and change it. It works.
  • Save your file and reload it. The transparency custom property no longer works.
  • Resync the collection and it works again.

CC @Bastien Montagne (mont29)

Event Timeline

Bastien Montagne (mont29) changed the subtype of this task from "Report" to "To Do".Nov 4 2020, 4:27 PM

This is expected currently, as node trees are not overridable yet.

Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Nov 5 2020, 1:09 PM

For now it is possible to work around this by relaying the information through a custom property on the material:

  • Add a custom property to the material and move the currently existing driver to it.
  • Use a driver that reads the material's custom property from the node tree.

This works because overrides on datablock custom properties are supported, and references from a datablock to itself are effectively always implicitly and automatically overridden due to the way things work internally, even if actual overrides aren't implemented for that property (this is why the intermediate property must be on the material itself).

Note: If you open the shader editor on the overridden material it would seem like the values don't update, but the actual dependency graph is correct and Eevee & Cycles react to the value changes.