# Writing Yarn Scripts

- [First Steps with Scripting](https://docs.yarnspinner.dev/write-yarn-scripts/start-here.md): Welcome to Yarn Spinner! On this page you'll learn how to get started.
- [Yarn Spinner Editor](https://docs.yarnspinner.dev/write-yarn-scripts/yarn-spinner-editor.md): Learn about the Yarn Spinner Editor, our official extension for Visual Studio Code.
- [Writing Yarn in VS Code](https://docs.yarnspinner.dev/write-yarn-scripts/yarn-spinner-editor/writing-yarn-in-vs-code.md): Learn how to use Yarn Spinner for Visual Studio Code as your Yarn editor.
- [Yarn Spinner Project Files](https://docs.yarnspinner.dev/write-yarn-scripts/yarn-spinner-editor/yarn-spinner-project-files.md): Learn about Yarn Spinner Project files.
- [Writing Together](https://docs.yarnspinner.dev/write-yarn-scripts/yarn-spinner-editor/writing-together.md): Learn how to use the Live Share Extension with Yarn Spinner for Visual Studio Code.
- [Errors](https://docs.yarnspinner.dev/write-yarn-scripts/yarn-spinner-editor/errors.md): The errors that Yarn Spinner can emit.
- [Scripting Fundamentals](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals.md): Get started with Yarn Spinner Scripting by working through the fundamentals in detail.
- [Nodes and Lines](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/lines-nodes-and-options.md): Learn about nodes and lines in Yarn Spinner scripts.
- [Options](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/options.md): Learn to use options, which allow your players to choose lines of dialogue.
- [Jump Command](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/jumps.md): Learn to use the jump command to move the narrative between nodes.
- [Detour Command](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/detour.md): Learn about detour and return, which let you temporarily move to another node, then return.
- [Variables](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/logic-and-variables.md): Learn about storing data using variables in Yarn Spinner Scripts.
- [Flow Control](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/flow-control.md): Learn how to use logic and flow control in your Yarn Spinner Scripts.
- [Once](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/once.md): Learn about once statements, which let you specify content that only runs once.
- [Smart Variables](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/smart-variables.md): Learn about using smart variables that determine their value at run-time.
- [Enums](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/enums.md): Learn about creating enums, which allow you to create variables that are constrained to a specific set of values.
- [Commands](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/commands.md): Learn about using Commands in Yarn Spinner.
- [Functions](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/functions.md): Learn about Yarn Spinner's built-in functions.
- [Line Groups](https://docs.yarnspinner.dev/write-yarn-scripts/scripting-fundamentals/line-groups.md): Learn about using line groups, which allow Yarn Spinner to choose which content to run, depending on conditions.
- [Advanced Scripting](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting.md): Dive into the Advanced features of Yarn Spinner Scripting.
- [Node Groups](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/node-groups.md): Learn about using node groups, which allow Yarn Spinner to choose which content to run, depending on conditions.
- [Storylets and Saliency Primer](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/storylets-and-saliency-a-primer.md): Learn the principles behind our storylets and saliency features.
- [Saliency](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/saliency.md): Learn about saliency and saliency strategies, which let you control how line groups and node groups select which content to run.
- [Tags and Metadata](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/tags-metadata.md): Learn about tags and metadata, for adding additional context to lines in Yarn Spinner Scripts
- [Markup](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/markup.md): Markup lets you add attributes to text that is delivered in lines.
- [Shadow Lines](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/shadow-lines.md): Learn about reusing the same line in multiple places, using shadow lines.


---

# 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.yarnspinner.dev/write-yarn-scripts.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.
