Skip to content

Logic graph

The logic graph shows World logic rules as nodes and wires, like Unreal Blueprints. It is not a new format. It is the same data as the World logic panel, viewed in a different shape. An edit on either side is reflected on the other immediately.

Each rule is one row from left to right. Exec pins connect in the order event → (filters) → conditions → actions.

WhatWhere
Logic graphTools › Logic graph (the Logic graph tab in the bottom dock area. You can also turn it on from the Window menu)
Add a nodeRight-click an empty spot in the graph · Node on the toolbar

Create an “on zone enter: sound” rule in the graph.

  1. Right-click an empty spot in the graph. The Add node window opens.
  2. Type 구역 in the search box and select On zone enter (event). A new rule is created.
  3. In the Zones field of the event node, pick a trigger zone actor.
  4. Drag the white exec pin on the right of the event node to an empty spot.
  5. In the window that opens, select Sound (action). It is connected after the event.
  6. Fill in the Sound field of the sound node.
  7. Check that the check summary on the right of the toolbar says Check passed.
NodeHeader colorMeaning
EventRedThe rule’s trigger. The start of the chain. The header has a rule enable button.
FiltersOchreOnce · once per player · cooldown · permission. Always comes right after the event.
ConditionGreenGoes on to the next node if true.
ActionBlue (color per category)What the rule does.
WaitDark blueThe wait action. The seconds field is inside the node.
Actor referencePurpleA single scene actor. Wire it into a field to use that actor.
Not connectedGrayA node not attached to any rule. It is not saved.

Since 0.9.7: Condition and action node headers have a different color per category (zone orange · flow navy · variable/function teal · world greenish · screen blue · actor purplish · collision brown · block ochre · combat reddish). Conditions use these colors blended with green.

Nodes with errors have a red border; nodes with warnings have a yellow border. Hover over the mark in the header to see the details.

Each rule is enclosed by a comment frame (Rule frames). The frame header shows the rule name and one-line description. Dragging the frame moves the whole rule.

PinShapeConnectsCount
Exec pinWhite pentagon arrowExecution order (event → condition → action)One outgoing wire
Function pinYellow diamondAn action that calls a function → a Function eventOne wire per pin
Data pinPurple circleActor reference → actor fieldOne can connect to several fields
Signal pinYellow diamondSend signal action → On signal eventAll receiving rules (broadcast)

Connected pins are drawn filled; empty pins are drawn as outlines only. Function and signal wires are drawn dashed.

  • Dragging an exec pin onto another node removes that node from its current place and inserts it right after. Nodes from other rules are moved too.
  • Conditions can only follow an event, filters or another condition. They cannot come after an action.
  • Nothing can be connected in front of an event node.
  • Dropping an exec pin on an empty spot opens the Add node window in Connects after this mode. Only conditions and actions are listed.
  • Dragging off the incoming end of a wire removes that node from the chain. The following node is connected to the preceding node. The removed node becomes Not connected.

Since 0.9.11: Each yellow function pin holds one function. Execution is serial, not parallel.

ActionPin location
Call function · Repeat · For each playerOne pin on the Function field row
Branch (if)One pin each on the If true and If false field rows
In order (sequence)A pin per step (1 · 2 · …) + a Connect next step pin
  • Dragging a pin onto a Function event node fills that function’s name into the field.
  • Connecting an already connected pin again replaces the connection. No extra wire is added.
  • Connecting to the Connect next step pin adds one step. Steps run in number order.
  • Dropping a pin on an empty spot creates and connects a new Function rule (named func_1, func_2 …).
  • Two or more function rules with the same name are a check error, because one pin would branch two ways.
  • Writing several functions in one call field is a check error. To call several functions in turn, use In order (sequence).

Functions and the actions that call them are covered in detail in Variables, functions and data types.

  • Dragging the pin of a Send signal action onto an On signal event makes the signal names match.
  • Signals are broadcast. They go to every rule that receives the same name. Each receiving rule filters with its own conditions.
  • The action node shows Receiving rules N or No receiving rules.
  • Dropping the pin on an empty spot creates and connects a new On signal rule.
  • Dragging the purple pin of an actor reference node onto a node’s actor field sets that field to that actor.
  • If the field does not accept that type of actor, it is not connected and the reason is shown.
  • Dragging a field’s purple pin to an empty spot opens an Add node window with only actor references.
  • Disconnecting the wire clears that field.

Open it by right-clicking an empty spot or with the Node button. The search box searches by name, type and group.

GroupWhen selected
Event · …Creates a new rule.
Condition · … / Action · …Places a node. If the window was opened from an exec pin, it is connected after it; otherwise it becomes a Not connected node.
Rule › Filter (once · cooldown · permission)Shows the filter node of the selected rule.
Actor referenceConnects that actor to the matching actor field of the selected node.

You can also pick triggers that can only be fired manually in this window. Test them with Fire in Play.

TargetDeleteCtrl+D
EventDeletes the whole ruleDuplicates the whole rule (name + ” copy”)
Condition · ActionRemoves only that nodeCopy right after it
FiltersResets filters to defaults and hides them—
Actor referenceClears the fields that use that actor—
Not connected nodeSimply deletes it—

Since 0.9.7: Copy and paste nodes with Ctrl+C · Ctrl+V. Selecting an event copies the whole rule. You can paste after the selected node, into another rule or into another world.

Since 0.9.7: Breakpoints and execution highlighting were added.

  1. Select an action node (including Wait) and press F9. A red dot appears in the header.
  2. Start Play.
  3. When the rule reaches that action, Play pauses and a notification appears.
  4. Resume (Pause or the Paused button) to continue from that action.
  • You cannot set breakpoints on condition or event nodes.
  • Nodes executed during Play briefly light up with a green border.
  • Breakpoints are editor-only. The server ignores them.

Toolbar buttons and checkboxes.

ItemDefaultMeaning
Node—Opens the Add node window (same as right-click).
Auto layout—Clears saved node positions and lays out each rule in one row.
Breakpoint—Toggles the breakpoint on the selected action node (F9).
Frame all—Fits the view so all nodes are visible.
Show selected rule—Goes to the rule selected in the World logic list.
Sync with listOnSelecting a rule in the list moves the graph to it, and selecting a node in the graph also selects its rule in the list.
Rule framesOnShows a comment frame per rule.
Actor nodesOnShows an actor reference node for each actor field.
Snap to gridOnSnaps nodes to a 16-unit grid.
MinimapOnThe minimap at the bottom right. Hidden when the graph area is short.
Zoom—Shows the current zoom. 25%–200%.

Positions of dragged nodes are saved in the rule data (the _graph field, editor-only). Nodes without a saved position are laid out automatically.

KeyAction
Right-click (empty spot)Add node window
DeleteDelete the selected nodes
Ctrl+DDuplicate the selected nodes
Ctrl+C · Ctrl+VCopy · paste
F9Toggle breakpoint (when the graph has focus)
Ctrl+mouse wheelZoom in · out
Mouse wheelPan the graph
Ctrl+ZUndo (all graph edits)
  • Not connected nodes are not saved. They disappear when you reopen the world. Connect them to a rule chain’s exec pin.
  • Filter nodes are hidden when the filters are at their defaults. Show them with Add node › Filter.
  • Filters are not used in function rules. Use conditions.
  • Fields inside a node are the same controls as in the World logic panel. Instead of check messages below the field, problems are shown by the field name color and the node border.