# DialogueRunner

Class in [Yarn.Unity](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity)

Inherits from `MonoBehaviour`

## Summary

The DialogueRunner component acts as the interface between your game and Yarn Spinner.

```csharp
public class DialogueRunner : MonoBehaviour
```

## Classes

| Name                                                                                                                                            | Description                                                  |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [StringUnityEvent](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.stringunityevent) | A type of `UnityEvent` that takes a single string parameter. |

## Fields

| Name                                                                                                                                                          | Description                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [dialogueViews](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.dialogueviews)                     | The View classes that will present the dialogue to the user.                                                                                                                                   |
| [lineProvider](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.lineprovider)                       |                                                                                                                                                                                                |
| [onCommand](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.oncommand)                             | A [StringUnityEvent](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.stringunityevent) that is called when a `Command` is received. |
| [onDialogueComplete](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.ondialoguecomplete)           | A Unity event that is called once the dialogue has completed.                                                                                                                                  |
| [onNodeComplete](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.onnodecomplete)                   | A Unity event that is called when a node is complete.                                                                                                                                          |
| [onNodeStart](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.onnodestart)                         | A Unity event that is called when a node starts running.                                                                                                                                       |
| [runSelectedOptionAsLine](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.runselectedoptionasline) | If true, when an option is selected, it's as though it were a line.                                                                                                                            |
| [startAutomatically](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.startautomatically)           | Whether the DialogueRunner should automatically start running dialogue after the scene loads.                                                                                                  |
| [startNode](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.startnode)                             | The name of the node to start from.                                                                                                                                                            |
| [verboseLogging](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.verboselogging)                   | If true, will print Debug.Log messages every time it enters a node, and other frequent events.                                                                                                 |
| [yarnProject](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.yarnproject)                         | The [YarnProject](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.yarnproject) asset that should be loaded on scene start.                                                   |

## Methods

| Name                                                                                                                                                                                                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AddCommandHandler(string,Delegate)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-1)                                        | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-9)                                   | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-2)                                     | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-10)                                  | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func\<T1, Coroutine>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-3)                     | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action\<T1, T2>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-11)                         | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func\<T1, T2, Coroutine>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-4)                 | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action\<T1, T2, T3>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-12)                     | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func\<T1, T2, T3, Coroutine>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-5)             | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action\<T1, T2, T3, T4>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-13)                 | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func\<T1, T2, T3, T4, Coroutine>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-6)         | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action\<T1, T2, T3, T4, T5>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-14)             | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func\<T1, T2, T3, T4, T5, Coroutine>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-7)     | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Action\<T1, T2, T3, T4, T5, T6>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-15)         | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddCommandHandler(string,System.Func\<T1, T2, T3, T4, T5, T6, Coroutine>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addcommandhandler-8) | Adds a command handler. Dialogue will pause execution after the command is called.                                                                                                                                                                                                                                                                                                                                                                  |
| [AddFunction(string,Delegate)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-1)                                                    | Add a new function that returns a value, so that it can be called from Yarn scripts.                                                                                                                                                                                                                                                                                                                                                                |
| [AddFunction(string,System.Func)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-2)                                                 | Add a new function that returns a value, so that it can be called from Yarn scripts.                                                                                                                                                                                                                                                                                                                                                                |
| [AddFunction(string,System.Func\<TResult, T1>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-3)                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [AddFunction(string,System.Func\<TResult, T1, T2>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-4)                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [AddFunction(string,System.Func\<TResult, T1, T2, T3>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-5)                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [AddFunction(string,System.Func\<TResult, T1, T2, T3, T4>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-6)                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [AddFunction(string,System.Func\<TResult, T1, T2, T3, T4, T5>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-7)                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [AddFunction(string,System.Func\<TResult, T1, T2, T3, T4, T5, T6>)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.addfunction-8)               |                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [Clear()](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.clear)                                                                                 | Unloads all nodes from the [Dialogue](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.dialogue) .                                                                                                                                                                                                                                                                                        |
| [GetTagsForNode(String)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.gettagsfornode)                                                         | Returns the collection of tags that the node associated with the node named `nodeName`.                                                                                                                                                                                                                                                                                                                                                             |
| [LoadStateFromPlayerPrefs(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.loadstatefromplayerprefs)                                     | Loads all variables from the `PlayerPrefs` object into the Dialogue Runner's variable storage.                                                                                                                                                                                                                                                                                                                                                      |
| [NodeExists(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.nodeexists)                                                                 | Returns `true` when a node named `nodeName` has been loaded.                                                                                                                                                                                                                                                                                                                                                                                        |
| [OnViewRequestedInterrupt()](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.onviewrequestedinterrupt)                                           | Called by a [DialogueViewBase](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialogueviewbase) derived class from [dialogueViews](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.dialogueviews) to inform the [DialogueRunner](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner) that the user intents to proceed to the next line. |
| [RemoveCommandHandler(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.removecommandhandler)                                             | Removes a command handler.                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [RemoveFunction(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.removefunction)                                                         | Remove a registered function.                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [ResetDialogue(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.resetdialogue)                                                           | Starts running the dialogue again.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| [SaveStateToPlayerPrefs(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.savestatetoplayerprefs)                                         | Saves all variables in the Dialogue Runner's variable storage into the `PlayerPrefs` object.                                                                                                                                                                                                                                                                                                                                                        |
| [SetDialogueViews(DialogueViewBase\[\])](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.setdialogueviews)                                       | Sets the dialogue views and makes sure the callback `DialogueViewBase.MarkLineComplete` will respond correctly.                                                                                                                                                                                                                                                                                                                                     |
| [SetInitialVariables(bool)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.setinitialvariables)                                                 | Loads any initial variables declared in the program and loads that variable with its default declaration value into the variable storage. Any variable that is already in the storage will be skipped, the assumption is that this means the value has been overridden at some point and shouldn't be otherwise touched. Can force an override of the existing values with the default if that is desired.                                          |
| [SetProject(YarnProject)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.setproject)                                                            | Replaces this DialogueRunner's yarn project with the provided project.                                                                                                                                                                                                                                                                                                                                                                              |
| [SplitCommandText(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.splitcommandtext)                                                     | Splits input into a number of non-empty sub-strings, separated by whitespace, and grouping double-quoted strings into a single sub-string.                                                                                                                                                                                                                                                                                                          |
| [StartDialogue(string)](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.startdialogue)                                                           | Start the dialogue from a specific node.                                                                                                                                                                                                                                                                                                                                                                                                            |
| [Stop()](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.stop)                                                                                   | Stops the [Dialogue](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.dialogue) .                                                                                                                                                                                                                                                                                                         |

## Properties

| Name                                                                                                                                              | Description                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CurrentNodeName](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.currentnodename)     | Gets the name of the current node that is being run.                                                                                                                                |
| [Dialogue](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.dialogue)                   | Gets the underlying [Dialogue](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.dialogue) object that runs the Yarn code. |
| [IsDialogueRunning](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.isdialoguerunning) | Gets a value that indicates if the dialogue is actively running.                                                                                                                    |
| [VariableStorage](https://docs.yarnspinner.dev/2.2/api/csharp/yarn.unity/yarn.unity.dialoguerunner/yarn.unity.dialoguerunner.variablestorage)     | The variable storage object.                                                                                                                                                        |
