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 with dialogue, characters, Data Assets and translations, then manage variables, save progress and sync edits live. Built for RPGs and adventure games.
Features
- Full Blueprint and C++ API for dialogue control
- Import and run StoryFlow Editor projects directly
- Story graph support for branching, loops, arrays and variables
- Character system with portraits, names, and per-character variables
- Data Assets and translated dialogue imported with the project
- Audio-driven lip sync for morph target faces and MetaHumans
- 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
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
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. Like the Godot version, it will include a project you can open in StoryFlow Editor. In Unreal, stop Play In Editor before syncing changes, then start play again to test them.
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 Editor plugin splits those two jobs apart. The branching narrative is authored in StoryFlow Editor as a node graph and imported into Unreal Engine with the project export. The plugin resolves branching at runtime, so your Blueprint deals with presentation rather than logic.
Three steps to your first conversation
- Install the plugin. Drop it into your project's
Pluginsfolder and enable it. Builds are available for Unreal Engine 5.3 through 5.8. - Import your project. Export JSON from StoryFlow Editor and select the build folder in Unreal Engine, or connect with Live Sync.
- 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
The runtime handles story graph nodes for choices, conditions, loops and arrays. It also imports characters, Data Assets and translations, plays audio and exposes slot-based save and load. Its lip sync components drive morph targets on character face meshes and the facial rig of a MetaHuman.
Live Sync updates the imported project over WebSocket. Stop Play In Editor, save your changes in StoryFlow Editor and sync, then start play again to test them. Unreal rejects sync requests while Play In Editor is active.
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 Editor Plugin into your Unreal Engine 5 project, import a JSON project export from StoryFlow Editor and call StartDialogue() on a UStoryFlowComponent 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++.
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 for projects created with StoryFlow Editor. Create your narrative in the editor, then import its JSON project export or use Live Sync. 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 exposes dialogue controls, events and data types to Blueprints. You can build a dialogue UI without writing C++. C++ developers can use the runtime API for further 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 Editor is a visual node editor: you build the branching narrative as a graph and export the project for the plugin to play. Yarn suits teams who prefer writing dialogue in a text editor and are comfortable with its syntax. StoryFlow Editor 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 project can be exported for Unreal, Unity and Godot. For Yarn Spinner's current packages and license terms, see its licensing guide. The StoryFlow Editor plugin is free and open-source. 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.