Labels, Types & Intervals

5 min read

Connections shape how a diagram behaves. This page explains three properties you can set on them: labels, types and intervals.

Tip

Labels describe a connection and help people read the diagram.

Types set resource-flow rules, apply conditions and determine execution order.

Intervals set how often resources flow through a resource connection.

A resource connection from the Source New Tasks into the Pool Completed tasks with a pill that reads 5 | every 60: the formula is 5 and the interval is 60 Steps. A sticky note on each side explains the Formula and the Interval.A resource connection from the Source New Tasks into the Pool Completed tasks with a pill that reads 5 | every 60: the formula is 5 and the interval is 60 Steps. A sticky note on each side explains the Formula and the Interval.

Connection labels

A label names a node or connection so people can follow the diagram. Labels also help identify components across layers and when working with others. For formula values that change behavior, see the connection types and formulas below.

A Random Gate named Rarity Roll with five resource connections labelled Grant 0.1% chance, 4.5%, 15%, 30% and 50% chance, into the Pools Legendary, Epic, Rare, Uncommon and Common.A Random Gate named Rarity Roll with five resource connections labelled Grant 0.1% chance, 4.5%, 15%, 30% and 50% chance, into the Pools Legendary, Epic, Rare, Uncommon and Common.

Connection types

Connection types define how a connection behaves. Resource connections move resources; state connections change values or activate other elements. Triggers, activators and modifiers add further rules. The available controls depend on the selected connection: the Type menu of a Resource Connection offers Number, Chance, Dice roll and Formula (a Resource Connection that starts at a Pool also offers All), and the Type menu of a State Connection offers Change value, Change interval and Enable while.

The Type menu of a Resource Connection that leaves a Source, in the Properties panel: Number, Chance, Dice roll and Formula.The Type menu of a Resource Connection that leaves a Source, in the Properties panel: Number, Chance, Dice roll and Formula.
The Type menu of a State Connection in the Properties panel: Change value, Change interval and Enable while.The Type menu of a State Connection in the Properties panel: Change value, Change interval and Enable while.
State connection types

Resource connection types

Resource connection types control how resources flow between nodes, from fixed transfers to chance-based and random outcomes. See Resource Connections for the current types, formulas and examples.

State connection formulas

A State Connection carries the state of one element to another, and its Type says what it does with it. Change value changes the value of the target Node, Change interval changes the Interval of the target Resource Connection, and Enable while enables or disables the target by checking the input against a condition.

For Change value, the Formula menu chooses how the value of the origin Node reaches the target. The table lists each choice with the description the app shows when you hover over it.

The Formula menu of a State Connection whose Type is Change value: Add change, Add gain, Add loss, Add value, Subtract value and Overwrite.The Formula menu of a State Connection whose Type is Change value: Add change, Add gain, Add loss, Add value, Subtract value and Overwrite.
FormulaWhat it does
Add changeMakes the target follow the origin’s value; set a multiplier to scale it.
Add gainAdds the positive step-to-step change from the origin node to the target node. Decreases on the origin are ignored.
Add lossIncreases the target node by the amount lost on the origin node. Gains on the origin are ignored.
Add valueAdds the origin node’s current value to the target node without overwriting it.
Subtract valueSubtracts the origin node’s current value from the target node without overwriting it.
OverwriteSets the target’s value to the origin’s value, replacing it.

For condition, the Formula menu offers the comparisons greater than, greater or equal, less than, less or equal, equal, not equal and between; the box under it holds the value to compare with. Use it to switch a target on or off, or to let a Trigger pass only when the condition holds.

A State Connection of type Enable while: the Formula menu is set to Greater than and the value box holds 6.A State Connection of type Enable while: the Formula menu is set to Greater than and the value box holds 6.
A condition State Connection: choose a comparison, then the value to compare with

Overwrite with the “=” operator

Choose Overwrite in the Formula menu of a Change value State Connection to overwrite the Formula on a State Connection or the value of a Node. In the example, press Play, then click the Level Control node to overwrite Target Vault.

Embedded diagram

