Skip to content

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

  1. Copy Plugins/QuestSystem into your project's Plugins/ folder.
  2. Enable it: Edit > Plugins > QuestSystem.
  3. That's it — no code required yet. UQuestWorldSubsystem automatically attaches a quest manager to every player and to the game state.

Create your first quest:

  1. In the Content Browser: Add > Miscellaneous > Data Asset, pick Quest Objective Data. Set ObjectiveType, TargetCount, and ObjectiveIdentifier (e.g. KillTarget / 3 / "Bandit").
  2. Add another Data Asset, this time Quest Data. Give it a QuestName and add your objective to Objectives.
  3. Add a Quest Giver Component to any Actor in your level and drop your quest into AvailableQuests.
  4. Add a Quest Interactor Component to your player pawn and bind an input to TryInteract.
  5. 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

  • UQuestData refers to a quest asset; UQuestObjectiveData refers to an objective asset. Both are UPrimaryDataAssets 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.