Properties

In this section, you can configure which properties will appear in you custom node UI, and how they will be displayed.

Exposing Properties

Exposing an inner property enables it to be controlled from the custom node UI once the node is cooked. You can expose almost any property of any node inside your source node group.

To expose a property, make sure you are inside the source node group that you want to turn into a custom node. Then simply RMB click on the node property you want to expose, and select Expose to Custom Node. A matching property will appear in the Properties list.

The created custom property is automatically linked to the inner property you exposed. You can read more about property links on the property links page.

Note

Screenshot of a math node showing a checkmark on the "operation" and "clamp" properties, and an X on each of the "value" sockets. You can only use UDON's property mechanism to expose actual node properties, not socket values.

To expose sockets, simply use the standard procedure as with any node group, and connect them to group inputs/outputs. The groups inputs and outputs will still be available as sockets once the group is cooked into a custom node.

Properties List

Screenshot of the "Property List" section of the Node Kitchen. Here you can find and manage all custom properties that have been added to the source node group being edited. Additionally, the interface enables you to add pseudo-properties here.

The order of the properties in the Properties list defines the order in which the actual properties will appear in the custom node UI.

The UI buttons next to the Properties list are as follows:

Add Label

Inserts a Label pseudo-property below the active element in the Properties list.

Add Separator

Inserts a Separator pseudo-property below the active element in the Properties list.

Move-Up/Move-Down

Moves the active element in the Properties list up or down, enabling you to rearrange the order in which the properties will be shown in the custom node UI.

Remove property

Removes the active element from the Properties list.

Property Settings

Screenshot of the "Property List" and "Property Settings" sections of the Node Kitchen, showing the settings for a property called "Operation".
Settings for example property "Operation" of type enum

This section shows all the settings that belong to the active property in the Properties list. Here you can control the behaviour of individual custom properties and how they are displayed in the custom node UI.

Where possible, UDON fills the settings in, based on the original inner property when it is initially exposed. But they can allways be changed by the user, for the desired result.

The available settings will depend on the type of the property, and whether or not Advanced mode is enabled. In the following sections, the relevant property types for each setting are indicated bellow the setting header in italics. Advanced settings are covered in a separate section below.

Label

applies to: all real properties

The text shown in the UI beside the custom property.

This is also how the property is referred to in the Properties list. And you can also edit the label by simply double clicking the property in the Properties list.

Description

applies to: all real properties

The description of the custom property, which will appear in the tooltip when hovering over the property in the custom node UI.

Default

applies to: all real properties

The default value of the custom property. The property will have this value on any new instance of the custom node.

Linked Properties

applies to: all real properties

A list showing all the inner properties linked to this custom property. These are the inner properties that will be controlled by this custom property once the custom node is cooked. You can read more about property links on the property links page.

Text

applies to: label

The text to be shown in the custom node UI.

This is also how the label is referred to in the Properties list. And you can also edit the text by simply double clicking the label in the Properties list.

Advanced Property Settings

Screenshot of the "Property Settings" section of the Node Kitchen, in advanced mode, showing all the settings for a property called "Offset".
Settings (advanced mode) for example property "Offset" of type float

These property settings are only shown when Advanced mode is enabled.

Name

applies to: all real properties

The name used internally by UDON to refer to this property, as well as the name used to derive the Python API name for this property (it will be converted into a valid Python identifier).

Unlike the Label, this name must be unique within the property list of a given custom node, which UDON ensures, by appending numeric suffixes when necessary.

If not explicitly set by the user, the name will be based on the content of the Label setting.

Subtype

applies to: boolean, float, integer, string, vector<any>

Determines how exactly the property itself is displayed in the UI. For example, showing numeric properties as angles (Blender automatically performs deg/rad conversions in the UI), showing text properties as filepaths (Blender displays a browse icon next to the input field), showing vector properties as colours (Blender shows a colour box and colour selection widget), etc.

Unit

applies to: float, vector<float>

The type of unit that Blender should display in the numeric input field.

Hide Label

applies to: all real properties

Hides the text beside the property. This is useful when more horizontal UI space is required for the property input field. If a label above the property is desired, a Label pseudo-property can be used.

Min/Max

applies to: float, integer, vector<float, integer>

The minimum and maximum values this property can have. Any value outside this range that is input into the property will be clamped to this range.

Soft Min/Soft Max

applies to: float, integer, vector<float, integer>

The minimum and maximum values that can be input by dragging on the property with the mouse. Values outside this range cannot be input with the mouse, but it is still possible for the user to directly type in values outside this range.

Step

applies to: float, vector<float>

The amount by which the property changes when dragging on the property, or when clicking the arrows either side of the input field. Manually entering more fine-grained values is still possible.

Precision

applies to: float, vector<float>

The number of digits to show after the decimal in the UI. This does not affect the actual precision of the value, but only how it is displayed in the UI. Entering more precise values is still possible.

Display Settings

applies to: image

Controls whether or not additional image properties (such as color space, alpha mode, frame range, etc.) should be displayed underneath the image property.

Property Warnings

A warning icon is sometimes shown next to a custom property in the Properties list. When this happens, simply select the property in the list, and the reason for the warning is explained under the Properties list.

These are the possible property warnings:

Screenshot of the "Property List" in the Node Kitchen, showing a property with a broken link. This indicates that one or more of the property's links are broken. If the property still has other valid links, it will still be added to the custom node UI when cooking, and the broken links will be ignored. If all the links are broken, the property is ignored when cooking, and not added to the custom node UI, as the property would be useless.

Read more about broken links on the property links page.

Unlinked Property

Screenshot of the "Property List" in the Node Kitchen, showing an unlinked property. This indicates that the custom property is not linked to any inner property, and therefore would have no effect on the custom node. These properties are ignored when cooking, and are not added to the custom node UI, as they would be useless.

To fix the warning, either remove the custom property, or link it to one or more inner properties.