Setup Guide
Complete installation and setup walkthrough for ElysQuestFlow.
Installation
From FAB Marketplace
- Download ElysQuestFlow from the FAB Marketplace
- Enable the plugin in Edit > Plugins > search "ElysQuestFlow"
- Restart the editor
From Source
- Clone into your project's
Plugins/directory:cd YourProject/Plugins/
git clone https://github.com/RogueParadigm/ElysQuestFlow.git - Regenerate project files
- Build the project
Dependencies
ElysQuestFlow requires:
- GameplayTags — Built-in UE plugin (enabled by default)
- UMG — For widget rendering
No external dependencies.
Module Setup
Add to your game module's Build.cs if you reference ElysQuestFlow types directly:
PublicDependencyModuleNames.Add("ElysQuestFlow");
Minimal Integration
Step 1: Define GameplayTags
Create tags for your game events in Project Settings > GameplayTags, or in a GameplayTags.ini:
[/Script/GameplayTags.GameplayTagsSettings]
+GameplayTagList=(Tag="Enemy.Killed",DevComment="An enemy was killed")
+GameplayTagList=(Tag="Item.Collected",DevComment="An item was collected")
+GameplayTagList=(Tag="Area.Entered",DevComment="Player entered an area")
+GameplayTagList=(Tag="Quest.Completed.ClearTavern",DevComment="Clear tavern quest done")
Step 2: Create a Quest DataAsset
- In Content Browser: Right-click > Miscellaneous > Data Asset
- Select
ERPSimpleQuestDefinition - Configure:
- Display Name: "Clear the Tavern"
- Description: "Help the innkeeper deal with the goblin problem."
- Objectives:
[0]ObjectiveId: "KillGoblins", EventTag:Enemy.Killed, Count: 5, Text: "Kill 5 goblins"[1]ObjectiveId: "SecureCellar", EventTag:Area.Entered, Count: 1, Text: "Secure the cellar"
- Sequential: true
- Completion Event Tag:
Quest.Completed.ClearTavern
Step 3: Start the Quest
In your PlayerController or GameMode:
#include "Quest/ERPQuestSubsystem.h"
#include "Quest/ERPSimpleQuest.h"
void AMyPlayerController::BeginPlay()
{
Super::BeginPlay();
UERPQuestSubsystem* QS = GetWorld()->GetSubsystem<UERPQuestSubsystem>();
if (QS && MyQuestDefinition)
{
QS->StartQuestFromDefinition(MyQuestDefinition);
}
}
Step 4: Broadcast Events
From your game code, broadcast events when things happen:
#include "EventBus/ERPEventBusSubsystem.h"
void AMyEnemy::Die()
{
UERPEventBusSubsystem* Bus = GetWorld()->GetSubsystem<UERPEventBusSubsystem>();
if (Bus)
{
FERPEventPayload Payload;
Payload.Instigator = LastDamageDealer;
Bus->Broadcast(FGameplayTag::RequestGameplayTag("Enemy.Killed"), Payload);
}
}
Step 5: Add UI (Optional)
Toast notifications work automatically — the UERPToastSubsystem listens to quest events.
For a quest tracker HUD:
#include "UI/ERPQuestTrackerWidget.h"
void AMyHUD::BeginPlay()
{
Super::BeginPlay();
UERPQuestTrackerWidget* Tracker = CreateWidget<UERPQuestTrackerWidget>(GetOwningPlayerController());
Tracker->AddToViewport();
}
Blueprint Setup
All steps above can also be done in Blueprints:
- Start Quest: Get
ERPQuestSubsystem> callStartQuestFromDefinition - Broadcast Event: Get
ERPEventBusSubsystem> callBroadcastorBroadcastSimple - Create UI: Create Widget of class
ERPQuestTrackerWidget> Add to Viewport
Next Steps
- Event Bus Guide — Advanced event bus usage
- Quest System Guide — Quest types and lifecycle
- Widget Guide — UI customization