Page MenuHome

Library overriding a linked collection within a library overridden collection will not stay saved
Closed, ArchivedPublic

Description

System Information
Operating system: Windows-10-10.0.19043-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 471.96

Blender Version
Broken: version: 3.0.0, branch: master, commit date: 2021-12-02 18:35, hash: rBf1cca3055776
(also tested in 2.93 with same issue observed)

Short description of error

Library overriding a linked collection (b) with a linked collection (a) within it, and then library overriding linked collection (a),
results in linked collection (a) not staying overridden after saving and reloading the file, but instead returning to it's initial linked collection state.
( linked collection (a) is not already overridden in the file linked collection (b) was linked from )

additional observation:
the overridden collections, while removed from the scene, seem to stay in the file even after the override has reverted,
but are removed (as orphan data assumingly) on the second save and reload, with the objects within the collections disappearing on the third.

Exact steps for others to reproduce the error

From blends:
Unzip the 3 blends to the same folder
Open "Linked and overridden Collection_b with linked Collection_a"
library override Collection_a
save and reload and see Collection_a reverting from being overridden.

Full steps:
Save a file with a collection (a)
In a new file, link the collection (a) within another collection (b) and save the file
In another new file, link and library override collection (b), then library override the collection (a) within it
save and reload and see collection (a) reverting from being overridden.

Event Timeline

Kristian Halvorsen (krisoyo) renamed this task from Library overriding a linked collection within a library overridden collection will not save to Library overriding a linked collection within a library overridden collection will not stay saved.Dec 19 2021, 8:38 AM
Kristian Halvorsen (krisoyo) updated the task description. (Show Details)
Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.Dec 23 2021, 7:57 AM
Richard Antalik (ISS) added a project: Core.

No bug here, you are trying to make a library override of a liboverride of an empty object instantiating a linked collection from a different library, within a liboverride of a collection. This will not work since it will try to modify the objects owned by your liboverride of Collection_a from your Collection_b with linked Collection_a.blend file, this is not supported. Will add a check for those case in the operator.

You should instead properly link Collection_a in the viewlayer of your scene in the Collection_b with linked Collection_a.blend file, get rid of the empty there, and then in your final file you can override everything in expected way. But this remains a fairly complex case with inter-related overrides of IDs from several different libraries, not recommended at all.

TL;DR: Do not expect to be able to liboverride instantiating empties using linked collections from other .blend files inside other liboverrides... You can make it work manually, but such exotic, non recommended nightmares with dependencies between several libraries will not be supported by automatic, high-level tools like liboverride hierarchies handling, and you should expect issues.