How flows work
Triggers, actions and conditions, and the two rules that catch everyone out.
A flow is automation you build by dragging blocks. It answers one question over and over: when this happens, do that.
The three kinds of block
Triggers are the hats. Each one names an event (a chat line, a timer, the client dying), and the blocks snapped underneath it are what happens. See the trigger reference for all of them.
Actions are the steps. Walk, dig, say something, open a chest, wait, loop. They snap under a trigger, one after another, and run top to bottom. They are grouped into the palette categories the reference follows.
Conditions are tests that plug into the socket on an if, a while or a wait until. They never stand on their own. See the condition reference.
A single flow can hold as many triggers as you like: a login on join, a restock on a timer and an alert on low health, all in one document.
The two rules that catch everyone out
A block that is not under a trigger is not saved. Only the stacks hanging from a hat are part of the flow. A block left floating on the canvas is dropped when you save, and the editor warns you first:
3 blocks aren't connected to a trigger and won't be saved. Drag them under a trigger's "do".
If actions "vanish" or never run, this is almost always why.
One firing at a time, per trigger. While a trigger's stack is still running, that same trigger ignores new events until it finishes. A chat trigger whose actions take eight seconds does not build up an eight-second backlog of chat lines. Different triggers are independent: a timer can fire while a chat firing is still going.
Attaching, enabling, running
A flow does nothing on its own. Two switches have to be on:
- The flow must be attached to at least one client.
- The flow must be enabled.
Both live on the flow itself. In the flows list an unattached flow reads Not attached to any client, and a switched-off one reads disabled.
Saving a flow pushes it straight to the clients already running it, and the toast confirms that running clients reloaded it. You do not have to restart a client to pick up an edit.
Values that differ per client
Flows are meant to be reused, so a flow never stores a password or a home coordinate
directly. It stores a token such as {{password}} or {{home_x}}, and each client keeps its own
value in its Variables panel. A variable can be tagged secret, which encrypts it
and keeps it out of the editor and the logs.
See variables and secrets for the whole picture.
Where to go next
- A tour of the editor: the canvas, the palette, saving.
- Attaching, Run now and webhooks.
- Recipes: three complete flows to copy.