Skip to main content

Godot Branching Narrative & Dialogue Plugin

A free, open-source dialogue plugin for Godot 4 - powered by StoryFlow Editor.

Import branching dialogues directly into your Godot projects. Pure GDScript plugin with typed signals for dialogue display, player choices, characters, audio, variables, save/load, and real-time sync with the editor. Perfect for RPGs, adventure games, visual novels, and any project that needs interactive narratives.

Download Plugin Documentation GitHub

Latest Version: 1.2.3 · Updated August 10, 2026

Features

  • Native GDScript plugin - no C# or external dependencies required
  • Import and run StoryFlow Editor projects directly
  • Every node type supported including branching, loops, and arrays
  • Character system with portraits, names, and per-character variables
  • Built-in audio playback with looping and volume control
  • Save and load system with slot-based JSON persistence
  • Live Sync with the StoryFlow Editor via WebSocket
  • Default dialogue UI scene included and fully customizable
  • Free and open-source plugin

Example Projects

You can download, play and inspect the examples inside Godot, but editing the story requires the StoryFlow Editor app.

The Beast of Millhaven
StoryFlow Editor +

The Beast of Millhaven

A complete visual novel with RPG mechanics running on this plugin: character creator, merchant shop with drag-and-drop inventory, and a cave troll battle. The story, combat math and prices were authored visually in StoryFlow Editor and ship pre-synced - the interface is plain GDScript reacting to the plugin's signals and dialogue tags. Runs out of the box in Godot 4.3+.

To see how it's made, open the bundled example project in StoryFlow Editor and connect to the running game over Live Sync - edit a line, watch it change in play.

More example projects coming soon

Building a branching narrative in Godot

Godot gives you signals, resources and a clean scene tree, which makes it tempting to hand-roll a dialogue system. That usually holds up until the story needs memory. Once a conversation depends on choices made in another scene entirely, the match statements multiply and the dialogue data ends up tangled with the presentation code.

The StoryFlow plugin keeps those separate. The branching narrative is authored visually in StoryFlow Editor and exported as a story file. The GDScript runtime plays it back and emits typed signals as the story advances, so your UI nodes react without owning any branching logic.

Three steps to your first conversation

  1. Install the plugin. Copy it into addons/ and enable it in Project Settings. Godot 4.3 or later, no C# or external dependencies required.
  2. Import your story. Export from StoryFlow Editor and add the file to your project.
  3. Call start_dialogue(). On a StoryFlow component from any node. The included dialogue UI scene renders it, and you can restyle or replace it entirely.

What the runtime handles

Characters with portraits and per-character variables, player choices, typed variables with conditional branching, audio playback with looping and volume, and slot-based JSON save and load. Every StoryFlow node type is supported, including loops and arrays.

Everything is exposed as typed signals, so any Control node can listen to dialogue state without a hard dependency on the plugin's UI. Because it is pure GDScript, it works in both GDScript and C# projects and adds no build step. Live Sync over WebSocket pushes edits from the editor into the running game, so you can iterate on a scene without restarting it.

If your conversation code has already outgrown hand-written trees, the branching dialogue architectures guide covers the five patterns that scale. For the wider category, see the branching narrative tool overview.

Frequently Asked Questions

Install the StoryFlow plugin into your Godot 4 project's addons/ folder, import a story file exported from StoryFlow Editor and call start_dialogue() on a StoryFlow component from any node. The plugin resolves the branching logic, character display, choices and variables for you and emits typed signals as the story advances, so the branching narrative runs without hand-written match statements or nested conditionals in GDScript. If your existing conversation code has already grown unmanageable, see how to fix a branching dialogue nightmare for the architectures that scale.

Yes! The Godot plugin is completely free and open-source. You can use it in any project, including commercial games, without paying any licensing fees for the plugin itself.

Yes, the plugin is a runtime that plays dialogue files created with StoryFlow Editor. You'll need StoryFlow Editor to create and edit your branching narratives, then export them for use with the Godot plugin. The plugin runs the branching logic for you, so you avoid hand-coding conversation trees in GDScript - see why hand-written dialogue trees stop scaling for the full picture. Check our pricing page for editor options.

Follow the Installation guide to set up the plugin, then work through the Quick Start tutorial to get your first dialogue running in minutes.

The plugin requires Godot 4.3 or later. It uses GDScript features introduced in Godot 4.3+ and is not compatible with earlier versions.

Absolutely! The plugin is released under a permissive open-source license. You're free to use it in commercial projects, modify the source code, and distribute games that include it.

Yes, the plugin includes a default dialogue UI scene that you can restyle, extend, or replace entirely. You can also build your own custom UI from scratch - the component broadcasts all dialogue state via signals that any Control node can listen to.

Most Godot dialogue plugins ask you to write branching logic in a custom script format or wire conversation trees together inside the Godot editor itself. StoryFlow splits the two jobs: you author the branching narrative visually in StoryFlow Editor, then the Godot plugin plays it back. That means writers can edit the story without opening Godot, and the same story file also runs in Unity and Unreal Engine without a rewrite. Live Sync pushes edits into a running game, so you can iterate on dialogue without restarting the scene.

Join our Discord community where you can ask questions, report bugs, and connect with other developers.

The current plugin is written in pure GDScript, which works seamlessly with both GDScript and C# projects. A dedicated C# version of the plugin is something we may consider in the future based on community demand.

Yes, we're committed to maintaining and improving the plugin alongside the StoryFlow Editor. As an open-source project, the community can also contribute features and improvements.

Stay Updated

Get notified about plugin updates, new features, and tips for integrating StoryFlow into your projects.

We respect your privacy. Unsubscribe at any time.