Releases: YarnSpinnerTool/YarnSpinner-Godot
v0.3.22 - more bug fixes
[0.3.22] 2026-05-25
- Fix new DialoguePresenterBase.OnNodeEnter/OnNodeExit not being called (Fix #126)
- Fix "Custom typewriter doesn't get markup handlers correctly" (Fix #125)
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.21 - Bug fixes
[0.3.21] 2026-05-18
- Fix invalid **.cs glob breaking incremental builds by @spirifoxy
- Fix issue #122 where line providers automatically created by the DialogueRunner threw exceptions due to setting the YarnProject after adding to the tree
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.20 - YarnSpinner libraries v3.2.0 , YSLS JSON generation, new Typewriter API
[0.3.20] 2026-05-15
- Upgrade YarnSpinner base libraries to 3.2.0. For details, see https://github.com/YarnSpinnerTool/YarnSpinner/releases/tag/v3.2.0
- Update the source generator to output
.ysls.jsonfiles, used to integrate with other YarnSpinner tools like the VS Code extension. Updated diagnostics around command registration are also provided.- To disable generation of the YSLS file, add the define symbol . Example in your
.csprojfile:<DefineConstants>$(DefineConstants);YARN_SOURCE_GENERATION_DISABLE_YSLS</DefineConstants> - You can now also disable source generation entirely if desired with the symbol
YARN_SOURCE_GENERATION_DISABLE_ALL. This will prevent you from using the[YarnCommand]and[YarnFunction]attributes and require manual command and function registration to each dialogue runner.
- To disable generation of the YSLS file, add the define symbol . Example in your
- Work around Godot issue where exported C# variables can reset to their initial value: remove initial value from DialogueRunner.dialoguePresenters
- Register
CustomMarkerandBasicMarkeras custom types for better editor integration (#119) - Fix a bug where the
DialogueRunner.onDialogueCompletesignal was emitted twice when dialogue ends. (fix #120) - Add dialogueRunner.allowOptionFallthrough which allows dialogue to proceed when no dialogue options were chosen https://yarnspinner.dev/blog/yarn-spinner-3-1-release/#dialogue-option-fallthrough
⚠️ Breaking change: The API for returning diagnostics from ReplacementMarkupHandler implementations has changed. ReferencePaletteMarkerProcessorfor an example of the updates.⚠️ Breaking change: Add redesigned IAsyncTypewriter functionality for typewriter animations. BasicTypewriter is removed. New types of typewriters are available out of the box: Letter (similar to the prior example BasicTypewriter functionality), Word, and Instant.- Dialogue Presenters now have optional OnNodeEnter and OnNodeExit methods that can be overridden to respond to changes in the running node.
⚠️ Breaking change: RemoveDialogueViewBaseandGDScriptPresenterAdapter, which have been deprecated in favor of DialoguePresenterBase / views implemented directly in GDScript for a while now.- LocalizedLine now has a Source property that tells you where the line came from (typically a DialogueRunner instance). https://yarnspinner.dev/blog/yarn-spinner-3-1-release/#lines-know-where-they-came-from
- Fix #121 - Logic for showCharacterNameInLineView was inaccurate versus its comments
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.12 - GDScript Presenter enhancements, Localization inspector fix
[0.3.12] 2025-12-21
- Provide typed GDScript classes for LocalizedLine and MarkupParseResult. Additional GDScript support for Presenters #111 and #113 by @KXI-System
- Fix an issue where a CSV path would be applied to the wrong locale in the YarnProject inspector (#112)
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.11 - Async dialogue start / stop + bug fixes
[0.3.11] 2025-12-01
- Port the solution to this issue, making StartDialogue and Stop on the DialogueRunner async methods.
- Add ChangeDialogue(string nodeName) method to the dialogue runner to allow stopping the dialogue,
- Since making StartDialogue, Stop, and ChangeDialogue async prevents those methods from being exposed to GDScript, add StartDialogueForget, StopForget, and ChangeDialogueForget to the DialogueRunner to allow these functions to still be used from GDScript
- Remove default empty values from CustomMarkers and BasicMarkers on MarkupPalette to avoid a Godot bug where exported values are reset.
- Fix an issue in LinePresenterButtonHandler where the continueButton's Pressed handler was repeatedly re-connected for each line of dialogue.
- Complete tweens in Effects.cs when dialogue animations are skipped, by @fmoo
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.10 - MarkupPalette Bug Fix
[0.3.10] 2025-09-17
- Improve DialogueRunner initialization by moving it back into _EnterTree, but prevent it from running multiple times.
- Update sample project to Godot 4.5.
- Fix an issue where BasicMarkers in a MarkupPalette did not render correctly if they produced more than one BBCode tag (e.g. color, underline, and bold all in one marker).
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.9
[0.3.9] 2025-09-13
- Revert change to DialogueRunner initialization from 0.3.8.
Hotfix for 0.3.8 which had these changes:
[0.3.8] 2025-09-13
- Add functionality to log any yarn project compilation errors at runtime, to make them more noticeable to users. To turn this off, uncheck Print Project Errors in your Dialogue Runner inspector.
- Fix the behavior of OptionsPresenter.showUnavailableOptions. With this set to true, unavailable options will now appear and be disabled.
- Reorder some initialization logic in TextLineProvider and DialogueRunner
- Clean up some unused code
- Restore automatically setting VisibleCharactersBehavior to Characters After Shaping in LinePresenter for better typewriter effect integration.
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.8
[0.3.8] 2025-09-13
- Add functionality to log any yarn project compilation errors at runtime, to make them more noticeable to users. To turn this off, uncheck Print Project Errors in your Dialogue Runner inspector.
- Fix the behavior of OptionsPresenter.showUnavailableOptions. With this set to true, unavailable options will now appear and be disabled.
- Reorder some initialization logic in TextLineProvider and DialogueRunner
- Clean up some unused code
- Restore automatically setting VisibleCharactersBehavior to Characters After Shaping in LinePresenter for better typewriter effect integration.
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.7 - Markup sample update
[0.3.7] 2025-08-20
- Remove unused field YarnProjectEditorUtility.searchAllAssembliesForActions
- Update Space sample to have a "Return to Samples" button
- Update Markup sample to demonstrate custom replacement markup and custom action markup (playing a sound and animation) as certain text in a line is revealed.
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.
v0.3.6
[0.3.6] 2025-08-02
- Improve error messages when
buttonis not assigned on OptionItem - Improve error message when the Godot node passed to a yarn command is not of the correct type
- Update System.Text.Json to
8.0.6 - Update Google.Protobuf to
3.31.1 - Update CsvHelper to 12.3.2
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godotchannel). -
To report a bug, file an issue on GitHub.
-
If you would like to support the development of this plugin, other open source contributions, and video games by the maintainer,
consider donating at ko-fi.com/decrepitgames.