Skip to content

Nodes

Every card the Create menu offers, grouped as it groups them. For each: what it is for, in the card’s own words; what is on the card; the ports it takes and the ports it answers on; and, where one exists, something to read. An agent gets the same list for the build it is talking to from node_types.

A port carries either flow — the story, pushed from card to card — or a value, pulled when a card needs it. The boards overview says how the two are run and the one rule that follows. Every card’s way in is exec unless the table says otherwise, and every value port is typed: a number joins a number, any joins anything.

Where the card’s own literal and a wire both answer a port, the wire wins, and the field on the card disappears while the wire is attached.

Every card can carry metadata of your own. Right-click it and choose Edit metadata…: a list of names, types and values — the Input node’s types, plus json for anything nested — and a small tag on the card’s header while there is any. Nothing on the board reads it; it is yours, for a status, a reviewer’s note, a mark for a tool of your own. It travels with the node into a compiled campaign and to an agent, and a copied node arrives with its notes.

The Start card
The Start card

Where the story begins.

A marker: it holds no text of its own, only the single wire that leaves it.

Answers

Port Carries Meaning
out flow The single wire the story leaves by.
The End card
The End card

Where a path stops.

Its input accepts any number of wires, so every branch of a story can finish at the same ending.

Takes

Port Carries Meaning
in flow Any number of wires; every branch can finish here.
The Jump card
The Jump card

Continues the story on another board.

Pick the board it goes to, and use the arrow to open that board here. It is how a chapter hands over to the next one, and how a session joins onto the one before it.

It has no output: what happens next happens on the board it names.

Leave Node on Start to begin that board at the beginning, or name a node to resume partway in — which is how a chapter can be re-entered without replaying it.

On the card: Board; Node — leave it on Start to begin that board at its beginning, or name a node to resume partway in.

Takes

Port Carries Meaning
in flow The way in. There is no way out: what happens next happens on the board it names.

Read more: Reading a story back

The Macro card
The Macro card

Runs a macro here — a board a board can call.

Drag a macro out of the file tree and drop it on the canvas, or pick one here. It grows an input per thing the macro takes and an output per thing it answers, and the flow carries on where the macro ends.

Wire a take, or type it on the card; the wire wins.

The macro is spliced in when the campaign is compiled, so calling one twice is two copies of it and a macro cannot call itself.

On the card: Macro.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken where the macro reached its Macro Out.

Plus one input per thing the macro takes, with a field beside it to type a literal, and one output per thing it answers.

Read more: Macros

The Do all card
The Do all card

Runs everything wired to it, one branch after another, then carries on from completed.

Wire the last branch and another appears beneath it, so it grows as many as you need. They run top to bottom, each to the end of its wire before the next starts — a passage on a branch holds the branches below it until every passage reachable from it has been read. So put the jobs on the branches and the story on completed: it fires once every branch has run out.

For the bookkeeping a story needs before a passage: three things to set up, side by side, and then the passage.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
branch … flow One per branch, run top to bottom; wire the last and another appears.
completed flow Taken once every branch has run out. Boards written before it had one grow the port the moment they open.
The If card
The If card

Sends the flow one of two ways, on a yes or no wired into it.

It asks nothing itself: condition takes a true-or-false from somewhere else, usually a Comparator. That is what makes it the piece a While or a For has been waiting for — wire true back into continue and false into break.

Takes

Port Carries Meaning
exec flow The way in.
condition bool True or false, usually from a Comparator.

Answers

Port Carries Meaning
true flow Taken when the condition is true.
false flow Taken when it is false.
The Switch card
The Switch card

Sends the flow down one branch of several, by name.

Type into the last row and another appears beneath it, each with its own way out. Clear the last one again and it goes away.

Wire the thing being decided into value. Cases are matched as text: a number is compared as the digits you would write it with, so 42 and “42” are the same case.

Nothing matching is not an error and not a fall-through — the story simply stops there. A branch nobody wrote is worse than a branch that is plainly missing.

