Data flow
Output slot
Data can be output by declaring an output slot such as OutpotSlotInt.
Example script
Create a TestOutputSlotBehaviour script file and write the following code.
|
|
When this script is added to the state of ArborFSM, it becomes as follows.

Output slot class
- OutputSlotInt
- OutputSlotFloat
- OutputSlotBool
- OutputSlotGameObject
- OutputSlotString
- OutputSlotVector2
- OutputSlotVector3
- OutputSlotQuaternion
- OutputSlotRect
- OutputSlotBounds
- OutputSlotColor
- OutputSlotTransform
- OutputSlotRectTransform
- OutputSlotRigidbody
- OutputSlotRigidbody2D
- OutputSlotComponent
- OutputSlotLong
- OutputSlotCollider
- OutputSlotCollider2D
- OutputSlotCollision
- OutputSlotCollision2D
- OutputSlotRaycastHit
- OutputSlotRaycastHit2D
- OutputSlotUnityObject
- OutputSlotAny
Input slot
Data can be output by declaring an input slot such as InputSlotInt.
Example script
Create a TestInputSlotBehaviour script file and write the following code.
|
|
When this script is added to the state of ArborFSM, it becomes as follows.

Input slot class
- InputSlotInt
- InputSlotFloat
- InputSlotBool
- InputSlotGameObject
- InputSlotString
- InputSlotVector2
- InputSlotVector3
- InputSlotQuaternion
- InputSlotRect
- InputSlotBounds
- InputSlotColor
- InputSlotTransform
- InputSlotRectTransform
- InputSlotRigidbody
- InputSlotRigidbody2D
- InputSlotComponent
- InputSlotLong
- InputSlotCollider
- InputSlotCollider2D
- InputSlotCollision
- InputSlotCollision2D
- InputSlotRaycastHit
- InputSlotRaycastHit2D
- InputSlotUnityObject
- InputSlotAny
FlexibleField
FlexibleField is useful for not only input slots but also constant values and parameters.
Example script
Create a TestFlexibleFieldBehaviour script file and write the following code.
|
|
Add this script to the ArborFSM state and set the reference type to Calculator as follows.

FlexibleField related class
- FlexibleInt
- FlexibleFloat
- FlexibleBool
- FlexibleGameObject
- FlexibleString
- FlexibleEnumAny
- FlexibleVector2
- FlexibleVector3
- FlexibleQuaternion
- FlexibleRect
- FlexibleBounds
- FlexibleColor
- FlexibleTransform
- FlexibleRectTransform
- FlexibleRigidbody
- FlexibleRigidbody2D
- FlexibleComponent
- FlexibleLong
- FlexibleField
(Inherit and use it)
Type constraints of slots

For InputSlotAny and InputSlotComponent, you can specify type constraints with attributes.
Example script
|
|
Available Attributes
Class | Attribute |
---|---|
OutputSlotAny | SlotTypeAttribute |
InputSlotAny | Class derived from ClassTypeConstraintAttribute SlotTypeAttribute |
InputSlotComponent | Class derived from ClassTypeConstraintAttribute SlotTypeAttribute It is also constrained to the Component class. |
InputSlotUnityObject | Class derived from ClassTypeConstraintAttribute SlotTypeAttribute It is also constrained to the UnityEngine.Object class. |
FlexibleComponent | Class derived from ClassTypeConstraintAttribute SlotTypeAttribute It is also constrained to the Component class. |
Customize
Create data slot
You can also create a data slot of your own class.
For details, refer to “Scripting : Data Slot”.
Variable
If you also create a parameter, you can create it easily using Variable Generator.
For details, see “Scripting : Variable”.
Calculator node
You can also create scripts to use for calculator nodes.
For details, see “Scripting : Calculator”.