gather Resources

Pools store Resources, and are the building blocks of Machinations.

Use Pools to model entities.

For example, if you have a Resource called Money and an entity called Player’s Bank Account, you would use a Pool to model that bank account.



Use the Label field in the Functional menu to name your Pool.


There are 4 ways in which Pools can be activated. 📖 Learn how to use Activation Modes.


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

🧙♂ Read more about Pushing and Pulling Resources.



In the Resources field, you can set the number of Resources with which a Pool starts. The default is 0.


Machinations uses colour to distinguish between different types of Resources. At the moment you may have 5 types of Resources on a diagram.

A Pool can store Resources of more than one type, meaning that it can be used to model compound entities.

🔧 Watch this example of how you can use a Pool to model a compound entity.



Use Capacity limit to set how many Resources the Pool can store.


In the Overflow drop down, you can set what happens to the Resources that are produced and sent towards the Pool after its limit has been reached. The receiving Pool can either block the incoming, overflowing Resource, or it can drain it - as in consume it.


Resources stacked in a Pool are by default displayed as small black tokens If there are too many Resources in a Pool to show them as stacks, the tool starts displaying them as a number instead

You can also manually set the limit from which onward Resources are shown as numbers. The default value for this limit is 25.

Show in Chart

Tick "Show in Chart" (option also available in the contextual menu at right click) to plot the amount of Resources the Pool stores at each Time Step when running a diagram.


Fractional Values

Pools cannot store fractional values.

However, to emulate fractional values you can express your game's Resources in subunits, so that

1 subunit = 1 Resource

In the Player's Bank Account example, the value in the account should be expressed in cents.

Negative Values

Pools support negative values but only as the result of a State Connection's effect on it.

In the example above, Pool 1 is affected by the number of Resources in Pool 2: whenever a Pool 2 receives a Resource, Pool 1 loses 3 Resources. If Pool 1 has less than 3 Resources, its value becomes negative.

While a Pool has a negative value, it can only accept Resources. Any other output event will be delayed until the Pool's value is positive.