An error occurs when updating to the latest version

First, please refer to the manual: update guide update procedure and update guide for each version.

If an error occurs even after trying the method described in the update guide, please report it to the bug report forum.

The connection line and the node overlap and it is difficult to see the connection status

By using the reroute node, you can adjust so that the connection line and the node do not overlap.

StateLink’s reroute node

Create reroute node

  • Drag and drop StateLink to the position where you want to create a reroute node.
  • Select “Reroute” from the menu.

Insert reroute node

  • Mouse over the already connected connection line and right click.
  • Select “Reroute” from the menu.

Edit direction of reroute node

  • Select reroute node.
  • Drag direction icon.

Data Slot’s reroute node

Create reroute node

  • Drag and drop DataSlot to the position where you want to create a reroute node.
  • Select “Reroute” from the menu.

Insert reroute node

  • Mouse over the already connected connection line and right click.
  • Select “Reroute” from the menu.

Edit direction of reroute node

  • Select reroute node.
  • Drag direction icon.

I would like to call a component method


By using the StateBehaviour of UnityEvent, simple method calling is possible.

Arbor Reference : SendEventGameObject

Please note that due to the UnityEvent specification, there are multiple arguments or there are restrictions on supported argument types.

Also, there is no function such as receiving complicated methods and arguments in the data input slot (as of Arbor 3.2.0)

Method calls officially supported by Arbor will be supported in future updates.


Change the rotation by calling Transform.LookAt at the timing when the state is started

Unity problem related

[Before 2017.3] Enum type field with System.Flags attribute is not set correctly

Due to a problem of EditorGUI.EnumMaskField and EditorGUILayout.EnumMaskField, if the bit flag value is not continuous, the value set in the GUI will be different from the actual value.

Unity Issue Tracker : EditorGUILayout.EnumMaskField does not support having 0 valued consts


  • Use Unity 2017.3 or later.
  • When using before Unity 2017.3, use only consecutive bit flag values.


public enum ExampleFlags
	// None = 0, // There is a problem: values after this shift
	FlagA = 1,
	FlagB = 2,
	FlagC = 4,
	FlagD = 8,
	// FlagAA = 64, // There is a problem: the value set from the GUI is treated as 16 (next bit of FlagD)
	// FlagAB = FlagA | FlagB, // There is a problem: FlagAB is interrupted before FlagC, and the value differs from the display after FlagC

[Before 2017.3] ArborEditor does not reflect the color of Playmode Tint

It is a problem of Unity.

It has been fixed in Unity 2018.3.

Editor: Fixed the editor playmode tint when using UIElements. (1018617)

When nodes overlap, cursor is changed by TextField etc. of lower node

It is a specification or a bug of Unity.

Please reduce the memory usage of built-in script field

Most of the cases are reserved for general purpose and backward compatibility, so basically no individual support will be made.

If there is a workaround that can be handled while maintaining the functionality and compatibility, then it will be helpful if you can tell in the request forum.

It is also said that textures are the most memory-intensive in common games, so it is recommended to use MemoryProfiler etc to optimize from memory-intensive locations before looking at individual built-in scripts.

I have no money so please give me a voucher code

How did you get a PC to use Unity?

Do you usually buy a game to play?

Arbor is a convenient asset that is much cheaper than a PC and can be purchased for the same price as a game you usually play.

We do not distribute voucher codes. Please buy.

There is also a discount sale. Please buy it even then.

I would like to make the teaching materials public but do I need permission?

It is necessary to obtain permission and contract individually when the following applies.

  • If you need official supervision
  • Publication and sales of educational materials including Arbor
    • Even if it is a part of source code etc., the range which can not be browsed without purchasing Arbor itself is also applicable.
    • Also applicable are lectures and courses that proceed on the premise of Arbor import to a student-owned PC (eg, instructor giving instructions on constructing an environment at a school or seminar).
      • The free trial version can not be used for lectures and classes.If you want to give a lecture without permission
      • If you want to give a lecture without permission
        • Students should purchase them individually.
        • In the case of hands-on seminars, etc., it is necessary to purchase Arbor for the number of instructor-owned PCs and not to leak it to the students.
        • If the instructor makes a bulk purchase and distributes to the students, it may be an asset store EULA violation, please contact Unity.

In the following cases that do not correspond to the above, there is no problem if you publish without permission.

  • Unofficial
    Please be careful not to contact us regarding the materials.
  • Regardless of charge free of charge
  • Website, video site, release of teaching materials by lecture
  • Publishing and selling only teaching materials that do not include Arbor itself
    • There is no need for permission for the scope published in the free Arbor trial version.

