Blender Deleted My Un-assigned Materials - How is That A Feature? - Fake User

That’s not what “flagging” means. Blender should flag orphans for you, so you can see them in a list, and then you can decide what to do with them. This is proper management of excess assets and data.

Manually making orphans is not something a user should ever need to do in any program. It doesn’t make sense. This should not be confused with deleting data either, which I think you’re doing.

Flagging orphans is part of garbage collecting algorithms, which have been around for over 60 years now.

1 Like

That orphan list is also something that should be a spreadsheet kind manager that the user invokes when necessary. As a baseline - a Material is just as much work that should be saved as default as a mesh is. A material is not a utility thing that can be discarded at will - it is a piece of work like code, node setup or a model and as such should not be treated to any auto deletion ever. especially not a silent auto deletion. Period.

1 Like

I think it’s a good idea to take a step back and look at it more systematically. Average user does not want to and should not care about the ugly dump full of terminology like “orphan”, “data-block” or “fake user”. This terminology is completely unique to Blender and there are many pieces of 3D DCC packages and game engines being a clear proof that such a convoluted system with such alien terminology is not required to have a data management system users are happy with and don’t have to manage manually.

Rather than accepting this as unfortunate state of things, and trying to figure out obscure ways to make these “fake user” and “orphan” things work, we should keep fighting this. It just doesn’t belong in 21st century.

2 Likes

I absolutely agree and I am well in favor of the proposal you created in the other thread (link can be found above). If this is something that is certainly going to happen then the rework of the datablock management is what the work should be put into probably. Otherwise we might end up with people working on a fix for something that is going to be deprecated soon after.

1 Like

Because i just need to check one or two in a entire project. Thats why this current workflow works

1 Like

I’ve been doing 3D for 25 years - professionally - in multiple software packages; some of them don’t even exist any longer. Blender is the first 3D software I’ve ever used that deletes user-created assets, if the user doesn’t tell Blender - “When I save the scene, I also want you to save this material/action/whatever.”

There’s nothing “unprofessional” about finding that behavior completely bizarre.

When I first began using Blender, I (like thousands of other people) wondered why my materials were just disappearing. At some point, I finally found the Shield button. Let’s look at the tooltip:

Fake User
Save this data-block even if it has no users.

Huh? What the… I AM the user. I’m using the software…it has a user. Is this some feature for production pipelines that have multiple users sharing files? What do data blocks have to do with materials? What is a data block, and why do fake people need them? Whatever. I am a real user, so I suppose i don’t need to make this available for fake people. … where did my material go?

Even after learning “click the shield”, it took me several weeks to realize that in Blender, the word “user” isn’t referring to ME. So we have a very … unique… procedure for “don’t delete my stuff”, and then describe it in the UI using rather odd nomenclature.

I disagree with the premise that the user’s work is unnecessary, compared to the need to keep the file size low.

Imagine your spreadsheet program cleared all cell values when you saved the file, if the cells aren’t used in a formula… most people would call it utter madness, if they were told "you have to select the cell, and click the “fake accountant button”. Or if your photo editor removed all hidden layers from your image, because they aren’t being used.

Discussions on this seem to travel into debates of datablocks and garbage collection. Those are fine discussions to have, but quite simply … users are asking for a bandage. Not a room of doctors to debate how the cut happened, why the patient owns a knife, how knives can be used, proper knife storage, use of a knife vs a cleaver, the history of cutlery, or better eating habits that could reduce the need to use a knife.

By default, when a user creates a material or action, it should mark itself as protected. That’s it.

6 Likes

Assigning fake user at things that dont have any user is what allows you to have smaller blend files

Then have a purge command for it that is invoked at the time the user decides to optimize Filesize.
We are discussing in circles here. Materials and actions are never second class siticens and a program should never automatically delete things the user has invested work and time into.
Yes - it may keep filesizes down in some cases but it will cost a lot of time, nerves and potentially money in many others. And I have still not heard one good argument against that other than filesize and “professionality”.

(edit) In fairness - I could think of a scenario where it would be beneficial to not automatically save Materials or animations. When you already have a scene with a few unassigned saved materials/animations and import a lot (say, in the 100s) of assets at once pulling in a lot of assigend materials/actions you don’t need and where purging would delete other wanted things, too. Though this scenario could still be remedied with a “don’t import (x)” checkmark, a datablock manager or some other form of management tool.
But I still stand firmly by the opinion that it’s always worse having something silently deleted and that this never is “professional” just because users got used to living with it.

4 Likes

or have a global checkbox in settings to disable fake user for every file, i mean everyone can be accommodated with this, globally have it on by default (by that i mean save every material) and everyone else who dont like it turn it off, easy as that, case closed.

1 Like

I think this is not too important. I like the way it is, it is like in my job. I mark important stuff, things that are not marked will be taken out so its really efficient in my opinion.
Instead of having huge blend files

You have to take into account that non professional people use Blender, they foremost have no idea what fake user is let alone that blender does not save their files if they dont checkmark it, that is something which experienced Blender users understand.

Enforcing a “dont save by default” approach is very bad for user experience and should be changed to a more “friendly for everyone” approach, i’d rather newbies came over here to the forum and ask why their file has a large size rather than come here to complain how Blender destroyed hours and hours of their work.

Pro Blender users know their way enough to know the bad quirks of the software to default certain settings, Beginners have to go through needless frustrations of loosing data and work hours just to learn that Blender does things differently (this in my unprofessional opinion can and should be avoided at all cost).

These definitons about what a pro is and how they should work are really pointless. The only thing we can define for sure is that as with any change in an established system - it will break the workflow of at least some users. Every change will no matter how minor it seems at first.
On the flipside this doesn’t mean that it has to remain the way it is. That’s how progress goes. Things I liked have change in Blender as well. Yet I can assure a 100% that Blender is overall a much better product than it was 2 years ago. Yes - even (or specifically) for professionals.

(edit) Reply not meant directly to Dragosh. :sweat_smile:

Well, many people do. Here’s a related recent example; I do not know this user, but they don’t strike me as a newbie.

How about put “Fake User system removal” on this list? :point_down:

:slightly_smiling_face:

3 Likes

Here’s the problem, the removal would require for the devs to put in a alternative system in or at the very least a system that manages data saving or the alike.

Problem is the devs are terribly preoccupied with all the changes in our near future like the simulation nodes etc. so i’m not sure they have enough time to overhaul the fake user system (as it is a system thats very deep in the code/root by my uneducated guess).

For the moment making it fake user on by default in the settings which you can turn off, as a small quick fix untill such time that devs could focus on the Fake user more focused, or they could bring in a new dev that could work on this and other replacement systems.

Agreed, and discussions on how to approach this have been going on for years. I don’t think the only two options should be “leave completely as it is” or “redesign the entire datablock system”. Default to on Foo created, fake_user = True, add a “default fake on/off” preference checkbox, and call it - perhaps not fixed in entirety for eternity, but certainly more artist-friendly for now.

I would say this would fall under the category of one of those “Blender Workshop” things where devs and users come together to create a solution.

Because it seems to get buried in discussion all the time:

(1)

(2)

2 Likes

If everything would be saved, you would end up with a huge blend file and you had to go trought every object/image… and check the number of users and so on and then finally delete what you marked as waste. That seems really a lot of work.
Purge button allways seemed important for me

1 Like

For the sake of discussion, what do you consider a large file?

How often do you create a material, action, etc that you have no use for? I’m not suggesting that the Shield buttton be removed; merely that when you create something, it is automatically protected. The user can still click it - right after creation, so as to not protect it.

I do not suggest the purge button be removed.