Allocating skill points to attributes

Once the player earns skill points, they can allocate them to three attributes: strength, constitution, and dexterity. In Machinations terms.

Once the player earns skill points, they can allocate them to three attributes: strength, constitution, and dexterity. In Machinations terms, you need to store the number of points per attribute in separate pools and distribute the points in the “Available skill points” pool to each attribute pool. You can use gates whenever you need to distribute resources from one component to another.

For this example, we are going to assume that the player has the following probabilities of distributing one skill point to each attribute:

  • Strength: 25%
  • Constitution: 35%
  • Dexterity: 40%

Creating the gate

Follow the next steps to allocate the skill points to each attribute:

  1. Add three pools to the right of the “Available skill points” pool, leaving some space to add other components in the middle. Label these pools as “Strength points”, “Constitution points” and “Dexterity points”.
The three attribute pools: Strength points, Constitution points and Dexterity pointsThe three attribute pools: Strength points, Constitution points and Dexterity points
  1. Click the Gate icon in the toolbar or use the shortcut “g”.
The toolbar above the canvas with the Gate tool outlined in red.
  1. Click in the canvas between the “Available skill points” and the attribute pools to place the gate in the diagram.
The Spend points gate between the Available skill points pool and the attribute poolsThe Spend points gate between the Available skill points pool and the attribute pools
  1. Select the gate, and in the label at the top of the Properties panel (it reads “Add a label” on a new component), type “Spend points”.
The Properties panel of a Gate with its name “Spend points” outlined in red.
  1. Select the “Spend points” Gate, and in the “Distribution” property, check it reads “Random” (a new Gate already does). This will cause the Gate to distribute the resources it receives in its input with a certain probability on each output.
The Properties panel of a Gate with the Distribution switch on “random” outlined in red.

Connecting the gate with the pools

  1. We need to transfer the skill points (resources) from the “Available skill points” to the Gate. Add a Resource Connection, clicking first in the “Available skill points” pool and then in the “Spend points” Gate.
The Properties panel of a Resource Connection with Type “all” outlined in red.
  1. The formula of the resource connection has the value “1” which means that only one skill point will be spent, but we need to spend all of them. Select the Resource Connection, set Type to “All”.
  1. The points the gate receives need to be transferred to each attribute’s pool; hence, we must connect the gate to these pools. Add the following three resource connections:

3a. One with its origin on the “Spend points” gate and target in the “Strength points” pool.

The connection from the Spend points gate to Strength points, labelled Str 25% chanceThe connection from the Spend points gate to Strength points, labelled Str 25% chance

3b. The second one with its origin on the “Spend points” gate and target in the “Constitution points” pool.

The connection from the Spend points gate to Constitution points, labelled Con 35% chanceThe connection from the Spend points gate to Constitution points, labelled Con 35% chance

3c. The last one with its origin on the “Spend points” gate and target in the “Dexterity points” pool.

The connection from the Spend points gate to Dexterity points, labelled Dex 40% chanceThe connection from the Spend points gate to Dexterity points, labelled Dex 40% chance
  1. The formula of these resource connections has the value “1” which in this context represents the probability of distributing a point to the corresponding attribute. However, the probabilities differ for each attribute: 25% for strength, 35% for constitution, and 40% for dexterity.

4a. Select the resource connection between the “Spend points” gate and the “Strength points” pool. Set Type to “Chance” and type 25.

The Properties panel of a Resource Connection with Type “chance” and the value 25 outlined in red.

4b. Select the resource connection between the “Spend points” gate and the “Constitution points” pool. Set Type to “Chance” and type 35.

The Properties panel of a Resource Connection with Type “chance” and the value 35 outlined in red.

4c. Select the resource connection between the “Spend points” gate and the “Dexterity points” pool. Set Type to “Chance” and type 40.

The Properties panel of a Resource Connection with Type “chance” and the value 40 outlined in red.
  1. Press “Play” and observe how the gate is working. Are the skill points really being distributed to each attribute? In this example, the player already has 4 skill points, but they are unassigned.

Activating the gate

If resources are not flowing through the gate, it must be triggered.

  1. Select the gate “Spend points” on the canvas.
  2. In the “Properties” panel, under the “Trigger” section, select the option “Auto”. You will see the gate now has a lightning bolt on top.
The Properties panel of the Gate with the five Trigger buttons outlined in red and Auto selected.
  1. Press “Play” and observe how the points are now distributed from the “Skill points” pool to each attribute randomly. If you Play again, you will see that the points will be allocated to other pools. You can also play with the probabilities to see how the diagram behaves. In this example, the player reached level 4 at step 9, allocating one point to Strength, another to Dexterity, and 6 to Constitution.
After a Play with the Spend points Gate set to Auto: all 10 available skill points have been shared out at random between Strength (3), Constitution (4) and Dexterity (3). Every Play gives a different split.After a Play with the Spend points Gate set to Auto: all 10 available skill points have been shared out at random between Strength (3), Constitution (4) and Dexterity (3). Every Play gives a different split.