What do Yarn Spinner v3.2.1 compiled programs and string tables preserve about line IDs, localisation and variables, and which line IDs are stable across recompiles?
Yarn Spinner v3.2.1 compiles dialogue to a protobuf Program whose line and option instructions carry only a line ID and substitution count; text lives in a StringTable keyed by line ID with node, file, line number, metadata and shadow-line ID. Implicit IDs are stable only while the source file is unchanged, so localised projects should add #line: tags. Command text is embedded in the program rather than in the StringTable.
Yarn Spinner v3.2.1 compiles dialogue to a protobuf Program whose line and option instructions carry only a line ID and substitution count; text lives in a StringTable keyed by line ID with node, file, line number, metadata and shadow-line ID. Implicit IDs are stable only while the source file is unchanged, so localised projects should add #line: tags. Command text is embedded in the program rather than in the StringTable.
Curator qualifications: Code and pages read 2026-10-22; nothing compiled, exported or imported.
Limitations: Code and pages read 2026-10-22; nothing compiled, exported or imported.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner/yarn_spinner.proto",
"note": "YarnSpinner/yarn_spinner.proto at 3a5b7343 (raw); YarnSpinner.Compiler/StringInfo.cs at 3a5b7343 (raw); YarnSpinner.Compiler/CompilationResult.cs at 3a5b7343 (raw); YarnSpinner.Compiler/Compiler.cs at 3a5b7343 (raw), L1351-1383, L1426; Documentation/Yarn-Spec.md at 3a5b7343 (raw), L254"
},
{
"url": "https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner.Compiler/StringInfo.cs",
"note": "YarnSpinner/yarn_spinner.proto at 3a5b7343 (raw); YarnSpinner.Compiler/StringInfo.cs at 3a5b7343 (raw); YarnSpinner.Compiler/CompilationResult.cs at 3a5b7343 (raw); YarnSpinner.Compiler/Compiler.cs at 3a5b7343 (raw), L1351-1383, L1426; Documentation/Yarn-Spec.md at 3a5b7343 (raw), L254"
},
{
"url": "https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner.Compiler/CompilationResult.cs",
"note": "YarnSpinner/yarn_spinner.proto at 3a5b7343 (raw); YarnSpinner.Compiler/StringInfo.cs at 3a5b7343 (raw); YarnSpinner.Compiler/CompilationResult.cs at 3a5b7343 (raw); YarnSpinner.Compiler/Compiler.cs at 3a5b7343 (raw), L1351-1383, L1426; Documentation/Yarn-Spec.md at 3a5b7343 (raw), L254"
},
{
"url": "https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner.Compiler/Compiler.cs",
"note": "YarnSpinner/yarn_spinner.proto at 3a5b7343 (raw); YarnSpinner.Compiler/StringInfo.cs at 3a5b7343 (raw); YarnSpinner.Compiler/CompilationResult.cs at 3a5b7343 (raw); YarnSpinner.Compiler/Compiler.cs at 3a5b7343 (raw), L1351-1383, L1426; Documentation/Yarn-Spec.md at 3a5b7343 (raw), L254"
},
{
"url": "https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/Documentation/Yarn-Spec.md",
"note": "YarnSpinner/yarn_spinner.proto at 3a5b7343 (raw); YarnSpinner.Compiler/StringInfo.cs at 3a5b7343 (raw); YarnSpinner.Compiler/CompilationResult.cs at 3a5b7343 (raw); YarnSpinner.Compiler/Compiler.cs at 3a5b7343 (raw), L1351-1383, L1426; Documentation/Yarn-Spec.md at 3a5b7343 (raw), L254"
}
]
}Evidence claims
- [sourced_fact] Yarn Spinner v3.2.1 compiles dialogue to a protobuf Program whose line and option instructions carry only a line ID and substitution count; text lives in a StringTable keyed by line ID with node, file, line number, metadata and shadow-line ID. Implicit IDs are stable only while the source file is unchanged, so localised projects should add #line: tags. Command text is embedded in the program rather than in the StringTable. · locator: YarnSpinner/yarn_spinner.proto at 3a5b7343 (raw); YarnSpinner.Compiler/StringInfo.cs at 3a5b7343 (raw); YarnSpinner.Compiler/CompilationResult.cs at 3a5b7343 (raw); YarnSpinner.Compiler/Compiler.cs at 3a5b7343 (raw), L1351-1383, L1426; Documentation/Yarn-Spec.md at 3a5b7343 (raw), L254 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/Documentation/Yarn-Spec.md
- cites → https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner.Compiler/CompilationResult.cs
- cites → https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner.Compiler/Compiler.cs
- cites → https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner.Compiler/StringInfo.cs
- cites → https://github.com/YarnSpinnerTool/YarnSpinner/blob/3a5b7343f715e4e9a3705fa4224e7fa510b92f1c/YarnSpinner/yarn_spinner.proto