ICode tools can be accessed through the unity toolbar Tools > Unitycoding > ICode > Tools or inside the fsm editor.

The Action Browser shows all available actions sorted by category.

  1. Search actions by name.
  2. Action Browser settings.
  3. Action category.
  4. Select an action to get more info and add it to a state.
  5. Link to online help for the selected action.
  6. Add the action to the currently selected state.
  7. Action and variable field description.
  8. Variable fields.

The Condition Browser shows all available conditions sorted by category.

  1. Search conditions by name.
  2. Condition Browser settings.
  3. Condition category.
  4. Select a condition to get more info and add it to a transition.
  5. Link to online help for the selected condition.
  6. Add the condition to the currently selected transition.
  7. Condition and variable field description.
  8. Variable fields.

The Error Console/Error Checker looks for setup errors in FSMs and shows them in a few places of the interface.

1. Error icon in the Hierarchy.

2. Error icons in the canvas view.

3. Error icon in the Inspector.

The Error Console list all errors of your project.  The errors are selectable so you are right inside the state with the error.


This tool allows you to navigate through all Fsms inside your project or scene. It supports drag and drop functionality to copy/paste an existing fsm to the current selected fsm.

This window allows you to customize shortcuts.

This tool helps you to convert a MonoBehaviour script to an action. You still may need to adjust the action.

Global Variables editor can be accessed from the unity toolbar. It is located at Tools > Unitycoding> ICode > Tools > Global Variables.

Global variables can be used in all state machine. It improves performance, because you do not need to execute havy actions in multiple state machines. Execute it once and reuse the value from other state machines.

When you open the editor first time, GlobalVariables asset will be created in the Resources folder. Please do not rename the folder and the asset name.

You can drag the asset to another project if you want to reuse the collection. But it should be located in the Resources folder.

You can use scene GameObjects in global variables, if you use them please check if the GameObject is not null in condition.