On the card: one row per case.

Takes

Port Carries Meaning
in flow The way in.
value any The thing being decided. Matched as text, so 42 and “42” are one case.

Answers

Port Carries Meaning
case … flow One way out per row. Type into the last row and another appears; nothing matching stops the story there.
The While card
The While card

Repeats a stretch of the story.

Wire the end of the loop back into continue and it goes round again through loop. Wire something into break and it leaves through exit.

It holds no condition of its own: what decides is whatever you wired to those two inputs.

Takes

Port Carries Meaning
continue flow Wire the end of the loop back here to go round again.
break flow Wire something here to leave.

Answers

Port Carries Meaning
loop flow Taken on every pass.
exit flow Taken on break.
iteration number Which pass this is, counting from zero.
The For card
The For card

Repeats a stretch of the story, but not forever.

The same two ways in and two ways out as a While. What it adds is a ceiling: once it has gone round that many times it leaves through exit whatever the graph says.

It is the loop to reach for when the condition is somebody else’s and you would rather not find out the hard way that it never comes false.

On the card: Max iterations — the ceiling, default 100.

Takes

Port Carries Meaning
continue flow Wire the end of the loop back here to go round again.
break flow Wire something here to leave early.

Answers

Port Carries Meaning
loop flow Taken on every pass.
exit flow Taken on break, or once the ceiling is reached.
iteration number Which pass this is, counting from zero.
The Delay card
The Delay card

Holds the story for a while, then carries on.

The wait is written the ISO 8601 way: PT2S is two seconds, PT1M30S a minute and a half, P1DT12H a day and a half. Years and months are not a length of time and are refused.

The last passage stays on screen while it waits. An agent playing the story, or a test, does not wait at all.

On the card: Duration — default PT1S.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the wait is over.

Read more: ISO 8601 durations

The FlipFlop card
The FlipFlop card

Takes one way out, then the other, then the first again — every time the flow reaches it.

The first visit goes out of a. is A is true while a is the side running. It remembers for the whole playthrough: leaving the board and coming back, or saving and loading, does not reset it. Starting over does.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
a flow Taken on the first visit, and every second one after.
b flow Taken on the visits in between.
isA bool True while a is the side running.

Read more: What remembers, and for how long

The Once card
The Once card

The first time the flow reaches it goes out of first; every time after goes out of again.

visits is how many times so far, counting this one, so a Switch on it can tell the third visit from the second. It remembers for the whole playthrough: leaving the board and coming back, or saving and loading, does not reset it. Starting over does.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
first flow Taken on the first visit only.
again flow Taken on every visit after.
visits number How many visits so far, counting this one.

Read more: What remembers, and for how long

The State machine card
The State machine card

Fires an event at a state machine and says what state it is in.

The machine is a .fsm.mmd file — a mermaid state diagram. event is what to fire, from the card or from a wire; leave it blank to read the state without moving. [*] puts the machine back at its start.

changed is taken when an arrow fired, unchanged when none did — which is not an error. state is where the machine is now; a Switch on it is how the story branches.

instance names which one: leave it blank and every node driving this machine drives the same one. It remembers for the whole playthrough, across boards and saves; starting over forgets.

On the card: Machine; Instance; Event — blank reads the state without moving.

Takes

Port Carries Meaning
exec flow The way in.
event string What to fire; blank reads the state without moving; [*] resets. A wire beats the card.

Answers

Port Carries Meaning
changed flow Taken when an arrow fired.
unchanged flow Taken when none did — not an error.
state string Where the machine is now.

Read more: Finite state machines · Mermaid state diagrams · State machines in Ripple Effect

The Variable branch card
The Variable branch card

Sends the flow one of two ways depending on a console variable.

Pick the variable, a comparison, and what to compare it against — on the card, or wired into value. The comparison is the Comparator’s: equality goes through text, so 42 and “42” are equal, and only two numbers or two strings order.

