What it does not do yet
One honest list of the nodes, controls, and debugging powers this release leaves out, each with the way to get the same result today.
On this page
If you have used another behavior tree asset, some of the palette you remember is missing here. This page is the whole list, in one place, so you find out in ten seconds instead of hunting the menus. Every row names what to do today, and the rows that name a sample game link the pattern page where you can read the graph it comes from.
Composites and decorators
Section titled “Composites and decorators”| Not in this release | What to do today |
|---|---|
| Random Sequence | For a random pick between orders you care about, put a Random Selector over two or three branches, each the Sequence you wanted. For every child in a shuffled order, wrap the Random Selector in Repeat on Count and gate each branch with the same already-run variable the next row describes. |
| A Random Selector that never repeats a pick | Each pass picks by weight on its own, so store the last pick in a blackboard variable and gate the branches with Conditional. |
| Utility Selector | Score the options in your own C#, write the winner to a blackboard value, and put a Selector over branches whose conditions compare it. Racing Line’s CPU driver decides its catch-up pressure exactly that way. |
| Switch | A Selector whose children each carry a Conditional comparing one variable is the same decision, and it shows which case won in Live. |
| Step Sequencer | Give each step a mode in a state machine, which also survives being interrupted halfway through. |
| Cooldown decorator | Hold the next-allowed time in your own component and bind a field: that is exactly how Horde Survival’s attack with cooldown works. |
| Execution Limit | Repeat on its Count policy bounds a loop, and a counter in a variable plus a Conditional bounds a branch over the agent’s life. |
| Iterator | Loop inside your own method and return a result the graph routes. The graph decides; your code does the walking. |
| Wait Until | An Event Condition waits for a C# event, and a Member Condition under Repeat on Until Success retries a check every update. |
| Monitor | Watch the value with an Event Condition, or put the check on a continuous transition so it is re-read every tick. |
| Guard | Gate the branch with Conditional over a flag your own code owns, which keeps the arbitration rule in one readable place. |
| Force Success, Force Failure | Set a member node’s Result to Always and choose the outcome it reports. Inverter covers the flip. |
Interruption, memory, and scope
Section titled “Interruption, memory, and scope”| Not in this release | What to do today |
|---|---|
| Abort mode Both | Pick Lower Priority or Self for the node that owns the interruption, and add a second interrupting condition where you need the other reach. |
| Scene or project blackboard scopes | A blackboard belongs to one graph instance. Share state across agents through a component or a static declaration the graph binds with a target. |
Parallel runs its children one at a time
Section titled “Parallel runs its children one at a time”Parallel is the honest exception on this page, because it is in the palette and it works. In this release it visits its children in Children order, exactly like a Sequence: Success once all of them have succeeded, Failure the moment one fails, and no completion policy to choose. Concurrent children with a policy are planned. Until then, use it to group the children that all have to succeed, and read do together for what that buys you over a Sequence.
Debugging and the editor
Section titled “Debugging and the editor”| Not in this release | What to do today |
|---|---|
| Breakpoints on an entity | Unity’s global pause plus the entity Live view reads the graph of the exact entity you selected. GameObject agents have per-agent breakpoints. |
| Editing values on a running entity | Entity Live observes. Change the ECS data from your own system, and the next tick reads it. |
| Editing values in the graph-wide Blackboard panel | That panel is a snapshot. The editable rows are on the member cards of a GameObject agent’s bindings. |
| Live editing a struct whose fields are not all floats on a member card | The card shows the struct’s fields and its real type. Change it from your own code, or surface the part you want to tune as its own property. |
| Seeing a hosted tree’s nodes on the Live machine canvas | The machine canvas draws modes. The rail’s Runtime card names the active state and the action running inside its hosted tree. |
| A result badge on every card in a GameObject Live tree | The GameObject Live canvas carries one status pill, on the node the cursor is holding, showing the graph’s latest result. A leaf that succeeds hands the cursor on inside the same tick, so its card never shows a green badge. Read the rail’s Graph runtime status card for the last result, or run the graph on an entity, where every evaluated card keeps its badge. |
| The A key on an empty canvas, and Cmd+R for Reload | Both are named by tooltips that no handler maps. Click the buttons. Every shortcut that is bound is listed. |
Where this list comes from
Section titled “Where this list comes from”Everything above was read out of the shipped package or observed in the editor while this documentation was written. When a row moves, it moves in the release notes first.
Looking for a capability and not finding it here? Ask on the Bit Quirky Discord. A missing row is a documentation bug worth reporting.