API Reference
Complete API documentation for ElysQuestFlow.
Event Bus
UERPEventBusSubsystem
World subsystem for decoupled event communication.
Static
| Method | Returns | Description |
|---|---|---|
Get(WorldContextObject) | UERPEventBusSubsystem* | Get the subsystem instance |
Broadcasting
| Method | Description |
|---|---|
Broadcast(EventTag, Payload) | Broadcast event with payload |
BroadcastSimple(EventTag) | Broadcast event without payload |
Listening (Blueprint)
| Delegate | Signature | Description |
|---|---|---|
OnEventReceived | (FGameplayTag, FERPEventPayload) | Fires for ALL events |
Listening (C++ Native)
| Method | Description |
|---|---|
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
| Field | Type | Description |
|---|---|---|
Instigator | AActor* | Actor that caused the event |
ContextObject | UObject* | Generic payload object |
Value | float | Numeric value |
IntValue | int32 | Integer value |
Quest System
UERPQuestSubsystem
World subsystem that manages quest lifecycle.
Static
| Method | Returns | Description |
|---|---|---|
Get(WorldContextObject) | UERPQuestSubsystem* | Get the subsystem instance |
Management
| Method | Returns | Description |
|---|---|---|
StartQuestFromDefinition(Definition) | UERPQuestBase* | Create and start a simple quest |
StartQuest(Quest) | bool | Start a pre-created quest instance |
FailQuest(QuestId) | bool | Fail an active quest |
AbandonQuest(QuestId) | bool | Remove quest from tracking |
Queries
| Method | Returns | Description |
|---|---|---|
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
| Method | Description |
|---|---|
SetQuestTracked(QuestId, bTracked) | Toggle HUD tracking |
Delegates
| Delegate | Signature | Description |
|---|---|---|
OnAnyQuestStateChanged | (UERPQuestBase*, EERPQuestState) | Any quest state change |
OnAnyObjectiveProgressed | (UERPQuestBase*, FERPObjectiveInfo) | Any objective progress |
UERPQuestBase
Abstract base class for all quest types.
Properties
| Property | Type | Description |
|---|---|---|
QuestId | FGuid | Runtime unique ID |
DisplayName | FText | UI display name |
Description | FText | Detailed description |
QuestTags | FGameplayTagContainer | Classification tags |
bTrackedByDefault | bool | Track on HUD when activated |
QuestState | EERPQuestState | Current state |
bIsTracked | bool | Currently tracked on HUD |
Virtual Interface (override in subclasses)
| Method | Returns | Description |
|---|---|---|
ProcessEvent(Tag, Payload) | bool | Handle an event, return true if progressed |
GetProgress() | float | Overall progress 0.0-1.0 |
GetCurrentObjectives() | TArray<FERPObjectiveInfo> | Current objectives for UI |
Activate() | void | Start the quest |
Complete() | void | Mark as completed |
Fail() | void | Mark as failed |
Delegates
| Delegate | Signature | Description |
|---|---|---|
OnQuestStateChanged | (FGuid, EERPQuestState) | This quest's state changed |
OnObjectiveProgressed | (FGuid, FName, FERPObjectiveInfo) | An objective progressed |
UERPSimpleQuestDefinition (DataAsset)
| Property | Type | Description |
|---|---|---|
DisplayName | FText | Quest name |
Description | FText | Quest description |
QuestTags | FGameplayTagContainer | Classification |
bTrackedByDefault | bool | Auto-track on HUD |
Objectives | TArray<FERPObjectiveDefinition> | Objective list |
bSequentialObjectives | bool | Sequential vs. parallel |
CompletionEventTag | FGameplayTag | Broadcast on completion |
FailureEventTag | FGameplayTag | Broadcast on failure |
EERPQuestState
| Value | Description |
|---|---|
Inactive | Not yet started |
Active | In progress |
Completed | Successfully finished |
Failed | Failed |
FERPObjectiveDefinition
| Field | Type | Description |
|---|---|---|
ObjectiveId | FName | Unique ID within quest |
DisplayText | FText | UI text |
EventTag | FGameplayTag | Event that progresses this |
RequiredCount | int32 | Events needed to complete |
FERPObjectiveInfo
| Field | Type | Description |
|---|---|---|
ObjectiveId | FName | Objective ID |
DisplayText | FText | UI text |
CurrentCount | int32 | Current progress |
RequiredCount | int32 | Total needed |
State | EERPObjectiveState | Current state |
Toast System
UERPToastSubsystem
| Method | Description |
|---|---|
Get(WorldContextObject) | Get subsystem instance |
ShowToast(Message, Type, Duration, Subtitle) | Show a toast notification |
| Property | Type | Default | Description |
|---|---|---|---|
MaxVisibleToasts | int32 | 3 | Max simultaneous toasts |
ToastWidgetClass | TSubclassOf | UERPToastWidget | Widget class |
bAutoToastQuestEvents | bool | true | Auto-toast for quests |
EERPToastType
| Value | Color | Usage |
|---|---|---|
Info | Blue | General |
Success | Green | Positive |
Warning | Yellow | Caution |
Error | Red | Failures |
QuestStarted | Light blue | New quest |
QuestCompleted | Gold | Quest done |
ObjectiveCompleted | Green | Objective 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);