A Get variable node into a Comparator into an If does the same in three cards; this is the one card for the common case, a story that branches on a flag.

On the card: Variable; Comparison — the same set a Comparator offers, default equal; Value.

Takes

Port Carries Meaning
exec flow The way in.
value any What to compare the variable against. A wire beats the card.

Answers

Port Carries Meaning
yes flow Taken when the comparison holds.
no flow Taken when it does not.

Read more: Console variables

The Narration card
The Narration card

A passage of prose, in every language the project is written in.

The text lives in a localised passage beside the board rather than on the node, so one passage can be read by several nodes and a translator can work on it in any editor. The card shows the first few rendered lines of the story’s own language; double-click it to write.

It always carries one spare choice at the bottom. Wire that one up and another appears beneath it, so a passage grows as many branches as the reader needs. Click a choice’s row on the card to give it a name, which is what the card shows, and its words, which are what the reader is offered — in every language the story is written in.

A soundscape — a timeline of music and sounds, a file of its own — plays from the moment this passage is shown, and stays in force through every passage after it until one brings its own: a tavern goes on being a tavern. A passage with none changes nothing; a passage set to Silence stops whatever is playing. A soundscape marked tied belongs to its passage and stops when the story moves on.

On the card: Passage — which passage file the card reads; New makes one beside the board; SoundscapeNone, Silence, or one of the project’s soundscapes; Body — the passage, in the language you are writing in.

Takes

Port Carries Meaning
in flow The way in, at the title.

Answers

Port Carries Meaning
choice … flow One per choice, in order; always one spare at the bottom. The words the reader sees are set on the row, per language.

Read more: Passages and languages, Soundscapes and sounds

The Output card
The Output card

Shows values the story worked out.

Double-click to say what it shows — a name and a type per row — and it grows a port per name. Wire a Script node’s outputs into them.

It is a slide with one way on, so it reads as a passage rather than as a debugger.

On the card: Shows.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the reader moves on.

Plus one input per name in Shows, typed as the shape says.

Read more: Python scripting

The Input card
The Input card

Asks the reader for values.

Double-click to say what to ask for — a name and a type per row — and it grows a port per name, carrying what was typed. A bool is a switch, a number a number field, a list a line of comma-separated values.

It is a form with one way on. Say what you are asking, and why, in the passage before it.

On the card: Asks.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the reader submits the form.

Plus one output per name in Asks, typed as the shape says, carrying what the reader typed.

Read more: Playing a campaign

The Play sound card
The Play sound card

Plays one sound, once, and carries straight on.

The file is any audio in the project — drop one into the folder and it is in the list. Volume runs from 0 to 1 and speed from a little above 0, 1 being the file’s own.

Nothing waits for it: completed fires the moment the sound is cued, so a door slams and the next passage is already showing. For music under a scene, set a soundscape on the passage instead.

On the card: Sound — any audio file the project holds; Volume — default 1.0; Speed — default 1.0.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken the moment the sound is cued, not when it ends.

Read more: Soundscapes and sounds

The number card
The number card

Holds a number for the rest of the board to read.

Wire value into whatever needs it. Its exec lets it sit in the story rather than only hang off it; left unwired it simply holds its value. Its data port carries the tag number, so the editor will only let it join something that expects the same thing — or something that expects anything at all.

On the card: the number, default 0.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value number The number typed on the card.
The bool card
The bool card

Holds a bool for the rest of the board to read.

Wire value into whatever needs it. Its exec lets it sit in the story rather than only hang off it; left unwired it simply holds its value. Its data port carries the tag bool, so the editor will only let it join something that expects the same thing — or something that expects anything at all.

On the card: the truth, default false.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value bool The truth typed on the card.
The string card
The string card

Holds a string for the rest of the board to read.

Wire value into whatever needs it. Its exec lets it sit in the story rather than only hang off it; left unwired it simply holds its value. Its data port carries the tag string, so the editor will only let it join something that expects the same thing — or something that expects anything at all.

