Skip to main content

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

WidgetPurposeParent
UERPToastWidgetSlide-in notificationUUserWidget
UERPQuestTrackerWidgetCompact HUD with tracked questsUUserWidget
UERPQuestTrackerEntryWidgetSingle quest in trackerUUserWidget
UERPObjectiveEntryWidgetSingle objective lineUUserWidget
UERPQuestJournalWidgetFull-screen quest logUUserWidget
UERPQuestListEntryWidgetQuest in journal listUUserWidget
UERPQuestDetailWidgetQuest detail panelUUserWidget

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

TypeDefault ColorUsage
InfoBlueGeneral notifications
SuccessGreenPositive events
WarningYellowCaution messages
ErrorRedFailures
QuestStartedLight blueNew quest
QuestCompletedGoldQuest done
ObjectiveCompletedGreenObjective 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

PropertyDefaultDescription
BackgroundTintDark transparentBackground color
HeaderColorGold"Quests" header color
HeaderText"Quests"Header label
bShowHeadertrueShow/hide header
ContentPadding12,8,12,8Inner 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

PropertyDefaultDescription
BackgroundTintVery darkFull-screen background
ListPanelTintSlightly lighterLeft panel background
SectionHeaderColorGold"Active"/"Completed" headers
JournalTitle"Quest Journal"Title text

Blueprint Customization

BindWidget Override

All widgets support Blueprint layout override:

  1. Create a BP child of any widget (e.g., WBP_MyToast from ERPToastWidget)
  2. In the UMG Designer, add widgets with the exact names listed below
  3. The C++ code will use your designer widgets instead of building its own layout

Available BindWidgets

ERPToastWidget

NameTypePurpose
BackgroundImageUImageBackground
AccentBarUImageColored left strip
MessageTextUTextBlockMain message
SubtitleTextUTextBlockSubtitle line

ERPQuestTrackerWidget

NameTypePurpose
BackgroundImageUImageBackground
HeaderTextBlockUTextBlock"Quests" header
QuestEntriesBoxUVerticalBoxContainer for entries

ERPQuestTrackerEntryWidget

NameTypePurpose
QuestNameTextUTextBlockQuest title
ObjectivesBoxUVerticalBoxContainer for objectives

ERPObjectiveEntryWidget

NameTypePurpose
CheckboxTextUTextBlockCheckbox indicator
ObjectiveTextUTextBlockObjective description
CounterTextUTextBlock"3/5" counter

ERPQuestJournalWidget

NameTypePurpose
BackgroundImageUImageFull-screen background
TitleTextUTextBlock"Quest Journal"
QuestListScrollBoxUScrollBoxQuest list container

ERPQuestDetailWidget

NameTypePurpose
TitleTextUTextBlockQuest name
DescriptionTextUTextBlockQuest description
ObjectivesHeaderTextUTextBlock"Objectives" label
ObjectivesBoxUVerticalBoxObjective entries
TrackButtonUButtonTrack/untrack
TrackButtonTextUTextBlockButton label
AbandonButtonUButtonAbandon quest

ERPQuestListEntryWidget

NameTypePurpose
EntryButtonUButtonClickable container
StatusDotUTextBlockState indicator
QuestNameTextUTextBlockQuest name
TrackedIndicatorUTextBlockStar for tracked

Next Steps