Skip to main content

API Reference

Complete API documentation for ElysQuestFlow.


Event Bus

UERPEventBusSubsystem

World subsystem for decoupled event communication.

Static

MethodReturnsDescription
Get(WorldContextObject)UERPEventBusSubsystem*Get the subsystem instance

Broadcasting

MethodDescription
Broadcast(EventTag, Payload)Broadcast event with payload
BroadcastSimple(EventTag)Broadcast event without payload

Listening (Blueprint)

DelegateSignatureDescription
OnEventReceived(FGameplayTag, FERPEventPayload)Fires for ALL events

Listening (C++ Native)

MethodDescription
ListenNative(Tag, Delegate)Listen for a specific tag, returns FDelegateHandle
UnlistenNative(Tag, Handle)Remove a specific listener
UnlistenAllNative(Tag)Remove all listeners for a tag

FERPEventPayload

FieldTypeDescription
InstigatorAActor*Actor that caused the event
ContextObjectUObject*Generic payload object
ValuefloatNumeric value
IntValueint32Integer value

Quest System

UERPQuestSubsystem

World subsystem that manages quest lifecycle.

Static

MethodReturnsDescription
Get(WorldContextObject)UERPQuestSubsystem*Get the subsystem instance

Management

MethodReturnsDescription
StartQuestFromDefinition(Definition)UERPQuestBase*Create and start a simple quest
StartQuest(Quest)boolStart a pre-created quest instance
FailQuest(QuestId)boolFail an active quest
AbandonQuest(QuestId)boolRemove quest from tracking

Queries

MethodReturnsDescription
GetActiveQuests()TArray<UERPQuestBase*>All active quests
GetTrackedQuests()TArray<UERPQuestBase*>Active + tracked quests
GetQuestsByState(State)TArray<UERPQuestBase*>Quests with given state
GetAllQuests()TArray<UERPQuestBase*>All quests (any state)
FindQuest(QuestId)UERPQuestBase*Find by GUID

Tracking

MethodDescription
SetQuestTracked(QuestId, bTracked)Toggle HUD tracking

Delegates

DelegateSignatureDescription
OnAnyQuestStateChanged(UERPQuestBase*, EERPQuestState)Any quest state change
OnAnyObjectiveProgressed(UERPQuestBase*, FERPObjectiveInfo)Any objective progress

UERPQuestBase

Abstract base class for all quest types.

Properties

PropertyTypeDescription
QuestIdFGuidRuntime unique ID
DisplayNameFTextUI display name
DescriptionFTextDetailed description
QuestTagsFGameplayTagContainerClassification tags
bTrackedByDefaultboolTrack on HUD when activated
QuestStateEERPQuestStateCurrent state
bIsTrackedboolCurrently tracked on HUD

Virtual Interface (override in subclasses)

MethodReturnsDescription
ProcessEvent(Tag, Payload)boolHandle an event, return true if progressed
GetProgress()floatOverall progress 0.0-1.0
GetCurrentObjectives()TArray<FERPObjectiveInfo>Current objectives for UI
Activate()voidStart the quest
Complete()voidMark as completed
Fail()voidMark as failed

Delegates

DelegateSignatureDescription
OnQuestStateChanged(FGuid, EERPQuestState)This quest's state changed
OnObjectiveProgressed(FGuid, FName, FERPObjectiveInfo)An objective progressed

UERPSimpleQuestDefinition (DataAsset)

PropertyTypeDescription
DisplayNameFTextQuest name
DescriptionFTextQuest description
QuestTagsFGameplayTagContainerClassification
bTrackedByDefaultboolAuto-track on HUD
ObjectivesTArray<FERPObjectiveDefinition>Objective list
bSequentialObjectivesboolSequential vs. parallel
CompletionEventTagFGameplayTagBroadcast on completion
FailureEventTagFGameplayTagBroadcast on failure

EERPQuestState

ValueDescription
InactiveNot yet started
ActiveIn progress
CompletedSuccessfully finished
FailedFailed

FERPObjectiveDefinition

FieldTypeDescription
ObjectiveIdFNameUnique ID within quest
DisplayTextFTextUI text
EventTagFGameplayTagEvent that progresses this
RequiredCountint32Events needed to complete

FERPObjectiveInfo

FieldTypeDescription
ObjectiveIdFNameObjective ID
DisplayTextFTextUI text
CurrentCountint32Current progress
RequiredCountint32Total needed
StateEERPObjectiveStateCurrent state

Toast System

UERPToastSubsystem

MethodDescription
Get(WorldContextObject)Get subsystem instance
ShowToast(Message, Type, Duration, Subtitle)Show a toast notification
PropertyTypeDefaultDescription
MaxVisibleToastsint323Max simultaneous toasts
ToastWidgetClassTSubclassOfUERPToastWidgetWidget class
bAutoToastQuestEventsbooltrueAuto-toast for quests

EERPToastType

ValueColorUsage
InfoBlueGeneral
SuccessGreenPositive
WarningYellowCaution
ErrorRedFailures
QuestStartedLight blueNew quest
QuestCompletedGoldQuest done
ObjectiveCompletedGreenObjective done

Widget Classes

See Widget Guide for detailed usage and BindWidget tables.

Quick Widget API

// Toast
UERPToastWidget* Toast;
Toast->ShowToast(Message, Type, Duration, Subtitle);

// Tracker
UERPQuestTrackerWidget* Tracker;
Tracker->RefreshFromSubsystem();
Tracker->UpdateWithQuests(QuestArray);

// Journal
UERPQuestJournalWidget* Journal;
Journal->OpenJournal();
Journal->CloseJournal();
Journal->ToggleJournal();
Journal->RefreshFromSubsystem();

// Detail
UERPQuestDetailWidget* Detail;
Detail->ShowQuestDetail(Quest);

// List Entry
UERPQuestListEntryWidget* Entry;
Entry->UpdateFromQuest(Quest);
Entry->SetSelected(true);

// Tracker Entry
UERPQuestTrackerEntryWidget* TrackerEntry;
TrackerEntry->UpdateFromQuest(Quest);

// Objective Entry
UERPObjectiveEntryWidget* ObjEntry;
ObjEntry->UpdateFromInfo(ObjectiveInfo);