Skip to main content

Unreal Engine Branching Narrative & Dialogue Plugin

A free open-source plugin for branching narrative and dialogue in Unreal Engine 5, powered by StoryFlow Editor.

Build branching narratives in Unreal Engine 5 without writing if/else chains in Blueprint or C++. Import StoryFlow Editor projects, play dialogue with characters and choices, manage variables, save and load progress and sync edits live from the editor. Built for RPGs, adventure games and any project that needs an interactive narrative.

Features

  • Full Blueprint and C++ API for dialogue control
  • 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 persistence
  • Live Sync with the StoryFlow Editor via WebSocket
  • Free and open-source plugin
Unreal Engine logo

Example Projects

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

The Beast of Millhaven
StoryFlow Editor + Unreal Engine

The Beast of Millhaven

A complete visual novel with RPG mechanics: character creator, merchant shop with drag-and-drop inventory, and a cave troll battle. The story, combat math and prices are authored visually in StoryFlow Editor and ship pre-synced - the interface is built with Blueprints reacting to the plugin's events and dialogue tags.

The Unreal Engine recreation is in the works. It will ship the same way as the Godot version: 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.

Building a branching narrative in Unreal Engine

Most Unreal projects start their dialogue as a Blueprint with a few branch nodes. It works for a conversation or two. The trouble starts when a line has to depend on something the player did an hour ago, because that state has to live somewhere, and Blueprint has no natural home for it. The graph turns into flow control, and the writing gets buried inside it.

The StoryFlow plugin splits those two jobs apart. The branching narrative is authored in StoryFlow Editor as a node graph and saved as a story file. The plugin loads that file at runtime and resolves the branching for you, so your Blueprint deals with presentation rather than logic.

Three steps to your first conversation

  1. Install the plugin. Drop it into your project's Plugins folder and enable it. Builds are available for Unreal Engine 5.3 through 5.8.
  2. Import your story. Export from StoryFlow Editor and add the file to your content folder.
  3. Call StartDialogue(). On a StoryFlow component from any Blueprint or C++ class. The plugin broadcasts delegates as dialogue advances, so your widget just listens and draws.

What the runtime handles

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

Live Sync is the part most teams notice. With the editor connected over WebSocket, a line you change in StoryFlow updates in the running game without a recompile or a restart, which makes tuning pacing in context practical rather than theoretical.

If your current dialogue code has already grown past the point of comfort, the branching dialogue architectures guide covers the five patterns that scale and how to refactor toward them. For the wider category, see the branching narrative tool overview.

Frequently Asked Questions

Drop the StoryFlow Plugin into your Unreal Engine 5 project, import a story file exported from StoryFlow Editor and call StartDialogue() on a StoryFlow component from any Blueprint or C++ class. The plugin handles branching logic, character display, choices and variables natively, so the branching narrative shows up in your game without writing if/else flow control in Blueprint or C++. If your existing dialogue code has already turned into a tangle, see how to fix a branching dialogue nightmare for the architectures that scale.

Yes! The Unreal Engine 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 plugin. 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 under 10 minutes.

The plugin is fully Blueprint-friendly - every function, delegate, and data type is exposed to Blueprints. You can build your entire dialogue UI without writing any C++. C++ developers also have full access to the API for advanced customization.

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.

Yarn Spinner is a scripting language: you write branching dialogue as text in .yarn files and the runtime interprets it. StoryFlow is a visual node editor: you build the branching narrative as a graph and export it for the plugin to play. Yarn suits teams who prefer writing dialogue in a text editor and are comfortable with its syntax. StoryFlow suits teams where a writer or narrative designer needs to see and edit the branch structure without learning a scripting language, and where the same story has to run in Unreal, Unity and Godot from one source file. On cost, Yarn Spinner is free and open-source end to end; the StoryFlow plugin is free and open-source too, but the editor that authors the story is a one-time $30 purchase.

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

Yes, the plugin provides an optional base widget class you can extend in Blueprint for your dialogue UI. You can also skip it entirely and build your own custom interface - the runtime broadcasts all dialogue state via delegates.

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.