PulseQuest
A data-driven quest system for Unreal Engine, built on StateTree.
What is PulseQuest?
PulseQuest is an Unreal Engine plugin for quests and objectives. The logic of a quest is a StateTree; the runtime runs quests on the server, replicates their data and objectives to the owning client (or to all players of a shared quest), saves and loads them and exposes everything to UI through MVVM view models.
Features at a Glance
| Feature | Description |
|---|---|
| StateTree quests | A quest is a UPulseQuest data asset with a StateTree (schema Pulse Quest) |
| Objectives | UPulseQuestObjective objects with display text, replicated progress, markers, gameplay tasks and net modes; ready-made Gameplay Event, Reach Location, Timer and Wait For Input objectives |
| Gameplay events | Gameplay reports events once (UPulseQuestEventSubsystem), objectives and StateTree tasks count them |
| Story flags | Replicated and saved story decisions, shared by quests, director, requirements and dialogs |
| Requirements & history | Inline start requirements on quests, replicated and saved quest history for story branches, repeatable quests and one-time tutorials |
| Quest director | Optional server side story controller (UPulseQuestDirector, UPulseQuestStateTreeDirector) that starts and ends quests |
| Multiplayer | Per player quest manager (owner only replication) and APulseSharedQuestHost for party quests; clients follow resets and restarts reliably |
| Save/Load | FPulseQuestSaveGame with load priorities and class-mismatch handling, async Blueprint nodes |
| PulseSave bridge | Optional PulseQuestSaveBridge plugin to save quest managers with PulseSave |
| Dialog bridge | Optional PulseDialogQuestBridge plugin: dialogs and cutscenes in quests (PulseDialog) |
| MVVM UI | View models for the quest manager, its data, quests, objectives and the tracked quest (module PulseQuestMVVM) |
| Blueprint friendly | Quest manager functions, objective events and async nodes are Blueprint exposed |
| Data validation | Quests (unique tags, schema), quest sets, quest managers, objectives and quest StateTrees (objective save ids) validate in the editor |
| Diagnostics | stat Quest stat group and the LogPulseQuest log category (also Visual Logger) |
At a glance
| Step | In this plugin |
|---|---|
| Set Up | 2 required (Add the Pulse Quest Manager component to the Player Controller; Give the quest managers a quest set), 3 optional |
| Create | Quest, Quest Set, Quest StateTree, Quest Objective, Quest Director, Quest Director StateTree; starter content |
| Test | Example map LV_PulseQuest_Example, cheat PulseQuestGrant |
| Check | Pulse window, Check All, -run=PulseCheck |
Documentation Sections
- Getting Started – Set Up, Create, Test, Check
- Architecture – Modules, runtime objects, event queue
- Quest Manager – Component, shared host, parameters, API
- Quests & Quest Sets – Data assets, flags, quest data, quest instances
- Objectives – Lifecycle, saving, net modes, gameplay tasks
- StateTree Integration – Schemas, context data, tasks, conditions
- Gameplay Events & Story Flags – Events for quests, story decisions, tracked quest
- Quest Director – Story director, StateTree director, load behavior
- Save & Load – Save game format, save interface, async nodes
- PulseSave Integration – Saving quest managers with PulseSave
- Multiplayer – Replication, authority, shared quests
- MVVM & UI – View models and bindings
- Settings – Project settings
- Console – Cheats, console variables, stats and log categories
- API Reference – Class and function overview
Blueprint examples are shown as numbered node steps until a rendered graph is added (see docs/_data/blueprints.yml).
Supported Platforms
Unreal Engine 5.8 or newer.
| Platform | Status |
|---|---|
| Win64 | Supported |
| Mac, Linux | Enabled, not tested |
Dependencies
PulseQuest enables these Unreal Engine plugins: StateTree, GameplayStateTree, ModelViewViewModel, EnhancedInput and DataValidation. It also uses the GameplayTags, GameplayTasks and DeveloperSettings modules.