> For the complete documentation index, see [llms.txt](https://espergames.gitbook.io/feel-speak/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://espergames.gitbook.io/feel-speak/editors/dialogue-editor.md).

# Dialogue Editor

Going over the Dialogue Editor.

<figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2F4IDrNSi3jxKKOyfDSjj1%2Fimage_2026-07-17_213429311.png?alt=media&amp;token=89e0bc23-6f98-4655-8e36-3a5af2ffc014" alt=""><figcaption></figcaption></figure>

The Dialogue Editor allows you to visually edit a **Dialogue Graph**.&#x20;

## Menu Options

Right-clicking in a blank space in the graph will open the menu options.

| Option         | Description                                                |
| -------------- | ---------------------------------------------------------- |
| Disconnect All | Removes all nodes of the last selected node.               |
| Cut            | Cuts all selected nodes and connections.                   |
| Copy           | Copies all selected nodes and connections.                 |
| Delete         | Deletes all selected nodes and connections.                |
| Replace Node   | Opens the node selector to replace the last selected node. |
| Add Node       | Opens the node selector to add a new node.                 |

## Nodes

Nodes can be freely moved and connected with other nodes. You can edit a node through the **Node Inspector** by clicking on the node.

### Dialogue

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2F6GLUr4aDchmCHNMuhiT8%2Fimage_2025-07-14_101114852.png?alt=media&amp;token=ed330eff-1834-410c-9fbb-e04dfacd16ff" alt="" width="144"><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FXAymXUSvXQ13IC8u0B8I%2Fimage_2026-07-17_213529707.png?alt=media&amp;token=da5b1718-b908-497d-a8ff-5d7ecad98aa9" alt=""><figcaption></figcaption></figure></div>

The **Dialogue Node** allows you to create dialogue for a specific character. You can also use it to set the emotion that the character is currently feeling.

#### Properties

| Name                       | Description                                                                                                                                                     |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Suppress Emotion Animation | If the emotion animation should not be executed.                                                                                                                |
| Suppress Emotion Sound     | If the emotion sound should not play.                                                                                                                           |
| Show Emotion Bubble        | If the emotion bubble should display the emotion sprite.                                                                                                        |
| Bubble Display Length      | The length of time the emotion bubble is displayed for.                                                                                                         |
| Automatic Next On Complete | If the dialogue should continue automatically when it's finished being typed out. This may skip dialogue entirely if the Dialogue Box's mode is set to instant. |
| Dialogue                   | The dialogue text that the character is saying. This includes options for all locales if localization is enabled.                                               |
| Voice Line                 | The voice line which represents the dialogue. This includes options for all locales if localization is enabled.                                                 |

### Choice

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2F47uAtmFrt6iXScxjqJEC%2Fimage.png?alt=media&amp;token=cb61ff43-6f55-47a2-9866-cde0ff3f1249" alt="" width="157"><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FzdtaVfFMgayj6bbQgjPz%2Fimage_2026-07-17_213719405.png?alt=media&amp;token=083b61cf-836c-4928-94c5-ac14cb5b9144" alt=""><figcaption></figcaption></figure></div>

The **Choice Node** allows you to create choices, which can be used to branch out dialogue into unique paths.

#### Properties

| Name              | Description                                                      |
| ----------------- | ---------------------------------------------------------------- |
| (Timeout) Enabled | If timeout is enabled.                                           |
| (Timeout) Length  | The length of time the player has to make a choice.              |
| (Timeout) Random  | If the automatically selected timeout choice should be random.   |
| (Timeout) Index   | The index of the automatically selected choice if time runs out. |
| Choices           | A list of choices.                                               |

**Choice Properties**

| Name | Description                                                                                       |
| ---- | ------------------------------------------------------------------------------------------------- |
| Name | The name of the choice. It's recommended to ensure this is unique, but not required.              |
| Text | The display text of the choice. This includes options for all locales if localization is enabled. |

### Delay

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FbS9l2swiNQXd455pmjps%2Fimage_2025-09-24_163947577.png?alt=media&amp;token=db1d351d-c8b6-4a7c-91bb-32e22bc4fc79" alt=""><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FrJAYdLCZhJYPP85I2guT%2Fimage_2025-07-14_104524294.png?alt=media&amp;token=dd23fb6e-491e-47b9-b17b-1bf4a383405a" alt="" width="260"><figcaption></figcaption></figure></div>

The **Delay Node** simply delays dialogue continuation for some time.

#### Properties

| Name              | Description                                             |
| ----------------- | ------------------------------------------------------- |
| Delay             | The delay length.                                       |
| Hide Dialogue Box | If the dialogue box should be hidden during this delay. |

### Sound

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FYULyjN1NwAV3hLIvN5xs%2Fimage.png?alt=media&amp;token=3734fc9e-7fa0-49ab-9a56-c30c9ebcc4e9" alt="" width="141"><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FagrZnflCF6APZvUSrhgN%2Fimage_2025-07-14_104449957.png?alt=media&amp;token=a41e6c78-3543-49eb-9893-76e1b0187930" alt="" width="260"><figcaption></figcaption></figure></div>

The **Sound Node** simply plays a sound.

#### Properties

| Name  | Description        |
| ----- | ------------------ |
| Sound | The sound to play. |

### Action

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FDtFoCqR9xiniSaj0kkQP%2Fimage.png?alt=media&amp;token=2853f143-2af9-4379-94b9-b5e3bb0601b2" alt="" width="147"><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FY3F9x3OxLk0dzJNQLSx0%2Fimage_2025-07-14_105920659.png?alt=media&amp;token=66066e71-b93e-4120-b11f-7a7b214294de" alt="" width="260"><figcaption></figcaption></figure></div>

The **Action Node** can modify fields and properties or invoke methods on any `GameObject` or `ScriptableObject`. When referencing scene objects, a Scene Target ID is assigned to track them at runtime. If this ID changes—such as due to prefab modifications or scene restructuring—the object may not be located, and the node will be safely skipped during execution.

#### Properties

| Name            | Description                                                                                                                |
| --------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Target          | The target object.                                                                                                         |
| Scene Target ID | The scene target ID. This is only available if the target is a scene object, as it's used to find the object in the scene. |

There may be more properties per parameter if the target class member is a method. You can use the 'Select Option' button to select a target class member.

### Boolean

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FJD1c6wTQyGr9Th0MkI1K%2Fimage.png?alt=media&amp;token=f3dd6376-1f4e-402d-9c2c-1585a3e1b5a5" alt="" width="147"><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FjUvVhxZVYz4p6nSM719d%2Fimage_2025-07-14_110010362.png?alt=media&amp;token=1caddda8-a8f0-426e-af1c-56cd9263ff75" alt="" width="259"><figcaption></figcaption></figure></div>

The **Boolean Node** lets you split a dialogue path based on a true or false condition. Like the Action Node, it allows you to select a class member (method, property, or field), but it's limited to members that return a Boolean value.

#### Properties

| Name            | Description                                                                                                                |
| --------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Target          | The target object.                                                                                                         |
| Scene Target ID | The scene target ID. This is only available if the target is a scene object, as it's used to find the object in the scene. |

There may be more properties per parameter if the target class member is a method. You can use the 'Select Option' button to select a target class member.

### Nest

<div><figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FKG0QdP86sGuO7dBwrq3G%2Fimage.png?alt=media&amp;token=936a2d36-d207-4db8-afcc-fadbd740a8e8" alt="" width="143"><figcaption></figcaption></figure> <figure><img src="https://1123894923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fi5EhvGPJLvE6Kc1rE7X5%2Fuploads%2FqP9rXjF6fLJWllind5Ya%2Fimage_2026-07-17_213843884.png?alt=media&amp;token=f611d729-aafb-4ea1-8180-0d7d3d7d9359" alt=""><figcaption></figcaption></figure></div>

The **Nest Node** lets you embed another dialogue graph within the current one. When triggered, it runs the nested graph from start to finish, then returns to the original graph and continues from where the Nest Node was called.

#### Properties

| Name | Description                                                                                                                         |
| ---- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Mode | Controls the dialogue getter behavior. Depending on this vaue, you will be able to set a single Dialogue Graph or a Dialogue Group. |

**Mode**

| Name                     | Description                                                                                              |
| ------------------------ | -------------------------------------------------------------------------------------------------------- |
| Single                   | Only use a single unchanging dialogue.                                                                   |
| Chronological            | Use a group of dialogues and go through each one by one, then stay at the last one.                      |
| Chronological And Repeat | Use a group of dialogues and go through each one by one, then repeat from the start after the final one. |
| Random                   | Always select a random dialogue from a group of dialogues.                                               |

## Search Bar

The search bar can be used to quickly find specific text within Dialogue and Choice nodes. Matching nodes will be highlighted with a thick white border for easy navigation.
