Releases: YarnSpinnerTool/YarnSpinner-Godot
v0.3.0-beta2
Welcoming testing of this updated version of the plugin.
⚠ Although no destructive bugs have been discovered in this beta, I highly recommend backing up / committing to version control any existing projects before testing this upgrade.
Let me know any feedback here or in the discord.
Changes
- All changes from beta 1: https://github.com/YarnSpinnerTool/YarnSpinner-Godot/releases/tag/v0.3.0-beta
- Eliminate the need to check in DLL files with the plugin in favor of using Nuget, now that the YarnSpinner DLL files function properly with this plugin. You can delete any .dll files under addons/YarnSpinner-Godot that you might have from a previous release
- Restructure the AsyncOptionItem script (replaces OptionView from v0.2). The node that the AsyncOptionItem script is attached to can now be a Control rather than needing to be a button. The button component that will handle option selection can be a different node if desired. Assign the button in the AsyncOptionItem's inspector.
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godot
channel). -
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.0 beta1
Welcoming testing of this updated version of the plugin.
⚠ Although no destructive bugs have been discovered in this beta, I highly recommend backing up / committing to version control any existing projects before testing this upgrade.
Let me know any feedback here or in the discord.
Changes
- Updated YarnSpinner DLLs to support version 3 of the Yarn Language, which supports many new features, similar to the feature set described for the Unity plugin here:
- https://www.yarnspinner.dev/blog/yarn-spinner-3-beta-1
- The samples have been updated to demonstrate these features, including enums, node groups, line groups, smart variables, shadow lines, generated variable storage code,
<<detour>>
and<<once>>
.
[YarnCommand
] and[YarnFunction]
have been updated to generate a class calledYarnSpinnerGodot.Generated.ActionRegistration
. This class will register all of your commands and functions without relying on reflection, which was the cause of some performance hiccups when starting a scene with a DialogueRunner in v0.2.* of the plugin- To enable new features for an existing .yarnproject, edit the .yarnproject file to change the projectFileVersion to 3.
- If you keep your .yarnproject at projectFileVersion 2, you will have to re-compile the scripts in your yarn project to work with this version of the plugin.
- Update views to be async Task based, like the Unity plugin version 3.
- The existing
DialogueViewBase
interface is deprecated in favor ofAsyncDialogueViewBased
. Updated example views are provided. - GDScript nodes that have methods that are the
snake_case
version of methods onAsyncDialogueViewBase
can be added directly inYarnProject.dialogueViews
without requiring GDScriptViewAdapter. Supported methods:on_dialogue_start_async() -> void
,on_dialogue_complete_async() -> void
,run_line_async(line: Dictionary) -> void
,run_options_async(options: Array, on_option_selected: Callable) -> void
. You can still useawait
statements in your GDScript view methods.AddCommandHandlerCallable
onDialogueRunner
has been re-tested to ensure that commands can still be registered from GDScript. Also, the GDScriptIntegration sample has been updated with these changes. - ⚠ Breaking change: LineProviderBehaviour has changed to require different methods and fields. If you have a custom line provider, please see the updated TextLineProvider as an * example of how to implement the updated class. Also notice that you must now set the yarn project on
TextLineProvider
instances, either via script or in the inspector. - ⚠ Breaking change: Use DialogueRunner.VariableStorage, not DialogueRunner.variableStorage, nor DialogueRunner.SetDialogueViews (removed) to get/set the variable storage associated with a DialogueRunner. Previously there were two properties with different case that were both publicly accessible.
- ⚠ Breaking change: MarkupPalette renamed ColourMarkers to FormatMarkers, supporting new functionality like bold, underline, italics, as a way to demonstrate the updated formatting
- ⚠ Breaking change: the field DialogueRunner.verboseLogging has been removed.
- New functionality on YarnProject - optionally generate a C# variable storage class which has getters and setters for each variable declared in your yarn scripts. You can control the class that the generated file inherits from, the namespace it will be in, and the name of the class and file.
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
-
Join the Yarn Spinner Discord (
#godot
channel). -
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.2.14
[0.2.14] 2024-11-02
- GDScript: Add GDScriptViewAdapter, a C# Script which allows you to write custom dialogue views in GDScript. See GDScriptViewAdapter.cs for more details.
- GDScript: Add new method AddCommandHandlerCallable to DialogueRunner, allowing commands to be registered from GDScript. GDScript command handlers that use asynchronous
await
functionality are also supported as blocking YarnSpinner commands, similar to usingasync Task
commands in C#. - Samples: A new sample has been added called GDScriptIntegration, which demonstrates making a simple custom view in GDScript, and using cross-language scripting to access methods on C# components such as the DialogueRunner and InMemoryVariableStorage
- Add new method to InMemoryVariableStorage:
public Variant GetVariantValue(string variableName)
. An example of a method that allows you to retrieve YarnSpinner story variables from GDScript. - Thanks to @dbaz for taking my old code from the gdscript_integration branch and making sure it compiles with the current version of the plugin
Full Changelog: v0.2.13...v0.2.14
See here for installation.
You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.
If you open the complete repository as a Godot project, you can try a variety of samples demonstrating code and end results of various features of YarnSpinner for Godot.
👩🚒 Getting Help
There are several places you can go to get help with Yarn Spinner.
- Join the Yarn Spinner Discord (
#godot
channel). - To report a bug, file an issue on GitHub.
Support Development
- 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.2.13
What's Changed
- Code cleanup by @valkyrienyanko in #69
- Potential breaking change: DispatchCommandToNode on DialogueRunner has been marked static. Users generally do not need to call this method directly, so it shouldn't affect most or possibly any projects.
Full Changelog: v0.2.12...v0.2.13
See here for installation. You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.
v0.2.12
[0.2.12] 2024-09-15
- Use file-scoped namespaces in all plugin scripts to reduce indentation, by @valkyrienyanko
See here for installation. You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.
v0.2.11
[0.2.11] 2024-09-13
- Fix an issue where the OptionsListView did not fade in properly and instead suddenly appeared at the end of the fade time. (Fix #62)
Effects.Fade
now uses a Godot Tween.- Grab focus of the first visible option in OptionsListView.cs, rather than the first option which may be hidden due to being unavailable.
See here for installation. You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.
v0.2.10
[0.2.10] 2024-07-11
- Update System.Text.Json to 8.0.4 based on CVE-2024-30105 GHSA-hh2w-p6rv-4g7w
- Fix references to
RoundedViewStylebox.tres
that were in the wrong case in resource files, which could cause an issue on case-sensitive platforms.
v0.2.9
[0.2.9] 2024-06-30
- Set LineView's MouseFilter to 'ignore' to avoid interfering with clicks.
- Fix an issue where 'use fade effect' would cause the ConvertBBCodeToHTML feature to stop working while the text was fading out.
- Set the LineView to Visible=False when marking its alpha as 0.
See here for installation. You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.
v0.2.8
[0.2.8] 2024-05-24
- Fix Yarn commands not supporting methods with optional arguments (by @spirifoxy)
- Update Visual Novel sample to make use of this fix
See here for installation. You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.
v0.2.7
[0.2.7] 2024-05-11
- Add an explicit dependency on System.Text.Json v8.0.1 to fix compiler warnings and incompatibility with DotNet SDK versions below 8. The symptom in 0.2.6 was failing to create a .yarnproject file from the editor.
See here for installation. You can clone the repo at this tag, or download the below zip and use the addons/ folder inside it to follow the setup instructions.