← All ideas
  • Published 9 Jun 2026

Add option to automatically set certain datablock types as Fake User upon creation.

There is a recurring complaint by Blender users that some datablocks should not be discarded when exiting Blender by default. Usually this is specifically about Materials. Because Materials are usually thought of as entities that can exist separate from objects, users don't expect Materials that are not currently being used by some object to be discarded when exiting Blender. Even users that already know that is how Blender behaves, it's easy to forget to set a Material as Fake User before exiting, and because there is no warning, hours of work can be lost because of that small mistake.

I think there is a simple solution that would solve this, give users more freedom and would not require any major changes on how Blender handles orphan datablocks.

My proposal is that there could be, somewhere in Preferences, a place where the user can check "Automatically set as Fake User upon creation", for each datablock type - it's important that the setting is independent for each type, so the user can pick and choose which ones to turn on or off. The Material datablock type could have this option turned ON by defalt, while other datablocks would have it off by default. These settings could be inside the "Editing" tab, or perhaps on its own new "Datablocks" tab in the Preferences window.

When this setting is turned on for a particular Datablock type, creating a new istance of the datablock would automatically set it as Fake User, preventing it from being discarded when exiting Blender.

EDIT: There is a similar proposal in devtalk that got lots of support, but sadly was never addressed by devs: devtalk.blender.org/t/proposal-explicit-management-of-data-blocks-and-possible-deprecation-of-fake-user/22852/5 One thing I really like about it is changing the term "Fake User" to "Persistent" vs. "Disposable" datablocks. It's much clearer for the user. I think every Blender user can relate to being a beginner and being confused by what does "Fake User" mean.

The difference in that proposal is that some datablocks will always be persistent and others will not be, and the user has no freedom to choose which is which. My proposal is: give users total freedom to customize how Blender will handle each type of datablock, as different users might have different preferences. Which datablocks will be marked as Persistend by default is another discussion that can have lots of different points of view. Just adding the option I propose, in Preferences, even if the default is off for every datablock, will not affect how Blender behaves unless the user changes the setting, so it won't catch users by surprise with a different behavior.

Their proposal also includes more complex things, like adding new UI panel for datablock management, which is cool but I think can be a separate proposal. I propose starting small and going from there: just start by giving the users the freedom to choose, no need to add a new panel of anything like that yet - that can be done later in a different task.

100%

Development Status: Open

Upvote 3 Downvote 0
alexandre.marcati
9 Jun 2026

1 Comment

Justin-Davis-4

I think this is heading in the right direction, but I would go one step further and reconsider the assumption that an orphaned datablock should automatically be disposable in the first place.

An orphaned datablock only tells us that it currently has zero users. It doesn't necessarily mean the user no longer wants it. I recently lost an Action because I accidentally switched the active Action on an object. The original Action then had zero users and, because I hadn't given it a Fake User, it disappeared after saving/reloading. Thankfully I had a backup and could append it rather than recreate the animation.

I'd prefer Blender to retain orphaned datablocks by default and make deletion an explicit cleanup operation. The existing orphan detection could remain, but instead of automatically purging those datablocks, Blender could provide a clear interface for reviewing and deleting unused data manually.

There could still be a "Persistent" designation similar to Fake User. Its purpose would be to tell Blender, "I know this has no users; I intentionally want to keep it," so it no longer appears among datablocks suggested for cleanup.

That would create a clearer distinction between "unreferenced" and "unwanted." Those aren't necessarily the same thing, and I think destructive cleanup is safer when it's an explicit user action rather than something users have to remember to prevent ahead of time.