# Writing Yarn Scripts

- [First Steps with Scripting](/write-yarn-scripts/start-here.md): Welcome to Yarn Spinner! On this page you'll learn how to get started.
- [Yarn Spinner Editor](/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](/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](/write-yarn-scripts/yarn-spinner-editor/yarn-spinner-project-files.md): Learn about Yarn Spinner Project files.
- [Writing Together](/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](/write-yarn-scripts/yarn-spinner-editor/errors.md): The errors that Yarn Spinner can emit.
- [Scripting Fundamentals](/write-yarn-scripts/scripting-fundamentals.md): Get started with Yarn Spinner Scripting by working through the fundamentals in detail.
- [Nodes and Lines](/write-yarn-scripts/scripting-fundamentals/lines-nodes-and-options.md): Learn about nodes and lines in Yarn Spinner scripts.
- [Options](/write-yarn-scripts/scripting-fundamentals/options.md): Learn to use options, which allow your players to choose lines of dialogue.
- [Jump Command](/write-yarn-scripts/scripting-fundamentals/jumps.md): Learn to use the jump command to move the narrative between nodes.
- [Detour Command](/write-yarn-scripts/scripting-fundamentals/detour.md): Learn about detour and return, which let you temporarily move to another node, then return.
- [Variables](/write-yarn-scripts/scripting-fundamentals/logic-and-variables.md): Learn about storing data using variables in Yarn Spinner Scripts.
- [Flow Control](/write-yarn-scripts/scripting-fundamentals/flow-control.md): Learn how to use logic and flow control in your Yarn Spinner Scripts.
- [Once](/write-yarn-scripts/scripting-fundamentals/once.md): Learn about once statements, which let you specify content that only runs once.
- [Smart Variables](/write-yarn-scripts/scripting-fundamentals/smart-variables.md): Learn about using smart variables that determine their value at run-time.
- [Enums](/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](/write-yarn-scripts/scripting-fundamentals/commands.md): Learn about using Commands in Yarn Spinner.
- [Functions](/write-yarn-scripts/scripting-fundamentals/functions.md): Learn about Yarn Spinner's built-in functions.
- [Line Groups](/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](/write-yarn-scripts/advanced-scripting.md): Dive into the Advanced features of Yarn Spinner Scripting.
- [Node Groups](/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](/write-yarn-scripts/advanced-scripting/storylets-and-saliency-a-primer.md): Learn the principles behind our storylets and saliency features.
- [Saliency](/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](/write-yarn-scripts/advanced-scripting/tags-metadata.md): Learn about tags and metadata, for adding additional context to lines in Yarn Spinner Scripts
- [Markup](/write-yarn-scripts/advanced-scripting/markup.md): Markup lets you add attributes to text that is delivered in lines.
- [Shadow Lines](/write-yarn-scripts/advanced-scripting/shadow-lines.md): Learn about reusing the same line in multiple places, using shadow lines.
