Deconstructing

Deconstructing is the process of turning a custom node back into a node group. This is useful if you need to make changes to the internals and/or custom properties of a custom node.

Deconstruct Custom Node

Screenshot of the Node Kitchen, showing the "Deconstruct Custom Node" button. Whenever a custom node is active in a node editor, you will find the Deconstruct Custom Node button in the Node Kitchen.

When clicking Deconstruct Custom Node, the active instance of the custom node is converted into a node group containing the node setup of the custom node, as well as all the corresponding custom property setup. No other instances of the custom node are affected, and no changes are made to the custom node itself.

If you want to apply any changes to the custom node itself, simply make the changes on the deconstructed group, and recook the node.

Note

When selecting a custom node inside a node group, UDON does not consider it active, and does not show the Deconstruct Custom Node button. The containing node group is treated as active instead, as configuring custom nodes is prioritised. To deconstruct a custom node, make sure to select an instance of the node at the root tree in your node editor.

Nested Custom Nodes

When deconstructing a custom node whose internal node tree contains other custom nodes, UDON will try to match them to the custom nodes available within the current session (both local and library nodes). This is done by checking that they have the same name and cooking timestamp.

If matching nodes are found, they will be used within the resulting node group and will appear as usual custom nodes. Custom nodes without a match (for example because the custom node has since been deleted or modified) are kept as "internal nodes". Screenshot of an internal node.

Internal nodes only exist within the deconstructed node group, and are not available in the Add menu, nor the Node Pantry. These nodes are marked with a [~] prefixing their name (to indicate that they are not an exact match to a potential custom node of the same name).

This ensures that no changes are made to the functionality of the node tree when deconstructing, even if modifications have been made to custom nodes that exist within the node being deconstructed. If desired, you can manually replace such internal nodes with updated versions, or keep them as is.