Widget Guide
ElysQuestFlow ships with ready-to-use C++ widgets for toast notifications, quest tracking, and a quest journal. All widgets are built programmatically and fully overridable in Blueprints.
Widget Overview
| Widget | Purpose | Parent |
|---|---|---|
UERPToastWidget | Slide-in notification | UUserWidget |
UERPQuestTrackerWidget | Compact HUD with tracked quests | UUserWidget |
UERPQuestTrackerEntryWidget | Single quest in tracker | UUserWidget |
UERPObjectiveEntryWidget | Single objective line | UUserWidget |
UERPQuestJournalWidget | Full-screen quest log | UUserWidget |
UERPQuestListEntryWidget | Quest in journal list | UUserWidget |
UERPQuestDetailWidget | Quest detail panel | UUserWidget |
Toast Notifications
Automatic (Quest Events)
The UERPToastSubsystem automatically shows toasts for:
- Quest started → blue toast
- Objective completed → green toast
- Objective progress (multi-count) → info toast
- Quest completed → gold toast
- Quest failed → red toast
Disable with bAutoToastQuestEvents = false.
Manual
UERPToastSubsystem* Toasts = GetWorld()->GetSubsystem<UERPToastSubsystem>();
Toasts->ShowToast(
FText::FromString("Achievement Unlocked!"),
EERPToastType::Success,
5.0f, // duration
FText::FromString("First Blood") // subtitle (optional)
);
Toast Types & Colors
| Type | Default Color | Usage |
|---|---|---|
Info | Blue | General notifications |
Success | Green | Positive events |
Warning | Yellow | Caution messages |
Error | Red | Failures |
QuestStarted | Light blue | New quest |
QuestCompleted | Gold | Quest done |
ObjectiveCompleted | Green | Objective done |
Customizing Toast Appearance
Override ToastWidgetClass on the subsystem to use your own widget:
UERPToastSubsystem* Toasts = GetWorld()->GetSubsystem<UERPToastSubsystem>();
Toasts->ToastWidgetClass = UMyCustomToastWidget::StaticClass();
Toasts->MaxVisibleToasts = 5; // show up to 5 at once
Quest Tracker (HUD)
Basic Setup
UERPQuestTrackerWidget* Tracker = CreateWidget<UERPQuestTrackerWidget>(PC);
Tracker->AddToViewport();
// Auto-binds to quest subsystem and refreshes on quest/objective changes
Style Properties
| Property | Default | Description |
|---|---|---|
BackgroundTint | Dark transparent | Background color |
HeaderColor | Gold | "Quests" header color |
HeaderText | "Quests" | Header label |
bShowHeader | true | Show/hide header |
ContentPadding | 12,8,12,8 | Inner padding |
Custom Entry Widgets
Override EntryWidgetClass to use your own quest entry widget:
Tracker->EntryWidgetClass = UMyQuestTrackerEntry::StaticClass();
Quest Journal
Basic Setup
UERPQuestJournalWidget* Journal = CreateWidget<UERPQuestJournalWidget>(PC);
Journal->AddToViewport();
// Toggle on input
Journal->ToggleJournal(); // Shows/hides + manages input mode
Features
- Auto-groups quests by state (Active, Completed, Failed)
- Click to select a quest → shows detail panel
- Track/Untrack button toggles HUD visibility
- Abandon button removes quest (configurable)
- Input mode — automatically switches to UI mode when open
Style Properties
| Property | Default | Description |
|---|---|---|
BackgroundTint | Very dark | Full-screen background |
ListPanelTint | Slightly lighter | Left panel background |
SectionHeaderColor | Gold | "Active"/"Completed" headers |
JournalTitle | "Quest Journal" | Title text |
Blueprint Customization
BindWidget Override
All widgets support Blueprint layout override:
- Create a BP child of any widget (e.g.,
WBP_MyToastfromERPToastWidget) - In the UMG Designer, add widgets with the exact names listed below
- The C++ code will use your designer widgets instead of building its own layout
Available BindWidgets
ERPToastWidget
| Name | Type | Purpose |
|---|---|---|
BackgroundImage | UImage | Background |
AccentBar | UImage | Colored left strip |
MessageText | UTextBlock | Main message |
SubtitleText | UTextBlock | Subtitle line |
ERPQuestTrackerWidget
| Name | Type | Purpose |
|---|---|---|
BackgroundImage | UImage | Background |
HeaderTextBlock | UTextBlock | "Quests" header |
QuestEntriesBox | UVerticalBox | Container for entries |
ERPQuestTrackerEntryWidget
| Name | Type | Purpose |
|---|---|---|
QuestNameText | UTextBlock | Quest title |
ObjectivesBox | UVerticalBox | Container for objectives |
ERPObjectiveEntryWidget
| Name | Type | Purpose |
|---|---|---|
CheckboxText | UTextBlock | Checkbox indicator |
ObjectiveText | UTextBlock | Objective description |
CounterText | UTextBlock | "3/5" counter |
ERPQuestJournalWidget
| Name | Type | Purpose |
|---|---|---|
BackgroundImage | UImage | Full-screen background |
TitleText | UTextBlock | "Quest Journal" |
QuestListScrollBox | UScrollBox | Quest list container |
ERPQuestDetailWidget
| Name | Type | Purpose |
|---|---|---|
TitleText | UTextBlock | Quest name |
DescriptionText | UTextBlock | Quest description |
ObjectivesHeaderText | UTextBlock | "Objectives" label |
ObjectivesBox | UVerticalBox | Objective entries |
TrackButton | UButton | Track/untrack |
TrackButtonText | UTextBlock | Button label |
AbandonButton | UButton | Abandon quest |
ERPQuestListEntryWidget
| Name | Type | Purpose |
|---|---|---|
EntryButton | UButton | Clickable container |
StatusDot | UTextBlock | State indicator |
QuestNameText | UTextBlock | Quest name |
TrackedIndicator | UTextBlock | Star for tracked |
Next Steps
- Quest System Guide — Quest configuration
- API Reference — Complete widget API
- Quick Reference — Cheat sheet