In the example, you can experiment how changes in the input Nodes can overwrite the values of target Formulas or of target Nodes.

Label Modifier: before hitting Play, the Formula on the Resource Connection between the Source and the Pool is 10. However, upon hitting Play, the Formula will be overwritten, and it will equal the value of the Modifier Pool.

Node Modifier: before hitting Play, there are 500 Resources in the Target Pool. After hitting Play, any change to the Interactive Register will be reflected in the number of Resources contained by the Target Pool.

In short:

  1. Use Overwrite to overwrite Node values.
  2. Use Add value if the State Connection’s output Node needs to react to changes made by other inputs.

Here’s a diagram explaining the difference between the two choices (the diagram labels them “Overwrite” on Target Beta and “Add change” on Target Alpha). Press Play, then click the Drain nodes and compare how each target reacts:

Embedded diagram

Note: Click on the double-edged Sinks to notice the difference in behavior.

Intervals

Use an interval to set how often a resource connection transfers resources. The flow amount and the interval can each be fixed or variable.

The Properties panel of a Resource Connection with Type Number set to 3 and Interval set to 2, so three resources move every second Step.The Properties panel of a Resource Connection with Type Number set to 3 and Interval set to 2, so three resources move every second Step.
Fixed interval: three resources every two Steps
A connection pill reading D6 | every 3: a dice roll of 1 to 6 resources every 3 Steps.A connection pill reading D6 | every 3: a dice roll of 1 to 6 resources every 3 Steps.
Variable flow amount
2021 diagrams
A connection pill reading 1 | every D4+2: one resource every D4+2 Steps.A connection pill reading 1 | every D4+2: one resource every D4+2 Steps.
2021 diagrams

You can even use a production rate of D6|D6, which indicates between 1 and 6 Resources are produced every 1 to 6 steps.

Intervals can also be modified dynamically. A State Connection whose Type is Change interval (for example with a value of +1 or -3) changes the Interval of its target Resource Connection; the app describes it as “Adjust the interval of the target resource connection by referencing the values on the input node”. In the example, press Play, then click the Difficulty Step node to change the interval.

Embedded diagram

In the original example, Difficulty increases by 1 point every 2 Steps (1|2). An Interactive Register sends an interval modifier (+1i) to change that cadence. Open the linked diagram to adjust the Register and compare the Steps between transfers. The recording shows an earlier editor.

Combining conditions

You can combine conditions and math expressions in the same formula (both for registers and for parameters (called custom variables in older guides)). If you want the math expression to calculate only when the condition is true you can use the * operator to combine them.

A Pool named Token Storage holding 99, fed by a Source named Token Generator, is read by four Registers through state connections that read a = 99 during a Play. The Registers are named and(largerEq(a,100),smaller(a,200)) and largerEq(a,100)*smaller(a,200), which are both false (0), and or(largerEq(a,100),smaller(a,200)) and largerEq(a,100)+smaller(a,200), which are both true (1). Two sticky notes explain the results.A Pool named Token Storage holding 99, fed by a Source named Token Generator, is read by four Registers through state connections that read a = 99 during a Play. The Registers are named and(largerEq(a,100),smaller(a,200)) and largerEq(a,100)*smaller(a,200), which are both false (0), and or(largerEq(a,100),smaller(a,200)) and largerEq(a,100)+smaller(a,200), which are both true (1). Two sticky notes explain the results.
2023 diagram

As you can see in the image above, you replace the “and” and “or” conditions using multiplication and addition, respectively.

and(largerEq(a,100),smaller(a,200)) is the same as largerEq(a,100)*smaller(a,200) just shorter.

Example 1:

largerEq(a,2)*(c+4)

In this case, (c+4) will only be calculated if a is larger than or equal to 2.
Please note that this condition will return 1 if it is true and 0 if it is false. Therefore, if the condition is false, the math expression will be multiplied by 0, returning 0 as the result.

Example 2:

largerEq(a,100)*smaller(a,200) → It is true when a is larger than or equal to 100 and smaller than 200

smaller(a,100)+larger(a,200) → It is true when a is smaller than 100 or larger than 200.