NodeGroupPresets is an addon that saves the current values of a given nodegroup into a applyable/editable/copyable preset. Quite useful when building a verstaile node library taking away the bothersome workflow of either copy/pasting multiple values from different instances of a nodegroup or "hardcoding" presets into it's own nodegroups.
The main features of this addon are:
Saves supported sockets values/subtype/max&min limits.
Single click
: Full saveShiift + Click
: Partial saveUpdate values with the node's current values If socket order changes, you can update the preset order with it
Change socket values, name from the active preset
Add or remove sockets from the active preset. Adding has the same Non-shift
`Shift` behaviour when saving presets
You can copy/paste presets from different nodegroups, even if they are in different files! Under the hood it copies a JSON dictionary to the clipboard.
It will only work properly if all socket paths (panel name + socket name) are unique. Meaning, sockets can have the same name as long as they are not in the same panel (base level included).
If socket name changes to a non convertable type, it will ignore it. To make it work again, remove said socket and add it back (update not resolving it automatically seems like a safer option)
Commit History: https://codeberg.org/oeykmiih/bpy_nodegroup_presets/compare/0.6.0...0.6.2
Full History: https://codeberg.org/oeykmiih/bpy_ark/commits/branch/master/search?q=nodes.presets
Notable Changes:
This extension requests the following permission:
Copy/paste presets between nodedroups and across files
Greetings,
It contains a single utils
module that I develop in a separate repository to reuse in all the addons I'm writting.
I've kep the _vendor directory mainly to be consistency with the structure of my other addons, specially since this is extracted from a bigger in scope, more experimental one.
Thank you for pointing it out, corrected.
Quick test:
Note: i am not an official reviewer.
In the blender_manifest.toml
:
maintainer = "Joao <joao@kyeo.xyz>"
(the email needs to be between <>
).NodeGroup
.Oterwith, everything is looking good!
Sign in to comment.
Ready for review