QuestSystem User Guide¶
🇬🇧 English | 🇺🇦 Українська
This is the full reference guide for the QuestSystem plugin — an event-driven, data-driven quest system for Unreal Engine 5.8 with first-class multiplayer support and zero-config integration. Designers author quests as Data Assets; gameplay code reports a handful of events; the plugin does the rest, including the network replication.
Quick Start¶
- Copy
Plugins/QuestSysteminto your project'sPlugins/folder. - Enable it: Edit > Plugins > QuestSystem.
- That's it — no code required yet.
UQuestWorldSubsystemautomatically attaches a quest manager to every player and to the game state.
Create your first quest:
- In the Content Browser: Add > Miscellaneous > Data Asset, pick Quest Objective Data. Set
ObjectiveType,TargetCount, andObjectiveIdentifier(e.g.KillTarget/3/"Bandit"). - Add another Data Asset, this time Quest Data. Give it a
QuestNameand add your objective toObjectives. - Add a Quest Giver Component to any Actor in your level and drop your quest into
AvailableQuests. - Add a Quest Interactor Component to your player pawn and bind an input to
TryInteract. - Press Play, walk up to the actor, interact — the quest starts. Report progress from your own gameplay code:
// e.g. in your damage-handling code, once an enemy dies:
UQuestBlueprintLibrary::NotifyKillEvent(PlayerState, "Bandit");
The objective updates, the quest completes, and GiveQuestRewards() fires — override it (in Blueprint or C++) to hand out your own rewards. The rest of this guide covers everything above in depth, plus multiplayer, save/load, the full Blueprint API, and C++ extension points.
Who should read what¶
- Designers authoring quest content: read 01, 03, and 05.
- Gameplay programmers wiring up events and rewards: read 02, 04, and 10.
- Multiplayer programmers: read 06 after 01.
- UI programmers: read 08.
- Tooling / QA: read 09.
In a hurry, or something's behaving oddly? Start at 11 — FAQ.
Chapters¶
| # | Chapter | What's in it |
|---|---|---|
| 01 | Core Concepts | Quests, objectives, states, sharing modes, the one-component-two-locations model |
| 02 | Zero-Config Integration | UQuestWorldSubsystem, UQuestSystemSettings, getting a quest manager |
| 03 | Authoring Quests | Full UQuestData / UQuestObjectiveData property reference |
| 04 | Event-Driven Progress | NotifyQuestEvent, matching rules, sequential objectives, shared kill-credit |
| 05 | World Components | Giver, Receiver, the marker subclasses, Interactor, Quest Target, Location Trigger, ready-made actors |
| 06 | Multiplayer | Replication, party quests, single-player + multiplayer on one map |
| 07 | Serialization | ExportState / ImportState, embedding in your save game |
| 08 | Blueprint Library Reference | Full UQuestBlueprintLibrary function reference |
| 09 | Validation & Cheats | Circular-dependency detection, console commands |
| 10 | C++ Integration | Custom rewards, extending components, sending events from gameplay code |
| 11 | FAQ | Short answers to the common questions, and the "why isn't this working?" checklist |
Conventions used in this guide¶
UQuestDatarefers to a quest asset;UQuestObjectiveDatarefers to an objective asset. Both areUPrimaryDataAssets you create in the Content Browser.- Code snippets are C++ unless stated otherwise; every function shown is also callable from Blueprint.
- "The manager" means
UQuestManagerComponent— see 01 for where it lives and what it does.