Unity Plugin (UP) & API
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.
Selecting a Pool on your canvas will make its properties available in the right panel.
Use the Label field in the Properties menu to name your Pool.
There are 4 ways in which Pools can be activated.
📖 Learn how to use Trigger 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.
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 (consume it).
Use Capacity limit to set how many Resources the Pool can store.
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.
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.
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.
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.