Houdini 20.0 Nodes TOP nodes

Perforce TOP node

Execute Perforce commands through PDG

On this page
Since 17.5

This node acts as a wrapper around Perforce functionality. It provides an interface for executing p4 commands.


In order to use this node, you must ensure that Perforce is installed on any systems where jobs for this node are going to run.

In addition, the Perforce node must be able to find the p4 executable. When the job runs, it will first look for an environment variable called PDG_PERFORCE. If this variable is defined, the job will use its value as the path to Perforce’s executable. If the PDG_PERFORCE environment variable is not defined, the node will assume that p4 is available via the system’s path.

TOP Attributes



Indicates when the operation will be performed:

  • Generate = 0

  • Cook (In-Process) = 1

  • Cook (Out-of-Process) = 2



Indicates the Perforce operation to perform (update, sync, edit, submit, add, change, or version)



Specifies whether the user has overriden the default behaviour for determining the location of the P4 executable. When this is set to 1, the work script will use the custom binary path specified by the user.



This is set to the custom P4 executable path specified by the user. This is used as the path to the P4 executable when overridebin is set to 1



Indicates the user’s selected menu item from the Source Files parameter.



The file pattern to use in the Perforce operation.



The file tag of the input results included in the Perforce operation.



For the edit, submit, and add operations: specifies the changelist number for the operation



Specifies whether the default changelist or a numbered changelist is being used.



For the submit and change operations: specifies the changelist description



Specifies the location of the P4 config file



For the sync operation: indicates whether a force sync should be performed



Change operation only: specifies whether the new change list should be empty or include all pending files



Update and Sync operation only: indicates whether the entire workspace should be updated



Change operation only: when a change list is successfully created by the change operation, its number will be specified via this attribute.



The list of file paths or the file pattern to be used in the p4 command.



Generate When

Determines when this node will generate work items. You should generally leave this set to “Automatic” unless you know the node requires a specific generation mode, or that the work items need to be generated dynamically.

All Upstream Items are Generated

This node will generate work items once all of the input nodes have generated their work items.

All Upstream Items are Cooked

This node will generate work items once all of the input nodes have cooked their work items.

Each Upstream Item is Cooked

This node will generate work items each time a work item in an input node is cooked.


The generation mode is selected based on the generation mode of the input nodes. If any of the input nodes are generating work items when their inputs cook, this node will be set to Each Upstream Item is Cooked. Otherwise, it will be set to All Upstream Items are Generated.

Perform Op During

This parameter dictates when to perform the Perforce operation. The Perforce command can be executed in the work item generation phase, or during the cook phase (either in-process or out-of-process).

Perforce Operation

This menu is used to select the Perforce command that will be executed.

Run on Service Block

Determines whether or not work items in this node should run on the parent service block, if one exists.


Always run work items on the block’s service, regardless of any other service settings on this node.


Only run work items on the block’s service if Service Name matches the service name that’s used by the block.


Never run work items on the block’s service.

Service Name

When Cook Type is set to the Service, this parameter is used to specify the name of the service. For more information on using services, see the PDG Service Manager documentation.

File Source

This folder provides options for choosing which files will be included in the Perforce command.

All Files in Workspace

Update and Sync commands only: the entire workspace will be updated or synced when this option is enabled.

Empty Changelist

Change command only: when this option is enabled, any currently pending files will not be included in the newly created changelist.

Source Files

Selects the source of the files that will be included in the Perforce operation. The included files can either be provided by the upstream work item’s results or by a Perforce file pattern.

File Tag

A file tag to filter input files by. Only input results with this tag will be included in the work item’s operation.

File Pattern

Perforce file pattern to use in the operation.


Force Sync

If performing the sync command, this will enable or disable a force sync.


If the Perforce command involves a changelist, this provides the choice of using the default changelist or a numbered changelist.

Changelist Number

If the Perforce command involves a changelist and the changelist option is set to 'Numbered', this allows for the changelist number to be specified.


This parameter is used to create the description for any Perforce commands that require a changelist description.


P4 Config File

Specifies the location of a P4 Config file. This will cause the P4CONFIG environment variable to be set in the job’s environment.

Override Perforce Path

This allows the path to the p4 executable to be completely overwritten with a custom path.


TOP Scheduler Override

This parameter overrides the TOP scheduler for this node.

Schedule When

When enabled, this parameter can be used to specify an expression that determines which work items from the node should be scheduled. If the expression returns zero for a given work item, that work item will immediately be marked as cooked instead of being queued with a scheduler. If the expression returns a non-zero value, the work item is scheduled normally.

Work Item Label

Determines how the node should label its work items. This parameter allows you to assign non-unique label strings to your work items which are then used to identify the work items in the attribute panel, task bar, and scheduler job names.

Use Default Label

The work items in this node will use the default label from the TOP network, or have no label if the default is unset.

Inherit From Upstream Item

The work items inherit their labels from their parent work items.

Custom Expression

The work item label is set to the Label Expression custom expression which is evaluated for each item.

Node Defines Label

The work item label is defined in the node’s internal logic.

Label Expression

When on, this parameter specifies a custom label for work items created by this node. The parameter can be an expression that includes references to work item attributes or built-in properties. For example, $OS: @pdg_frame will set the label of each work item based on its frame value.

Work Item Priority

This parameter determines how the current scheduler prioritizes the work items in this node.

Inherit From Upstream Item

The work items inherit their priority from their parent items. If a work item has no parent, its priority is set to 0.

Custom Expression

The work item priority is set to the value of Priority Expression.

Node Defines Priority

The work item priority is set based on the node’s own internal priority calculations.

This option is only available on the Python Processor TOP, ROP Fetch TOP, and ROP Output TOP nodes. These nodes define their own prioritization schemes that are implemented in their node logic.

Priority Expression

This parameter specifies an expression for work item priority. The expression is evaluated for each work item in the node.

This parameter is only available when Work Item Priority is set to Custom Expression.

TOP nodes