Quick Reference
Cheat sheet for ElysQuestFlow.
Subsystem Access
// Event Bus
UERPEventBusSubsystem* Bus = GetWorld()->GetSubsystem<UERPEventBusSubsystem>();
// or
UERPEventBusSubsystem* Bus = UERPEventBusSubsystem::Get(this);
// Quest System
UERPQuestSubsystem* QS = GetWorld()->GetSubsystem<UERPQuestSubsystem>();
// or
UERPQuestSubsystem* QS = UERPQuestSubsystem::Get(this);
// Toast Notifications
UERPToastSubsystem* Toasts = GetWorld()->GetSubsystem<UERPToastSubsystem>();
// or
UERPToastSubsystem* Toasts = UERPToastSubsystem::Get(this);
Common Patterns
Broadcast an Event
FERPEventPayload Payload;
Payload.Instigator = this;
Bus->Broadcast(FGameplayTag::RequestGameplayTag("Enemy.Killed"), Payload);
Start a Quest
// From DataAsset
QS->StartQuestFromDefinition(MyQuestDef);
// From Blueprint class
UERPBlueprintQuest* Q = NewObject<UERPBlueprintQuest>(this, MyBPClass);
QS->StartQuest(Q);
Show a Toast
Toasts->ShowToast(FText::FromString("Hello!"), EERPToastType::Info);
Toasts->ShowToast(FText::FromString("Done!"), EERPToastType::Success, 5.0f, FText::FromString("Subtitle"));
Add Tracker to HUD
UERPQuestTrackerWidget* Tracker = CreateWidget<UERPQuestTrackerWidget>(PC);
Tracker->AddToViewport();
Toggle Journal
UERPQuestJournalWidget* Journal = CreateWidget<UERPQuestJournalWidget>(PC);
Journal->AddToViewport();
// On key press:
Journal->ToggleJournal();
Quest State Flow
Inactive → Active → Completed
↘ Failed
Objective State Flow
Locked → Active → Completed
↘ Failed
Event Tag Matching
Listen: "Enemy" → catches "Enemy.Killed", "Enemy.Stunned", etc.
Listen: "Enemy.Killed" → catches only "Enemy.Killed" and children
Class Hierarchy
UWorldSubsystem
├── UERPEventBusSubsystem
├── UERPQuestSubsystem
└── UERPToastSubsystem
UObject
└── UERPQuestBase (abstract)
├── UERPSimpleQuest
└── UERPBlueprintQuest
UDataAsset
└── UERPSimpleQuestDefinition
UUserWidget
├── UERPToastWidget
├── UERPQuestTrackerWidget
├── UERPQuestTrackerEntryWidget
├── UERPObjectiveEntryWidget
├── UERPQuestJournalWidget
├── UERPQuestListEntryWidget
└── UERPQuestDetailWidget
Toast Types
| Type | Color |
|---|---|
| Info | Blue |
| Success | Green |
| Warning | Yellow |
| Error | Red |
| QuestStarted | Light Blue |
| QuestCompleted | Gold |
| ObjectiveCompleted | Green |
Files
Source/ElysQuestFlow/
├── Public/
│ ├── EventBus/ERPEventBusSubsystem.h
│ ├── Quest/ERPQuestTypes.h
│ ├── Quest/ERPQuestBase.h
│ ├── Quest/ERPSimpleQuest.h
│ ├── Quest/ERPBlueprintQuest.h
│ ├── Quest/ERPQuestSubsystem.h
│ └── UI/ (7 widget headers)
└── Private/
├── EventBus/ERPEventBusSubsystem.cpp
├── Quest/ (3 .cpp files)
└── UI/ (7 .cpp files)