Skip to content

The Canvas

The canvas is Hengo’s main screen: an auto-laid-out diagram of your machines, where each state is a frame holding a small node graph. It is both the overview and the place you work.

The machine graph
The canvas: the base machine with its sub-states below it and the transitions between them.
  • Each state is a frame: a titled band with buttons, and its graph inside.
  • The graph starts at the entry node, which carries the state’s name and its four cells, Start, Every Frame, Physics and End.
  • Steps chain off a cell, ending in an Add action node.
  • A transition is drawn twice: as a card named after the target state, which takes you there when clicked, and as a labelled arrow between the two frames.
  • A state with sub-states is a larger frame with their frames nested inside it.
  • A use of a macro is a frame whose entry node has a pin per input, a cell per Entry, the four normal cells, and a cell per branch.
  • Pan: drag the empty canvas.
  • Zoom: the mouse wheel. The status bar shows the zoom and can reset it to 100%. The camera position is remembered per script.
  • Double-click the empty canvas to toggle full screen.
  • Hover a state or an arrow and the connected ones highlight while the rest dims.
  • Click a frame’s header band to take the view to that state; click a transition card to follow it.
  • Rebuild the flow layout, in the top bar, re-lays everything out after big structural changes.
  • Flow layout, next to it, switches how chains are wrapped.

Everything on a card is covered in Actions on a state, and the keys are in Keyboard Shortcuts.

The buttons on a state frame header
A state header: its name on the left and its buttons on the right.
ButtonWhat it does
Start (flag)Makes this the state the machine starts on
New sub-stateCreates a state nested inside this one
Move toMoves this state into another state
DeleteDeletes this state, after confirming
State settingsThe popup below
Open the macro this state runsOnly on a use of a macro: goes to the definition

Every script is created with one state already in it, and that one is the base state: it cannot be deleted and it cannot be moved into another state, so it carries neither button. Start is greyed out on whichever state is already the start.

Right-click a state row in the sidebar, or use the State settings button on the header.

  • Use macro runs a macro inside this state, as a sub-state.
  • Move to and Delete, the same as the header buttons, and both absent on the base state.
  • Start does the same as the flag.
  • Can Reenter: off by default. A state that is already running ignores a transition back into itself; turn this on when re-entering should restart it.
  • Branches and Transition Data, what this state exposes to whatever transitions into it.
  • Macro Inputs, the values a use of a macro hands in, and Local Vars, variables that belong to this state alone.
  • The name and a free-text description.
The state settings popup
The state settings popup, on a sub-state: Use macro, Move to and Delete on top, then Branches and Transition Data, the two toggles, the description and the name.

The status bar’s All scripts / Current script toggle switches between the whole collection’s machines and just the active one.

The active state glows, the card being executed lights up, and transitions flash as they fire. See Debugging.