UncookedOnly vs Runtime modules


I’m trying to create a plugin that both editor and runtime stuff in it.
It is kind of similar to behavior trees where I have a custom asset type that has blueprint graph which has some custom nodes that can be placed in this custom graph. (Similar composite nodes like selector, sequence or tasks in blueprint)

This is how my custom blueprint with custom nodes looks

And then in normal blueprints, there are some k2nodes that can run on this asset.
In any blueprint, k2nodes that can run on the above shown custom blueprint asset

I managed to create the plugin and realized that I need to separate all these classes into Editor, Runtime and UncookedOnly modules. But I’m kind of confused as to where which classes go.

I know that Editor stuff like

  • Details customizations
  • Slate rendering of k2nodes
  • Editor itself

goes into the editor module.

But I’m confused as to where the

  • custom nodes that are placed in my custom blueprint
  • k2nodes that can be used in normal blueprints on the custom asset

and goes to. (UncookedOnly or Runtime)

Right now everything is in one module and works in editor but I can’t create a packaged build because the module has dependency on UnrealEd.

What is difference between UncookedOnly and Runtime modules.

According to this post all nodes (other than debug nodes) would go into runtime.


But according to this post, plugin with custom blueprints, graphs, nodes should go into UncookedOnly module

4.24 Deprecation of Developer Module Type & UncookedOnly Not Working on Nativized BP Assets - Engine Source & GitHub - Unreal Engine Forums

Can someone clarify as to what exactly goes into UncookedOnly module vs Runtime module?


Edit: Added screenshots for clarity