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

A beginner does not need to know how to purge unneeded data or scene management. That is something that comes later on.
A beginner gets familiarised with the basic workflow, makes some simple things then works on that skillset, makes textures/shaders etc. and the moment he makes any textures (for the purpose of explaining lets assume that Blender has the ability to store Textures you created as fake user) in blender and does not save them it will be gone by the next time he relaunches blender.

Normally a user will assume that Blender should have saved all of his work, i mean i would and most people would also, but Blender does not do that and it does not tell you it will delete all your non-fake user files. Now that is counterproductive and unintuitive to a tenth degree.

You may argue that “Scene management” is important or that ‘you’ and some other projects care about “Data usage” i absolutely understand that that is important for advanced users but that is a very specific requirement and is not the norm for the larger Blender userbase and is unintuitive, seeing as Blender is free and a much larger demographic has access to it who have never worked in a DCC, and the last thing they know is that there exists a concept called “Fake User”.

What i would say for your case is that there be a option in the settings or wherever for users that want their “untagged” data to not be save when quitting Blender. Unless there is a better solution.

But the Default should be “Keep all data” or something along these lines, as many have already experienced hours of lost work unknowingly due to the “Fake user” nonsense, me included :sweat_smile:

The thing is, the software is made for professionals and thinking in a professional workflow and begginers, like all professionals were, just need to adapt and learn professional workflow.

“Normally a user will assume that Blender should have saved all of his work” That would make unecessary huge blend files. Its easy to see on asset browser blend files, were no objects will be orphan data, it arrives to 3Gb really fast, just one blend file, unless you distribute it betwen diferent blend files (better option).

I remember asking Pablo Vasquez about this when i was a begginer, and now just makes completly sense.

I will need this, mark as fake user or bring it to another scene. I will not need it, just purge. I see no better method than that sorry :grinning:

1 Like

No, there are many ways for us to get rid of the need for “fake user” yet still allow professionals to think professionally while doing professional things for other professionals.

9 Likes

What would be a better method than having fake user?

You’ll find links to development tasks and proposals about this on the blender development site, and you’ll see links to some of them earlier in this very thread.

4 Likes

It doesnot depend on professionalism, it depends on data management conditions.
There are 4 data management complexity levels, sorted by software use and type of data input:

  • Individual use + vanilla data
  • Individual use + imported data
  • Collaboration + vanilla data
  • Collaboration + imported data

Each level can reach professional state. But.

At the lowest level of the complexity (individual + vanilla data, created from scratch) you can afford any kind of data management flexibility, including heavy fractioning since you are the only data handler, owner and generator. You can cope with everything you create in many possible ways.

At the highest level of the complexity (collaboration + imported data), where lots of uncontrollable garbage data is imported from many different sources, where it is also generated automatically by different software applications, and all of this is multiplied by teamwork as well, autopurge+fake user strategy is the only viable solution, and any other possible datamanagement flexibility is quite deadly. Because the amount of garbage at this level forms a dense stream, which is not humanly possible to manage.

So datamanagement demands depends only from the level you belong to.

4 Likes

Just lost an animation I spent 3 hours on cause I didn’t put it on the NLA

Thanks blender.

5 Likes

I feel you. I’m going to work up an interim fix that should put some guardrails up so that this hopefully won’t happen again.

What would be a better method than having fake user?

Blender should be able to flag any data as orphaned, automatically. Then you could review orphaned data in one place to see, if you want to get rid of it.

Much less work than “faking users” and much safer.

1 Like

And you can, just do shift and click on the X, it becomes orphan

1 Like

Why do you want to keep the current workflow so badly?
What makes manually checking individual objects for an activated button in a UI submenu such a superior workflow than, for example, default auto-save and a manager with data block overview?

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