Groups can be used for organization, conveniently passing variables to several nodes, or affect the actual logic of the cannoli. Groups can be nested, and have any number of nodes inside them. All of the nodes/groups inside of a group must be fully inside it. In other words, groups can't simply overlap other objects on the canvas. Arrows can pass into and out of groups, and depending on the group type, this can affect their behavior. Arrows can also be attached to groups directly, and the resulting behavior will again depend on the group type. Group type is defined by color as well as the contents of their label. | Type | How its defined | Description | | ------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [[Basic groups\|Basic]] | Colorless | Incoming [[Variable arrows\|Variable]], [[Config arrows\|Config]], and [[Field arrows\|Field]] arrows can be referenced by all nodes in the group | | [[Loop groups\|Loop]] | Colorless<br>(label is a number) | All nodes in the group will reset and re-execute the number of times defined by the group label (unless [[Choice arrows]] are used to make the group conditional, see [[Loop groups]]). All arrows passing out of the group will only execute after the last loop. | | [Parallel](obsidian://open?vault=cannoli-test&file=Cannoli%20College%2F5.%20Groups%2F4.%20Parallel%20groups.canvas) | Cyan<br>(label is a number) | Copies will be made of all nodes and arrows in the group (based on the number in the label). Each copy of the group will run in parallel, and will be passed a different item from the [[List arrows\|list arrow]] pointing to the group. Arrows passing out of the group will merge results from all versions of the group. |