# Features

In this page you will find listed all the features of the package: all of them are tools for MoreMountains AIBrain system.

### 1. AIBrain Graph

The [AI Brain Graph](aibrain-graph/the-aibrain-graph-system) system lets you create AIBrains systems by using a node system.

![An AIBrain Graph for Corgi Engine](https://1480578063-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwY4qXRelZyML_CLwPb%2F-LwoAf9pWX6fQQ0FwJBr%2F-LwoBENSs_xo4wu4Om_B%2Fcorgi_aibrain_graph.png?alt=media\&token=afe7ebe2-c13d-438d-900e-eaca573e6f10)

The AIBrain Graph is based on [xNode](https://github.com/Siccity/xNode), an opensource project by [Thor Brigsted](https://github.com/Siccity).

The graph includes the following features;

* A _visual editing canvas_ with nodes for all the official AIDecisions and AIActions of Corgi and TopDown Engines
* A _subgraph system_ for better reorganization and reusability
* An _AI Brain Generator_ component, for quick creation of brain system starting from a brain graph
* An _AI Pluggable Brain_ component for runtime generation of AI systems

### 2. AIBrain Debugger

The [AIBrain Debugger](aibrain-debugger/untitled) system will let you peek into some of the AIBrain inner workings and test states at runtime.

The debugger includes the following features:

* An  _AIBrainDebuggable_ component, that is an extension of the regular AIBrain component
* An _AIBrain Debugger_ window to check what's going on at runtime including:
  * Force transitions during gameplay
  * Force the brain Target during gameplay
  * Track current/previous brain state tracking

### 3. Master/Slave Brains

The [Master/Brain](master-slave-brains/untitled) system will let you control an AIBrain (or a group of AIBrains) from another point in your game, usually from another AIBrain.

The Master/Brain system includes the following features:

* A _channel_ system to send brain commands through the _MMEventManager_
* A Master component to send state change commands through a channel
* A Slave component to receive state change commands from one or more channels
