Skip to main content

Installation

This guide walks you through installing the StoryFlow plugin in your Unreal Engine 5 project.

Requirements

Before You Begin

  • Unreal Engine 5.3 or later — The plugin uses APIs introduced in UE 5.3. Earlier versions are not supported.
  • A StoryFlow Editor project exported as JSON — Use File > Export > JSON in the StoryFlow Editor to produce the files the plugin expects. See the JSON Export documentation for details on the export format.

The plugin supports all platforms that Unreal Engine 5.3+ targets. No additional third-party libraries or SDKs are required.

Install from Source

Clone or copy the StoryFlowPlugin plugin folder into your project's Plugins/ directory. If the directory does not exist yet, create it at the root of your Unreal project alongside the .uproject file.

Code
YourProject/
├── Config/
├── Content/
├── Plugins/
│   └── StoryFlowPlugin/          ← place the plugin here
│       ├── StoryFlowPlugin.uplugin
│       ├── Source/
│       │   ├── StoryFlowRuntime/
│       │   └── StoryFlowEditor/
│       └── Resources/
├── Source/
└── YourProject.uproject

Plugin Structure

The plugin is organized into two modules, each serving a distinct role:

  • StoryFlowRuntime — The gameplay module that ships with your packaged game. Contains the UStoryFlowComponent, the UStoryFlowSubsystem, data assets, and the full node execution runtime. This module is loaded in all targets (editor, client, server, standalone).
  • StoryFlowEditor — An editor-only module used during development. Handles importing StoryFlow JSON projects, resolving media assets (images, audio), and providing the Live Sync WebSocket connection to the StoryFlow Editor. This module is never included in packaged builds.

Keep It in the Plugins Folder

Placing the plugin in your project's Plugins/ directory (rather than the engine's plugin folder) ensures it travels with your project and avoids version conflicts across different engine installations.

Enable the Plugin

After copying the plugin into your project, you need to enable it. You can do this through the Unreal Editor UI or by editing your .uproject file directly.

Enable via Editor

  1. Open your project in Unreal Editor.
  2. Go to Edit > Plugins.
  3. Search for StoryFlow in the plugin browser.
  4. Check the Enabled checkbox.
  5. Restart the editor when prompted.

Enable via .uproject File

Alternatively, add the plugin entry directly to the Plugins array in your .uproject file:

JSON
{
  "FileVersion": 3,
  "EngineAssociation": "5.3",
  "Plugins": [
    {
      "Name": "StoryFlowPlugin",
      "Enabled": true
    }
  ]
}

After saving the file, regenerate your project files (right-click the .uproject file and select Generate Visual Studio project files, or use the equivalent for your IDE) and rebuild.

Module Dependencies

If you need to reference StoryFlow types in your own C++ modules, add the appropriate module as a dependency in your module's .Build.cs file. Below are the dependencies each StoryFlow module relies on.

StoryFlowRuntime Module

The runtime module depends on core engine modules. Add "StoryFlowRuntime" to your PublicDependencyModuleNames to access the component, subsystem, and data types from your own gameplay code.

C++
// StoryFlowRuntime dependencies
PublicDependencyModuleNames.AddRange(new string[]
{
    "Core",
    "CoreUObject",
    "Engine",
    "UMG",
    "Slate",
    "SlateCore",
    "Json",
    "JsonUtilities"
});

StoryFlowEditor Module

The editor module carries additional dependencies for asset importing, editor utilities, and the WebSocket-based Live Sync feature. You typically do not need to depend on this module directly.

C++
// StoryFlowEditor dependencies (in addition to StoryFlowRuntime deps)
PrivateDependencyModuleNames.AddRange(new string[]
{
    "UnrealEd",
    "AssetTools",
    "EditorSubsystem",
    "WebSockets",
    "EditorScriptingUtilities",
    "ToolMenus",
    "Projects"
});

Runtime vs Editor Dependencies

Only add "StoryFlowRuntime" to your gameplay modules. The StoryFlowEditor module is editor-only and should never be referenced from runtime code, as it will cause packaging to fail.

Verify Installation

Once the plugin is enabled and the editor has restarted, verify that everything is working correctly:

  1. Open the Output Log (Window > Developer Tools > Output Log).
  2. Look for the StoryFlow subsystem initialization message on startup. The UStoryFlowSubsystem automatically attempts to load a project asset from the default content path.
  3. If you have not imported a project yet, you will see a log message indicating that no project was found at the default path. This is expected and confirms the subsystem is running.

Default Content Path

The UStoryFlowSubsystem auto-loads from /Game/StoryFlow/SF_Project on startup. This is the default location where the importer places your project asset. You can change this path in the subsystem settings, but using the default keeps your setup consistent with the documentation and examples.

To fully verify the plugin:

  • Check the Plugin list: Open Edit > Plugins and confirm StoryFlow appears and is enabled.
  • Check Blueprint access: In a Blueprint graph, search for StoryFlow — you should see the UStoryFlowComponent available as an Add Component option and StoryFlow-related nodes in the action menu.
  • Check C++ access: If you are working in C++, verify that #include "StoryFlowComponent.h" compiles without errors after adding "StoryFlowRuntime" to your module dependencies.

Ready to Go

Plugin installed and verified? Head over to the Quick Start guide to import your first StoryFlow project and get dialogue running in your game.

Need Help?

Join our Discord community to ask questions, share your projects, report bugs, and get support from the team and other users.

Join Discord