On the card: the text.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value string The text typed on the card.
The list<number> card
The list<number> card

Holds a list<number> for the rest of the board to read.

Wire value into whatever needs it. Its exec lets it sit in the story rather than only hang off it; left unwired it simply holds its value. Its data port carries the tag numberList, so the editor will only let it join something that expects the same thing — or something that expects anything at all.

On the card: the list, as list<number>.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value list<number> The list typed on the card.
The list<bool> card
The list<bool> card

Holds a list<bool> for the rest of the board to read.

Wire value into whatever needs it. Its exec lets it sit in the story rather than only hang off it; left unwired it simply holds its value. Its data port carries the tag boolList, so the editor will only let it join something that expects the same thing — or something that expects anything at all.

On the card: the list, as list<bool>.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value list<bool> The list typed on the card.
The list<string> card
The list<string> card

Holds a list<string> for the rest of the board to read.

Wire value into whatever needs it. Its exec lets it sit in the story rather than only hang off it; left unwired it simply holds its value. Its data port carries the tag stringList, so the editor will only let it join something that expects the same thing — or something that expects anything at all.

On the card: the list, as list<string>.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value list<string> The list typed on the card.
The Random number card
The Random number card

A number nobody chose.

% X is how many numbers are in the range and + Y is where it starts, so a six-sided die is 6 and 1. Turn on decimals and it answers with a fraction from the same range.

It rolls again every time the flow reaches it.

On the card: % X — default 100; + Y — default 0; Decimals — answer with a fraction from the same range, default false.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value any A fresh number every time the flow arrives.
The Random string card
The Random string card

A string nobody chose.

The pattern is tried against every printable character on its own, and the ones it matches are what the string is drawn from — [A-Za-z0-9] for alphanumeric, [0-9a-f] for hex. An empty pattern means all of them.

A pattern that matches nothing gives an empty string, which is the quieter answer than a failure mid-story.

On the card: Pattern — default [A-Za-z0-9]; Length — default 8.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value any A fresh string every time the flow arrives.

Read more: Regular expression character classes

The Script card
The Script card

Runs a Python file, and publishes what it assigned.

Pick the script, then describe its two shapes as JSON — {hp: number} — and the node grows a port per name. Inputs arrive in Python as globals of that name; assign the output names and they come back out.

Double-click to write the script, and to try it in the console beside it. The file is a real .py in the project, so a snippet can be shared by as many nodes as want it.

It shows nothing on its own. Wire an Output node to its outputs to put them on screen.

On the card: Script; Inputs; Outputs; Test inputs — values to run the script with from the editor, without a board.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the script has run.

Plus one input per name in Inputs and one output per name in Outputs, typed as the shape says.

Read more: Python scripting · The Python API

The Get variable card
The Get variable card

Reads a console variable onto value.

Console variables are declared on the project’s variables page — a name, a type and a default — and are set anywhere and read anywhere, across boards and saves, with no wire between. This is the reading half; a Set variable node or a Script node’s cvar_set is the writing half.

It takes the flow rather than being pulled, so that it always answers what the variable holds now: put it in the story after whatever sets the variable, and wire value onwards from there.

On the card: Variable.

Takes

Port Carries Meaning
exec flow The way in.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
value any What the variable holds now, typed as the variable is.

Read more: Console variables · The twelve types and the coercion rule

The Set variable card
The Set variable card

Sets a console variable.

Wire a value into value, or type one on the card; the wire wins when both are there. The value has to be the variable’s type — a whole number for an int, true or false for a bool — and one that is not ends the run with a message naming this node, rather than being bent to fit.

result is what the variable holds after the write.

On the card: Variable; Value.

Takes

Port Carries Meaning
exec flow The way in.
value any What to write. A wire beats the card; a value of the wrong type ends the run naming this node.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
result any What the variable holds after the write.

Read more: Console variables · The twelve types and the coercion rule

The Component card
The Component card

Reads a component into the board — a character, an item, a room.

