Pulling & Pushing Resources
The Pull or Push action is only available for selected Pools, Gates, and Sinks in their Properties panel on the right. This setting determines how resources are moving from one Node to another.
In the current app, the Direction switch chooses Pull or Push, and the checkbox under it (Pull all or nothing or Push all or nothing) chooses the “all” version when it is ticked. Unticked gives the “any” version, which is the default. The names pull-any, pull-all, push-any and push-all below are the earlier Action names for the same four behaviors. A Source only pushes, and Sinks and Gates only pull, so those nodes show just the checkbox.


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 and the value of the individual input Resource Connection.
Available modes
Please take a moment to familiarize yourself with the availability of pull and push for Pools, Gates, and Sinks in the table below.
| Node | Pull | Pull all or nothing | Push | Push all or nothing |
|---|---|---|---|---|
| Pool | Yes | Yes | Yes | Yes |
| Gate | Yes | Yes | No | No |
| Sink | Yes | Yes | No | No |
| Source | No | No | Yes | Yes |
Pull Mode
A Node set to pull mode (pull-all or pull-any) will pull Resources along its input Resource Connections when it fires.
A Node set to pull-any will attempt to pull any available Resource up to the amount specified on the Resource Connection during each step. If less Resources are available it will still pull them.
Available for Pools, Gates, and Sinks.
Pull-all nodes only pull when the amount specified on the Resource Connection is available. This is useful when you need a set amount of Resources for a particular action. It ensures that the action will only occur when the necessary Resources are available.
Available for Pools, Gates, and Sinks.
Pull-all does not affect Sources, as they provide infinite resources.
Push Mode
A Node set to push mode (push-all or push-any) will push Resources along its output Resource Connections when it fires.
A node set to push-any will attempt to push any available resource up to the amount specified by the Resource Connection at each step. You can also use that to push resources into a passive Sink. A node set to push-any can be distinguished by the p on the bottom right.
Available for Pools only.
Passive Pools with only output connections are automatically set to push mode, in which case the p marker is omitted.
The mode diagram above shows the Pool markers.
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:
- 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.
- Alternatively, a Node can be set to pull all Resources. In this mode, when not all Resources are available, none are pulled.
A Node set to push-all will only push Resources forward when the amount specified on the Resource Connection is available. This means it will send Resources only when it can supply all of its outputs.
Available for Pools only.
Hourglass Example
The diagram below uses Pools and a Resource Connection to model a simple hourglass.
The top Pool (A) is passive and contains 10 Resources, while the bottom Pool (B) is automatic and starts without any Resources. Every Step (in this case 1 second), B will pull one Resource from A, until all Resources have moved from A to B.
Connected reading: