How to Use the Stepper Window
How to Use the Stepper Window
Build and run multi-step shows from the dedicated Stepper window. A Stepper is an ordered list of steps, where each step triggers one or more sequences. You advance through steps manually, by trigger, or automatically when sequences finish.
Note vs the Stepper node: The Stepper is now a first-class show-control entity with its own window. You create and program steppers here — not inside a node. The Sequence:Stepper node in the Node Editor is a thin reference that points at an entity created in this window (or migrated from an older project). For a workflow-oriented walkthrough of building a stepped show end-to-end, see Build a Multi-Step Show.
[USER-ACTION-REQUIRED: Attach a screenshot of the Stepper window here — ideally showing the entity list on the left, a few steps in Rows view, and the transport controls above]
Before you start
- At least one Sequence exists (create one in the Sequencer window first — the Stepper triggers sequences, it does not hold content itself)
- Content assets are imported and placed on sequence timelines
- The Stepper window is visible — open it from View > Stepper
Steps
1. Create a Stepper
In the Stepper window's left panel, click the + button below the entity list. A new stepper appears with a default name. Double-click the name to rename it.
2. Choose a display mode
Select the stepper in the left panel. In the Inspector on the right, choose a display mode:
-
Rows (default) — one row per step. Columns show: step number, name, sequences, transition, end action, and wait. Best for linear shows with many steps.
-
Matrix — sequences as rows, steps as columns. Cells toggle a sequence into a step. Best when many sequences share the same step grid.
3. Add sequences (Matrix view)
Click the + button in the Sequence column to open the Add Sequence picker. Use the Filter field to search. Select a sequence to add it as a row. Repeat for each sequence your show uses. Choose All to add every filtered sequence at once.
4. Add sequences (Rows view)
Click + Add step below the step table. A new row appears. Open the Sequences dropdown on that row and tick each sequence this step should trigger. The dropdown includes a Filter field for quick search.
5. Add steps and assign sequences
Matrix view: Click the + button in the header row (to the right of the last step column). Then click cells at the intersection of a sequence row and step column to toggle that sequence into the step. Each cell cycles through three states: off, Normal (restart from the beginning), and Resume (continue from where the sequence last stopped).
Rows view: Click + Add step to append a step. Open its Sequences combo to tick the sequences it triggers.
6. Configure per-step behavior
Each step has three per-step controls, shown as glyph icons in both views:
-
Transition — click the icon to cycle through transition modes: Hard, XFade, FadeOutIn, FadeIn, FadeOut. Hold
Shiftand click to cycle backward. -
End action — click to cycle through: Next (advance to the next step automatically), Stop, JumpTo (shows a target field where you enter the destination step number).
-
Wait — toggles between "Advance instantly" and "Await finish." When Await finish is active, pressing Next does not jump immediately — it waits until the step's looping sequence completes its current loop, then advances. See Await finish below for full details.
7. Reorder steps (Rows view only)
Drag a step row by its step-number button and drop it onto another row. An insertion line shows where the step will land. The table auto-scrolls when you drag near the top or bottom edge.
8. Use the transport controls
The transport bar sits above the step grid, centered in the editor area. From left to right:
-
Play — start or resume playback from the current step. If an advance is pending (see below), pressing Play cancels the pending advance and keeps the current step running.
-
Pause — pause the active step
-
Stop — stop and reset to no active step
-
Previous — jump to the previous step
-
Next — advance to the next step. On an Await-finish step, this arms the advance and waits for the loop to end rather than jumping immediately. The Next button pulses while the advance is pending.
-
Restart — restart the current step from the beginning
A status readout to the right shows: the active step number, total steps, playback status, and elapsed time in the current step (e.g. "Step 2 / 5 | Playing | 3.2s").
9. Jump to a specific step (GoTo)
Click any step's number button — in the header row (Matrix) or the step-number column (Rows) — to jump directly to that step. The active step is highlighted in the sequencer's "playing" color.
10. Delete a step or sequence
Rows view: Right-click a step row and select Remove step N.
Matrix view: Right-click anywhere in a step column and select Remove step N. Right-click a sequence row name and select Remove sequence.
Await finish
"Await finish" lets a looping step keep running until you cue the next step, then advance cleanly at the end of the current loop instead of cutting mid-loop. It is the Wait control on each step, available in both the Rows and Matrix views.
How it works
|
State |
What happens when you press Next |
|---|---|
|
Advance instantly (default) |
Jumps to the next step immediately. |
|
Await finish |
Does not jump right away — the step keeps playing and advances only when its looping sequence finishes the current loop. |
|
Advancing (pending) |
After you press Next on an Await-finish step, the advance is armed. The step keeps playing and will jump at the next loop boundary. |
Visual feedback while an advance is pending
Once Next is pressed on an Await-finish step, the stepper enters a "pending advance" state. Two indicators pulse to show the advance is armed:
-
The per-step Wait glyph changes from a wait icon to a pulsing next arrow.
-
The transport Next button also pulses (its tooltip changes to "Next step (advancing at loop end)").
The pulsing continues until the loop completes and the stepper advances to the next step. If you hover the pulsing Wait glyph, the tooltip reads "Advancing at next loop end."
When Await finish is available
The Wait control can only be switched on for a step that contains a looping sequence with a known loop length. This means the sequence must loop endlessly AND have a deterministic loop cycle (a known duration per loop). On any other step the control is disabled, and hovering it shows "Await finish (needs a looping sequence)."
If the looping sequence is later removed, replaced with a non-looping one, or set to stop looping, Await finish turns itself off automatically.
Cancelling a pending advance
While a step is armed and waiting ("Advancing"), press Play to cancel the pending advance — the step keeps looping and stays put, and the pulsing indicators clear. Toggling the Wait control off also cancels the pending advance.
Await finish in the Node Editor and external control
The same behavior applies when you trigger Next via the Sequence:Stepper node's input pin in the Node Editor. The pending state is reflected through two outputs:
-
Awaiting end output pin — emits
1while the active step has latched a Next and is waiting for the loop to end,0otherwise. Use this pin to drive indicators, conditional logic, or feedback in your node graph. -
Show-control protocol — the
advancePendingfield in the stepper's JSON status object reportstruewhile an advance is pending. External control systems subscribed to stepper status receive this field in real time.
The standalone Backstage Control Panel reference client (a GUI over the JSON remote-control protocol, used for demonstration and integration testing) displays a prominent "AWAITING LOOP END" badge next to any stepper whose Await-finish step is waiting, along with a Go to step control for direct step selection.
Options explained
These options appear in the Inspector when a stepper is selected in the Stepper window's left panel. They are grouped under a Stepper collapsing header.
|
Setting |
Description |
Values / Range |
|---|---|---|
|
Name |
Display name of the stepper, shown in the entity list and node references. |
Text field |
|
Label |
Optional label shown in Web Console stepper dropdowns. |
Text field |
|
Loop |
When enabled, the stepper wraps around to step 1 after the last step's end action is "Next." |
Checkbox (default: off) |
|
Rows / Matrix |
Display mode for the step editor in the Stepper window. |
Radio buttons (default: Rows) |
|
Default transition |
Transition mode applied to newly created steps. |
Dropdown: Hard, XFade, FadeOutIn, FadeIn, FadeOut (default: Hard) |
|
Fade ms |
Duration of fade transitions in milliseconds. Only effective when a step's transition mode involves a fade. |
Integer, 0+ (default: 0) |
|
Step end mode |
How the stepper determines when a step has "finished" (for end-action evaluation): based on the shortest or longest sequence in the step. |
Dropdown: Shortest, Longest (default: Shortest) |
|
Max displayed steps |
Rows view only. Limits how many step rows are visible before a scrollbar appears. 0 means unlimited. |
Integer, 0+ (default: 0) |
|
Lock transport |
Disables transport controls in the Presenter view (prevents operators from playing/stopping). |
Checkbox (default: off) |
|
Lock programming |
Disables step editing in the Presenter view. |
Checkbox (default: off) |
|
Lock layout |
Prevents layout changes in the Presenter view. |
Checkbox (default: on) |
Common Mistakes
-
No sequences appear in the step editor — The Stepper triggers sequences; it does not contain content. Create at least one sequence in the Sequencer window first, then add it to the stepper via the + button (Matrix) or the Sequences dropdown (Rows).
-
The Wait / Await finish control is greyed out — Await finish requires a step with a looping sequence that has a known loop length. If all sequences in the step have a fixed end (non-looping) or no deterministic cycle, the control is disabled. Set the sequence — or its last channel event — to loop, and the control becomes available.
-
The advance never fires after pressing Next — The sequence must have a known loop length (a deterministic loop cycle). If the sequence loops but Backstage cannot determine the loop duration, the step is not considered awaitable. Verify the sequence has content with a defined duration on its timeline.
-
Fade transitions have no visible effect — Set the Fade ms value in the Inspector to a non-zero value. The default is 0 ms, which makes fade-type transitions behave identically to a hard cut.
-
Cannot delete a stepper from the list — If the stepper shows a "[node]" suffix, it is hosted by a Sequence:Stepper node in the Node Editor. Delete or disconnect the node instead; the entity list will then allow deletion.
Tips
-
The Stepper window docks as a tab next to the Sequencer on first use. You can undock and reposition it like any other window.
-
Right-click a stepper in the entity list to open a context popup with the Inspector options and a Delete action — useful for quick edits without switching to the Inspector.
-
In Rows view, double-click a step's name cell to rename it. Steps without a custom name display the name of their single assigned sequence, or "Multiple" if more than one sequence is assigned.
-
Use the Awaiting end output pin on the Sequence:Stepper node to drive visual feedback (e.g. a blinking light in your node graph or Presenter interface) while an advance is pending.
-
The Presenter locks (transport, programming, layout) control what operators can change in the Presenter window and Backstage Hub. Lock programming and transport during a live show so operators can only advance steps via the designated controls.
Related
-
Build a Multi-Step Show — end-to-end workflow for building a stepped show
-
Sequence:Stepper — the Node Editor node that references a Stepper entity
-
Sequence:StepperCommander — string/UDP commands for controlling a Stepper
-
Build a Presenter Interface for Operators — set up operator-facing controls including stepper widgets
-
Trigger Playback via UDP — external trigger integration