Drag one out of the file tree and drop it on the canvas, or pick it here. Every attribute gets its own output, typed the way the component declares it, so a number joins a number and text joins text.

component carries the whole thing as one value, for passing along rather than picking apart.

It has two modes. In Reference it is a window onto the file: outputs, and nothing else.

In Entity it stops being a window and makes the story a thing: one entity, kept for the length of the campaign under the name you give it. Every attribute grows an input, so what happens earlier in the story can set it. Two nodes with two names are two independent swords; a node on a later board with the same name is the same sword.

Either way it reads the file and never writes to it. The component itself is edited where it lives.

On the card: Component; Entity mode — Reference off, Entity on, default false; Name — the entity’s name, in Entity mode.

Answers

Port Carries Meaning
completed flow Taken when the node has run. In Entity mode this is when the entity exists.
component component The whole component as one value, for passing along rather than picking apart.

Plus one output per attribute, typed as the component declares it — and in Entity mode one input per attribute as well.

Read more: Components and entities

The Spawn card
The Spawn card

Makes many entities of one component at once — six goblins, a hand of cards, a shelf of potions.

Pick the component, say how many, and choose how they are told apart: numbers or letters, and what goes between. Goblin with numbers and a dash makes Goblin-1, Goblin-2, and so on.

entities carries their names as a list of text. That is how anything else reaches them: a Script node can walk it and give each one its own hit points, and a Component node set to Entity with that name is that goblin.

The names it makes depend only on what is on the node, so coming back to it finds the goblins it already made rather than six more. A second wave wants a different name, which is what the name input is for.

It runs when the flow reaches it, so anything reading entities has to be wired after completed — a Script hanging off it with nothing flowing in reads nothing.

On the card: Component; Name; How many — default 1; Numbering — numbers or letters, default numbers; Separator — what goes between the stem and the number, default dash.

Takes

Port Carries Meaning
exec flow The way in.
name string The stem the names are built on. A wire beats the card.
count number How many to make. A wire beats the card.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
entities list<string> Their names, as a list of text.

Read more: Components and entities

The Delete Entity card
The Delete Entity card

Forgets one entity: the goblin is dead, the potion is drunk, the sword was left behind.

Name it on the card, or wire a name in — a name from upstream wins, which is how a loop clears out everything a Spawn node made.

It removes the entity from the campaign and nothing from the project: the component file it was made from is untouched, and a Component node set to Entity naming it later simply makes a fresh one from that file.

A name that names nothing is not an error — it removes nothing and the story carries on. Ask an Entity Exists node first if that matters.

On the card: Name.

Takes

Port Carries Meaning
exec flow The way in.
name string Which entity to forget. A wire beats the card; a name nothing answers to removes nothing.

Answers

Port Carries Meaning
completed flow Taken when the node has run.

Read more: Components and entities

The Entity Exists card
The Entity Exists card

Asks whether the campaign has an entity under a name, and answers true or false.

Name it on the card, or wire a name in — a name from upstream wins.

It asks about entities, not about components. False means the story has not made this one, or has deleted it; the component file may be sitting there all the same, and a Component node set to Reference would read it happily.

It runs when the flow reaches it, so anything reading exists has to be wired after completed — an If node hanging off it with nothing flowing in reads nothing.

On the card: Name.

Takes

Port Carries Meaning
exec flow The way in.
name string Which entity to ask about. A wire beats the card.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
exists bool Whether the campaign has one under that name.

Read more: Components and entities

The Dice roller card
The Dice roller card

Rolls dice notation, the way a table would.

2d6+4 is two six-sided dice and four; 4d6kh3 keeps the highest three of four; 1d20+1d4+2 chains a d20, a d4 and a bonus. Keep or drop with kh, kl, dh, dl. Pick a preset, or type your own.

Rolls is how many times over. total is the sum of everything, results one total per roll, dice every face that counted. The two criticals are a natural twenty or a natural one on the first dice term.

