Pulling & Pushing Resources

getting Resources from A to B

A Node can be set to either Push or Pull Resources, function to what action it needs to take once activated.

Set this attribute of a Pool in the drop-down menu in Functional > Action:

When a Node fires, it will try to pull Resources through any inputs connected to it. The number of Resources it pulls is determined by the rate of the individual input Resource Connection—the number beside the line.

Nodes default to pull mode.

Alternatively, a Node can be set in push mode. In this mode, when the Node fires, it pushes Resources along its output connections.

A Node in push mode is marked with a p

Passive Pools that have only outputs are automatically set to push mode, in which case the p marker is omitted.

If a Node is trying to pull more Resources than there are at the far end of its inputs, it will handle it in one of two ways:

  1. By default, a Node pulls as many Resources as it can, up to the flow rates of its inputs. If not enough Resources are available, it still pulls those that are.

  2. Alternatively, a Node can be set to pull all Resources. In this mode, when not all Resources are available, none are pulled.

Nodes that are in pull all mode are marked with an & sign.

These rules also apply to pushing Nodes: by default, a pushing Node sends as many Resources as there are available out along its output Resource Connection up to the output’s flow rate.

A pushing Node in all mode sends Resources only when it can supply all of its outputs. This means that Nodes in push mode might be marked with both a p and an &.

Push and Pull All

🔧 Hourglass Example

In the video below, using Pools and Resource Connections, we constructed a simple hourglass.

The top Pool (A) is passive and contains 5 Resources, while the bottom Pool (B) is automatic and starts without any Resources. Every time step (in this case 1 second), B will pull one Resource from A, until all Resources have moved from A to B.