
In Flow Core, a Loop does not fundamentally mean “repeat the downstream chain.” Instead, it means repeatedly executing the instruction list inside the current node over a numeric range, and then continuing through Out.
This is the key difference between Loop and Repeat:
Repeat reruns the downstream chain, while Loop reruns the instruction list inside the node itself.
At runtime, the node first passes through the gate / busy-state logic, and then evaluates the Guard. If the Guard fails, it returns the configured Reject Result, typically Abort or Invalid.
From, To, and Step are not limited to literal values. They are resolved as integers through FlowValueGetGeneralListCount, which means they can come from a Literal, FlowCoreProcess, Payload, Target, or even directly from the Count of a list.
The loop condition is straightforward:
index < toindex >= toOn each iteration, the current index is written into the Index Payload. If Loop Index Enabled is turned on, the current index is also written into an additional int target. Even if Blackboard write-back is disabled, the payload index always exists.
Check Instruction return values have special meanings inside a loop:
In the editor, this node appears under the Loop menu entry, with its own Loop color theme and a ♾️ icon style.
The node body is typically read in this order: Guard, Loop Settings, and Instructions. The Loop Settings section includes From, To, Step, and Index Target, along with a collapsible summary, copy/paste buttons, and a warning when Step = 0.
The busy-state hints are:
These are the standard invoke semantics inherited by Loop. They are not unique loop behaviors.