A wire into notation or rolls beats what is typed on the card.

On the card: Notation — type it, or pick one of the presets, default 1d20; Rolls — default 1.

Takes

Port Carries Meaning
exec flow The way in.
notation string The dice notation. A wire beats the card.
rolls number How many times over. A wire beats the card.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
total number The sum of everything.
results list<number> One total per roll.
dice list<number> Every face that counted.
critical hit bool A natural twenty on the first term.
critical failure bool A natural one on the first term.

Read more: Dice notation, explained

The Percentile check card
The Percentile check card

Rolls a d100 against a chance out of a hundred.

At or under the chance is success, over it is failure — so 0 never succeeds and 100 always does. What was rolled comes out of roll, for a passage that wants to say how close it was.

A wire into chance beats what is typed on the card.

On the card: Chance — default 50.

Takes

Port Carries Meaning
exec flow The way in.
chance number Out of a hundred. A wire beats the card.

Answers

Port Carries Meaning
success flow Taken at or under the chance.
failure flow Taken over it.
roll number What the d100 came up.

Read more: Percentile systems, in the dice notation guide

The Weighted branch card
The Weighted branch card

Sends the flow down one branch of several, drawn by weight.

Each row is an outcome and how likely it is against the others — 60 / 30 / 10, or 6 / 3 / 1, which is the same branch. Type into the last row and another appears beneath it. A row with no name, or a weight of nothing, is never drawn.

picked is the name of the row that won. Wire a number from 0 to 100 into roll to decide with it instead of rolling.

On the card: one row per outcome, name and weight.

Takes

Port Carries Meaning
in flow The way in.
roll number Optional: a number from 0 to 100 to decide with instead of rolling.

Answers

Port Carries Meaning
picked string The name of the row that won.
outcome … flow One way out per row, drawn by weight. Type into the last row and another appears.
The Operator card
The Operator card

Adds, subtracts, multiplies or divides the two numbers wired into it.

Both sides only take numbers. Dividing by zero gives an infinity rather than stopping the board — a story that fell over because a wire happened to carry a zero would be worse than one that carries an odd number.

On the card: Operation — add, subtract, multiply or divide, default add.

Takes

Port Carries Meaning
exec flow The way in.
A number The left-hand number.
B number The right-hand number.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
result number The answer; dividing by zero gives an infinity.
The Comparator card
The Comparator card

Compares the two values wired into it and answers true or false.

Neither side declares a type, so anything may be plugged in. Equality reads both as text — 42 and “42” are equal here for the same reason they are one case on a Switch. Ordering is only answered for two numbers or two pieces of text; anything else compares as false.

Its result is what an If node is waiting for.

On the card: Compare — equal, not equal, less, greater, and the two or-equals, default equal.

Takes

Port Carries Meaning
exec flow The way in.
A any The left-hand value.
B any The right-hand value.

Answers

Port Carries Meaning
completed flow Taken when the node has run.
result bool True or false, for an If.

Offered on a macro’s own canvas only, where a board would have its Start and its Ends. Everything above is offered on both.

The Macro In card
The Macro In card

Where this macro begins, and what it takes.

Double-click to say what it takes — a name and a type per row — and it grows a port per name, carrying what the board that called the macro wired in or typed on the card.

A macro has exactly one of these, and it stands where a Start would.

On the card: Takes.

Answers

Port Carries Meaning
out flow The single wire the macro begins by.

Plus one output per name in Takes, typed as the shape says.

Read more: Macros

The Macro Out card
The Macro Out card

Where this macro ends, and what it answers.

Double-click to say what it answers — a name and a type per row — and it grows a port per name. What is wired in here is what the Macro node on the calling board publishes, and the flow carries on from there.

A macro has exactly one of these, and it stands where an End would.

On the card: Answers.

Takes

Port Carries Meaning
in flow Any number of wires; every branch inside the macro can finish here.

Plus one input per name in Answers, typed as the shape says.

Read more: Macros