How to properly publish an input designed to receive events?

There is a node “Fire event periodically”. I wonder what is a proper way of receiving this kind of values as a subcomposition’s published input. Does it make any difference if the event is received as an Interger input or Boolean input or any other?


If you just want the event from Fire Periodically to go into the subcomposition, you can make an event-only published input port. In the example below, I created the published port by dragging a cable from the Count node’s Increment input port, holding down Option to make it event-only, and dropping it onto the published inputs area. Each time Fire Periodically fires, its event goes into the Show Counter Window node’s input port, and inside the subcomposition, goes to the Count node’s increment port.

If you also want to send the data from Fire Periodically, you can publish a Real (number) published input port, as in the example below. In this example, each time Fire Periodically fires, its event and data (the seconds since the composition started) go into the Show Number Window node’s input port, and inside the subcomposition, go to the Format Number node’s Value port.

DemoCounterWindow.vuo (641 Bytes)

jstrecker.showCounterWindow.vuo (2.29 KB)

DemoNumberWindow.vuo (626 Bytes)

jstrecker.showNumberWindow.vuo (1.79 KB)

1 Like

@jstrecker thank you for a great response. The trick I was missing is holding option key while connecting a port to published inputs, that way it becomes an event-only port.

I’ve solved my issue, but this one thing seems a bit strange for me - once I’ve added ImageGenerator ports to your jstrecker.showCounterWindow composition, the “Increment” port is triggered every frame. Is this some kind of limitation? I was thinking about using this “Increment” port as a button in VDMX to send events.


I finally got it after a long debugging session. :)

Once you add ImageGenerator filters, any published inputs will receive a new value every frame, even if they only hold a simple Integer values. To make if work like without ImageGenerator filters, the input values must be tunnelled through a HoldValue node.