# Dialogue

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

Inherits from `System.Object`

## Summary

Co-ordinates the execution of Yarn programs.

```csharp
public class Dialogue : IAttributeMarkerProcessor
```

## Constructors

| Name                                                                                                                  | Description                                                                                                         |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [Dialogue(Yarn.IVariableStorage)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue..ctor) | Initializes a new instance of the [Dialogue](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue) class. |

## Fields

| Name                                                                                                                      | Description                              |
| ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| [DefaultStartNodeName](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.defaultstartnodename) | The node that execution will start from. |

## Methods

| Name                                                                                                                                  | Description                                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AddProgram(Program)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.addprogram)                        | Loads the nodes from the specified [Program](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.program) , and adds them to the nodes already loaded.                                                                           |
| [Continue()](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.continue)                                   | Starts, or continues, execution of the current Program.                                                                                                                                                                            |
| [ExpandSubstitutions(string,IList)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.expandsubstitutions) | Replaces all substitution markers in a text with the given substitution list.                                                                                                                                                      |
| [GetStringIDForNode(string)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.getstringidfornode)         | Returns the string ID that contains the original, uncompiled source text for a node.                                                                                                                                               |
| [GetTagsForNode(string)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.gettagsfornode)                 | Returns the tags for the node `nodeName` .                                                                                                                                                                                         |
| [NodeExists(string)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.nodeexists)                         | Gets a value indicating whether a specified node exists in the Program.                                                                                                                                                            |
| [ParseMarkup(string)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.parsemarkup)                       | Parses a line of text, and produces a [MarkupParseResult](https://docs.yarnspinner.dev/2.0/api/csharp/yarn.markup/yarn.markup.markupparseresult) containing the results.                                                           |
| [SetNode(string)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.setnode)                               | Prepares the [Dialogue](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue) that the user intends to start running a node.                                                                                             |
| [SetProgram(Program)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.setprogram)                        | Loads all nodes from the provided [Program](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.program) .                                                                                                                       |
| [SetSelectedOption(int)](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.setselectedoption)              | Signals to the [Dialogue](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue) that the user has selected a specified [Option](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.optionset/yarn.optionset.option) . |
| [Stop()](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.stop)                                           | Immediately stops the [Dialogue](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue) .                                                                                                                                 |
| [UnloadAll()](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.unloadall)                                 | Unloads all nodes from the Dialogue.                                                                                                                                                                                               |

## Properties

| Name                                                                                                                            | Description                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [CommandHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.commandhandler)                   | Gets or sets the [CommandHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.commandhandler) that is called when a command is to be delivered to the game.                                              |
| [CurrentNode](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.currentnode)                         | Gets the name of the node that this Dialogue is currently executing.                                                                                                                                               |
| [DialogueCompleteHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.dialoguecompletehandler) | Gets or sets the [DialogueCompleteHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialoguecompletehandler) that is called when the dialogue reaches its end.                                        |
| [IsActive](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.isactive)                               | Gets a value indicating whether the Dialogue is currently executing Yarn instructions.                                                                                                                             |
| [LanguageCode](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.languagecode)                       | Gets or sets the [Dialogue](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue) 's locale, as an IETF BCP 47 code.                                                                                     |
| [Library](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.library)                                 | Gets the [Library](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.library) that this Dialogue uses to locate functions.                                                                                     |
| [LineHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.linehandler)                         | Gets or sets the [LineHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.linehandler) that is called when a line is ready to be shown to the user.                                                     |
| [LogDebugMessage](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.logdebugmessage)                 | Invoked when the Dialogue needs to report debugging information.                                                                                                                                                   |
| [LogErrorMessage](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.logerrormessage)                 | Invoked when the Dialogue needs to report an error.                                                                                                                                                                |
| [NodeCompleteHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.nodecompletehandler)         | Gets or sets the [NodeCompleteHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.nodecompletehandler) that is called when a node is complete.                                                          |
| [NodeNames](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.nodenames)                             | Gets the names of the nodes in the currently loaded Program.                                                                                                                                                       |
| [NodeStartHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.nodestarthandler)               | Gets or sets the [NodeStartHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.nodestarthandler) that is called when a node is started.                                                                 |
| [OptionsHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.optionshandler)                   | Gets or sets the [OptionsHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.optionshandler) that is called when a set of options are ready to be shown to the user.                                    |
| [PrepareForLinesHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.prepareforlineshandler)   | Gets or sets the [PrepareForLinesHandler](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.prepareforlineshandler) that is called when the dialogue anticipates delivering some lines. |
| [VariableStorage](https://docs.yarnspinner.dev/2.0/api/csharp/yarn/yarn.dialogue/yarn.dialogue.variablestorage)                 | Gets or sets the object that provides access to storing and retrieving the values of variables.                                                                                                                    |