Can I use it for content that needs rating (age limit etc)?

Arbor 3 can be used for content that needs to be rated (such as age limit).

However, as a result of using it, caitsithware will not be responsible for the content expression.

Doesn’t work with Unity beta

Operation is not guaranteed for Unity Beta and Alpha versions.

Please use the official release version.

In addition, the Arbor side may still be working right after the official release.

Be careful when upgrading the Unity version, such as backing up the project.

Reason for not guaranteeing operation

  • Because Unity’s specifications are uncertain, for example, even if it goes up from b1 to b2, depending on the changed part, it causes an error or malfunction.
  • There is no version directive (like UNITY_2018_4_OR_NEWER) to separate the actions on the script between b1 and b2.
  • Because it is not possible to judge whether it doesn’t work due to a bug in Unity or if it doesn’t work due to a specification change.

I want you to correct and debug the script I made

We do not correct or debug scripts created by the user.

You are free to create the script, but we are not involved and are not responsible.

Any plans to support C# code generation?

There is no plan to support it.

Arbor3 is an asset for building finite state machines and behavior trees in the first place, so using flow graphs as an alternative to C# code is an unexpected use.

About support

  • If you have any questions, requests, or bug reports regarding how to use Arbor3, please use the forum.
    Support forum
  • We do not support the following contents.
    • Content that is not directly related to Arbor3, such as Unity, C #, other assets, and user-created assets.
    • User project-specific issues.
      (Including debugging requests for user project-specific defects and consultation regarding design policies when using Arbor3)
    • Real-time support via chat, etc.
      (In order to answer the question accurately, we have set up a survey period and created materials for explanation.)
  • Currently, we do not provide free support to directly participate in the user’s project.

I want to introduce Arbor3

  • It doesn’t matter where you introduce it or if you pay for it, you can go freely.
  • We will not be involved in the content of the introduction.
    • Currently, we are not accepting requests for appearances in videos and lectures to be distributed.
  • We do not provide support from viewers of the introduction content.
    • Please avoid expressions that may be mistaken for “Arbor3 official supervision”.
    • Please specify the contact information for the introduction as much as possible.
  • For more information on teaching materials and courses, please also refer to “I would like to make the teaching materials public but do I need permission?“.

I want to interview

  • We only accept e-mail exchanges using the inquiry form.
    Contact us
  • We are not currently accepting face-to-face meetings or remote interviews such as Zoom.
  • Please also refer to the above “I want to introduce Arbor3” regarding appearances in videos distributed to the general public.

Older versions of Arbor do not work properly with the latest version of Unity

Older versions of Arbor are only compatible with the Unity version at the time of release.

Check out the Arbor update along with the Unity update.


I want to make a graph with assets instead of components

Please use the prefab.

The reason why the graph is added to the component is “to allow you to specify the hierarchical structure of the GameObject directly”.

As a concrete example

  • When creating an enemy agent, the child has a weapon object.
  • The weapon object manages the bullet firing state in a separate graph.
  • In the agent side graph, a trigger is sent to the weapon object side graph to control firing.
  • In the case of the asset (Scriptable Object) format, it is necessary to pass the weapon object at runtime.
  • In the case of the prefab (component) format, there is no problem even if you specify it directly because the prefab includes a hierarchical structure (you only need to set up the delivery process when necessary, such as when weapon switching occurs).

It’s like this.

In addition, it is assumed that the functions of MonoBehaviour can be used as-is (since StateBehaviour is inherited from MonoBehaviour), and from the viewpoint of controlling the behavior of objects, it is in component form.
For example, if you want to do something when the collision hits, you can use Unity’s standard method.

Can I upload it to a public repository such as github?


Since it is an act of publishing the assets purchased from the asset store as they are, it is a violation of the EULA of the asset store.
(Of course, it is a violation not only to publish on github but also to publish on personal sites and file sharing sites, and to share with close friends.)

Please note that the DMCA will report (or legal action if repeated) as soon as it is found, regardless of whether it is malicious or intentional disclosure.

I want to connect multiple data input slots

If multiple connections are possible, it is not possible to determine which connection value is used on the graph, so it is prohibited.

If you have multiple connections like this, you don’t know which of parameter A and parameter B will be used.

Make sure the value to be used is fixed by temporarily storing it in a parameter.

Example of temporarily storing in a Float parameter named Current and narrowing down the value used at the time of transition to one