Skip to main content

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

TypeColor
InfoBlue
SuccessGreen
WarningYellow
ErrorRed
QuestStartedLight Blue
QuestCompletedGold
ObjectiveCompletedGreen

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)