Skip to content

Node graphs

Some things are easier to draw than to describe. Visual scripts are boxes wired together; animator controllers are states joined by transitions. Joystick's editor includes a graph canvas — the shared foundation those visual editors are built on.

A graph is made of nodes (the boxes), pins (their connection points) and links (the curved lines between them). Instead of writing the structure out, you place boxes and draw lines.

Placeholder: a node graph canvas showing boxes (nodes), their connection points (pins), and curved connecting lines (links)

Where you'll see it

EditorForStatus
Visual Script EditorGameplay logicPanel opens; the diagram isn't drawn yet
Animator graphState machinesPlanned

Nothing to edit yet

No panel draws an editable graph today. Double-clicking a .jvisual file opens the Visual Script Editor, which shows a summary of the graph — how many nodes and links it has, plus save and compile actions — rather than the diagram. Animator controllers have a working editor now too, but it's tables (states, transitions, conditions), not a graph — see Editors. The graph view is still future work for both.

What it will do

Every graph editor will share the same canvas, so learning one means you can use them all:

  • Pan and zoom around graphs bigger than the panel
  • Drag from one pin to another to connect nodes
  • Drag a box to select several nodes at once
  • Curved links routed for you
  • Grouping to keep large graphs readable

Layout travels with the project

Where you put your nodes is saved as part of the project, not as an editor preference. Reopen a graph and it looks the way you left it; share the project and a teammate sees the same diagram.

See also

The graph itself isn't drawable yet, but some of the C# methods it will eventually expose as draggable nodes already work today, callable directly from a script:

TopicNode-tagged todayNotes
Physics2DPartiallyRaycastAll, OverlapCircle, OverlapBox, CircleCast, and GetLayerMask are tagged; Raycast itself isn't — its out parameter doesn't fit the node shape used so far
ScenesYesLoad, LoadAdditive, Unload, Reload, and SetActive are all tagged
SessionNoA generic method — the node discovery scan can't build a typed pin from it. Still the recommended way to carry data between scenes, whether you're scripting in C# or, eventually, in a graph