# Node component

## Start state

This is the first state to be executed when ArborFSM starts.

One graph requires one starting state.

## State

It is a normal state. It is executed by transitioning from the start state or another state.

## Resident state

It is a state that is always executed regardless of the running node.

Perform some kind of interrupt judgment.

Also, because it is always running, it is possible to transition from resident state to other states, but can not transition from other state to resident state.

## Reroute Node

It is a node for adjusting the connection line route.

It is used when connecting lines cross and it is difficult to see.

The direction of the line can also be adjusted with this node.

## StateBehaviour scripts

It is a script for handling state behavior.

It can be set to all states of start state, normal state, resident state.

Since you can add more than one StateBehavior to a state, you can combine behaviors to create states.

For creating StateBehaviour script here.

Scripting : StateBehaviour

### Built-in StateBehaviour

Pre-built behaviors such as ActivateGameObject and OnTriggerEnterTransition in examples are also described in the StateBehaviour script.

For reference on the built-in StateBehavior see here.

ArborReference : StateBehaviours

## About StateLink

Use StateLink to do state transitions.

When you declare a StateLink field in StateBehaviour, the field appears in the Arbor Editor.

By connecting, state transitions are performed at the time of execution according to the description of the StateBehaviour script.

### Method of operation

Operation | Method
--- | ---
Connect | Drag & Drop
Disconnect | Right click on the connection line and select “Disconnect”.

### TransitionTiming

The transition timing is not instantaneous, but it follows the specification of TransitionTiming.

TransitionTiming can be done by clicking on the StateLink gear icon with the setting window that opens.

The behavior of TransitionTiming is as follows.

Item | Contents
--- | ---
Late Update Overwrite | Reserve to transition when LateUpdate. If the transition is already reserved in the same frame, overwrite it.
Immediate | Transit instantaneously at transition call. If the transition is looping, there is a possibility of infinite looping, so use with caution.
Late Update Dont Overwrite | Reserve to transition when LateUpdate. If the transition is already reserved within the same frame, do not overwrite it.
Next Update Overwrite | Reserve to transition when next Update. If the transition is looping, there is a possibility of infinite looping, so use with caution.
Next Update Dont Overwrite | Reserve to transition when next Update. (Default) If the transition is already reserved within the same frame, do not overwrite it.