Is there a way to create custom Node types or Nodes Categories using Python?

I want to create custom Nodes for my plugin, and I’ve found a few places on the web that say it can’t be done, and a few places I’ve seen people say yes, but haven’t explained how.
So what is the truth, is it possible or not? And if so, how easy is it to do it? Any examples?

What is possible:

  • Node groups that combine existing nodes, either as assets or generated with Python code.
  • A fully custom node graph that your code evaluates, outside of Blender’s native node systems.

Not possible:

  • Extending native shader, compositing or geometry nodes with completely new nodes.

There is an add-on which generates completely ‘new’ nodes (Udon) but those currently aren’t shareable outside of the .blend file that generates them. I believe the dev is planning to add such functionality but not currently possible like Brecht said.

I too would like to have different categories for the large amount of custom node groups that I ship with my add-on, but we are currently limited to them all being the same type of ‘Node Group’.

1 Like

You can have your own menu items, you can cheat off my bricktricks addon


To be clear, that’s not what I meant by completely new. These are still effectively node groups, with more or less convenient ways to package and use them. Add-ons can not (realistically) do more than that.