System Overview

Actor Components

Here is a breakdown of the main components found in the Blueprints/Components/ folder, inside these components you can find most of the processes and handlers for the quest system:

Event Dispatchers

The AC_QuestSystem_PlayerState component is where all the event dispatchers related to quest data and objectives can be found.

For each player state event there is a matching event with the prefix UI_. In multiplayer the events with the UI_ prefix will only run on the client, whereas the ones without this prefix will only run on the server.

In addition to the QuestRowName, each of these events will provide additional relevant data.

PlayerState Event Dispatchers

UI_QuestSystemLoaded Called when the quest system is done loading. You can check the value of isQuestSystemLoaded? before using this event dispatcher to see if it is already loaded.
UI_NoQuestsInLevel Called when the quest system is done loading and no levels were found in the current level.
UI_QuestAutoAccepted Called when a quest is auto accepted, using the Quest Options Auto Accept Quest? setting.
UI_QuestAutoCompleted Called when a quest is auto completed, using the Quest Options Auto Complete Quest? setting.
UI_QuestStateChanged Called when a quest state changes.
UI_QuestRepeatableReset Called when a repeatable quest type resets.
UI_QuestAbandoned Called when a quest is abandoned (dropped by the player).
UI_QuestObjectiveComplete Called when a quest objective for the quest is completed.
UI_QuestObjectiveCountChange Called when a quest objective's count progress changes.
UI_QuestActorIgnoreListUpdated Called when a quest actor is added to the ignore list for the player.
UI_QuestTurninMissingItems Called when the player attempts to turn in items, for the turn in objective, but does not have all the required items.
UI_QuestTrackingChanged Called whenever the tracked quests change.

PlayerController Event Dispatchers

The AC_QuestSystem_PlayerController has a few more event dispatchers related to the UI side of quest interaction, and when a quest is shared. With the exception of InteractedWithSomething, these events are specific to the client only (only the UI_ version is available).

UI_InteractedWithSomething Called when the player interacts with something. This event is the only one on the controller that runs on both server and client, all other events below are client only.
UI_TryingToInteract Called (on the client only) when the player is trying to interact with something.
UI_NothingToInteract Called (on the client only) when the player attempts to interact but has nothing to interact with.
UI_ShowInteractNotice Called (on the client only) when the quest system detects a nearby interactable quest actor.
UI_HideInteractNotice Called (on the client only) when the quest system clears the currently detected interactable quest actor.
UI_QuestShared Called (on the client only) when a quest is shared. This is called on the client who is receiving the shared quest.

Function Library

The function library is very simple in this version. It includes just 3 functions:

replicationError - A print string helper, used throughout the project to notify the developer if they are attempting to handle something from the client that should only be handled from the server in a multiplayer game.
auditLoop - A function used to audit the speed of loops, this is only used when audit mode is enabled (see next function).
isAuditMode? - False by default, but when true will run the audit loops and print string the results. The loops that are audited are related to actor scanning (on server) and indicator scanning (on client).

Blueprint Interfaces

There are a number of interfaces included with this system, most are used internally however BPI_Quest_Actor_Options and BPI_Quest_ConnectedSystems are intended for your use, and you can learn more about the actor one on the Quest Actors page, and the Connected Systems one on the Connected Systems page.

Data Tables

There is only one data table, DT_Quests, and it can be found in the Blueprints/Variables/DataTables folder. This data table is used to store all of our information about our quests. The structure for this data table F_Quest can be found in the Blueprints/Variables/Structures/ folder.

A break down of each variable found in this table can be found on the How to Make a Quest page.

Structures

Structures can be found in the Blueprints/Variables/Structures/ folder.

Enums

Enumerations can be found in the Blueprints/Variables/Enums/ folder.

WARNING: DO NOT DELETE OR MOVE ITEMS AROUND IN THE PROVIDED ENUMS!

THE UE5 EDITOR IS SENSITIVE AND WILL BREAK THINGS SAVED LIKE VALUES IN VARIABLES AND DATA IN THE DATA TABLE. IF THERE IS SOMETHING YOU DON'T PLAN ON USING IN ONE OF THESE ENUMS JUST IGNORE IT.

UIs

All UIs for this quest system can be found in the UIs/ folder. A break down of each UI can be found on the User Interfaces page.