Skip to content

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.

on join
command /login {{password}}
every 10 minutes
sneak on
wait 250 milliseconds
sneak off

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:

  1. The flow must be attached to at least one client.
  2. 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

How flows work · CubeMind docs