Vixen
c7401864
csharp
public sealed class AiBreakpoints

The nodes a running tree stops at, shared by every agent, off unless somebody sets one.

Read the guide page for this →

Remarks

Unreal has these and they are the difference between reading a tree and debugging one — doc 37 § Part 5 says so in as many words. A tree that gets to the wrong branch once every few minutes cannot be caught by watching; stopping the agent at the node leaves the blackboard, the active path and every decorator's last answer exactly as they were when the decision was made.

⚠ A breakpoint stops the agent, not the game. There is no world to freeze from here and freezing one would be the wrong tool: the rest of the level carries on, other agents carry on, and the one being debugged holds its position with its state intact. Resume lets it go.

⚠ The scope rule is the abort rule. A breakpoint on a composite stops when anything inside it becomes the active node, which is the same containment test ObserverAborts uses and the same one the editor's abort-scope overlay shades. One rule an author can see is worth more than two they have to remember apart.

Fields and properties (5)

  • public bool Enabled

    Whether any of them are consulted at all. Off is a single branch per node entry.

  • public int Count

    How many are set.

  • public IReadOnlyCollection<AiBreakpoint> All

    Every breakpoint set.

  • public AiBreakpointHit LastHit

    The last one that fired.

  • public int Hits

    How many times anything has stopped.

Methods (7)

  • public bool Add(Symbol tree, int node)

    Sets one.

  • public bool Remove(Symbol tree, int node)

    Clears one.

  • public bool Toggle(Symbol tree, int node)

    Sets one if it is not set and clears it if it is.

  • public bool Contains(Symbol tree, int node)

    Whether a node has one on it.

  • public void Clear()

    Clears the lot.

  • public bool Halts(BehaviorTreeTemplate template, int node, Entity entity, long tick)

    Whether entering a node stops the tree, and records the stop when it does.

  • public static void Resume(BehaviorTreeInstance instance)

    Lets a stopped agent go.

Used by (6)

  • AiBreakpointTestsVixen.Ai.Tests
  • AiSystemVixen.Ai
  • BehaviorTreeInstanceVixen.Ai
  • AgentDebugModelVixen.Editor.Ai
  • AgentDebugModelTestsVixen.Editor.AssetEditors.Tests
  • BehaviorTreeViewVixen.Editor.AssetEditors