Show quests in the UI
Widgets do not read the quest manager directly. View models follow it on every machine, also on clients, and tell a widget when something changed. In this lesson you build a list of the running quests with the view models of PulseQuest.
This lesson continues with the quest of Your first quest.
Create the list widget
In the Content Browser choose Add > User Interface > Widget Blueprint with User Widget as the parent and name it WBP_QuestList. Open it, add a List View to the canvas and name it QuestList.
Add the view model of the manager
Open Window > View Models in the widget editor, click + View Model and pick MVVMPulse Quest Manager. Set its Creation Type to Manual: you hand it the view model of the quest manager of the player. Why: View model hierarchy.
Give the widget its view model
In the Event Graph, from Event Construct: Get Owning Player → Find Quest Manager → Get Quest Manager View Model → Set View Model. The view model is created on the first call and kept as long as the quest manager lives, so every widget gets the same one.
Make an entry widget
Create a second User Widget WBP_QuestEntry with a Text Block named QuestName. Add the interface User Object List Entry in Class Settings. Add the view model MVVMPulse Quest (Creation Type: Manual) and, in the Event Graph, On List Item Object Set: Cast To MVVMPulse Quest the list item and Set View Model. In the View Bindings window bind Display Name of the view model to the text of QuestName.
Back in WBP_QuestList, set Entry Widget Class of QuestList to WBP_QuestEntry.
Bind the list to the quests
In View Bindings of WBP_QuestList add a binding from Get Active Quests of the view model to Set List Items of QuestList. The list now follows the running quests: a started quest appears, a finished one disappears.
If your version does not offer the list function as a binding target, call Set List Items with Get Active Quests in the On Quest Started and On Quest Finished events of the view model instead.
Show the widget
In the Level Blueprint, from Event BeginPlay, add Create Widget (class WBP_QuestList) and Add to Viewport.
Play
Press Play and start the quest with PulseQuestStart Quest.Tutorial.FirstQuest if your level does not start it. My first quest appears in the list. Finish the quest with PulseQuestComplete and it disappears.
Result
The quest list shows what the quest manager runs, without a single line of code that reads the manager.

The view models of a quest also expose its objectives with progress: bind Get Visible Objectives, Display Text and Get Progress Ratio in an objective entry, or Tracked Quest for a tracker on the HUD. See MVVM and UI.