# Blackboard

**State Machine Graphs** can not reference scene objects due to living in the Project Panel. To overcome this, we've created the **Blackboard**, where the developer writes down the input fields he/she'll need and these are filled at runtime.

![](/files/-MTT3M4y3ldXGP-W-Anc)

{% hint style="info" %}
As you may have noticed in the image above, to access the value of a **Blackboard** entry is done as if it was a **Local Variable**. This is because under the hood, the **State Machine** component generates a new **Local Variable** component and fills it with all the entries from the **Blackboard**.
{% endhint %}

Once the **Blackboard** is filled with some entries, the **State Machine** component is automatically updated, adding new entries and removing those that no longer exist in the **Blackboard**.

![](/files/-MTT3nIQtm2C3Jhc0Vfh)

For example, let's say our game has a *Guard* that can attack anything when it has a **`target`** defined. We could create a **`target`** entry in the **State Machine** and ask if it's different than *null*. If so, follow it and attack when it's within in range.

![(Can't have a Local Variable with the same name as a Blackboard entry)](/files/-MTT7Tr__3HnWxq1c67X)

{% hint style="danger" %}
Because the **StateMachine** component generates a **Local Variable** object with the **Blackboard** entries, it will throw a conflict error.
{% endhint %}

{% hint style="warning" %}
**Invoker** is a variable automatically generated and it will always have the game object where the State Machine is as reference.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ninjutsugames.com/game-creator-1/state-machine/editor-graph/blackboard.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
