Are library overrides broken?

@dfelinto I’m not sure who is the responsible of this, I mention you but feel free to point this towards the correct people.

When we do a link of a simple object, and then we do an override to modify the color of the material, the override is working, we can change the color and it works… but…

… as soon as we save the file, close Blender and open it again, there is no override, it picks teh material of the original linked object, the same happens with the geometry, I can do an override, modify it, but as soon as I save the file and open it again, no override.

Or I’m doing something wrong, or overrides are broken and are not being saved.

This is kind of important in production, because if we need to modify the material of a character for a shot, right now we can’t if we don’t break the link to the library collection, and then if we modify the rig or other thing the changes are not present in the shot :S

3 Likes

You have to make an override at each level of dependency.
If you make an override on a linked collection, you have to pick an object.
I don’t know why you have to pick one, because result is all object of collection can be overridden, at that moment. So, you can add overrides to Object properties.
But Mesh Object data and Material data are still linked, you can not add overrides to it.
You have to shift click chain icon of datablock in properties to add another override level.

What you probably did : you made an override of a material that is relative to a mesh data that is still linked. So, you save, override is not preserved.
To make it work, you have to make an override in object data tab, at mesh level, first. Then, you can make an override of material.
Or Material have to be Linked to Object, not to Mesh in original .blend file.

It probably should be impossible to add an override to a material that is relative to a mesh that does not have an override. Or rather adding an override to a material that is relative to a mesh should automatically create an override at mesh level, too.

I’ll repeat the test, but so far I think we did that, and the override is not preserved anyways :stuck_out_tongue:

Well. I can’t reproduce the problem.
When I have that in outliner, override is not preserved.
bad_Lib_O

But if I have that in outliner, override is preserved.
good_Lib_O

Have you tried modifying the material to see if the changes are saved? Because the icon is preserved, but the changes are not.

Oops ! I tested Viewport Display to have instant feedback.
That works for this panel that has decorators.
But you are right that material nodes are not supported.
You have to make material local.

1 Like

And even in the case you make the material local, when you reopen the file the material applied is not the local one, but the linked one :S

I think Library Overrides are broken right now, they don’t seem to work, even the mesh one for example, try modifying the mesh save and reload, you will see no changes are saved.

1 Like

Bastien told in this similar/related bug report: T74746

Override of materials is currently glitchy at best, this is a known issue. the only scenario which is kind of working is indeed to override object and obdata, or to assign materials to object instead of obdata…

2 Likes

Indeed, a local Material linked to Object is working.

3 Likes

This workaround is broken since 2.93 unfortunately! ⚓ T82404 Library Overrides: Shader drivers stop working after save and reload

1 Like