A shared quest for two players
Normally every player has an own quest manager and the quests of one player are not seen by others. A shared quest host is a manager for a group: you add players to it, start a quest on it and every player in the group sees and finishes the same quest. In this lesson two players share the quest of Your first quest.
You play with two players in the editor: one is the server, the other one joins it.
Place the shared quest host
In the Place Actors panel search for Pulse Shared Quest Host and place it anywhere in your level. In its Details, open Manager Params and set Quest Set to DA_FirstQuestSet, the set of the first lesson.
The host does not need a spot in the world. It is net relevant only for the players you add to it. Why: Multiplayer.
Make the player state a quest player
The host adds players that implement the interface Pulse Shared Quest Player Interface. The player state is a good choice, because every player has one on the server and on the clients.
- Create a Blueprint of class Player State named
BP_SharedQuestPlayerState. - In Class Settings, add the interface Pulse Shared Quest Player Interface under Implemented Interfaces.
- Open the function Get Quest Player State and return Self.
Use the player state in a game mode
Create a Blueprint of class Game Mode Base named BP_SharedQuestGameMode. Set its Player State Class to BP_SharedQuestPlayerState. Then open World Settings of your level and set GameMode Override to BP_SharedQuestGameMode.
Add every player to the host
In BP_SharedQuestGameMode, add the event On Post Login. It runs on the server for every player who joins. From it:
- Get Actor Of Class with the class Pulse Shared Quest Host (or put a reference to the placed host into the game mode).
- Add Player, with New Player = the Player State of the new player controller.
Players who leave are removed automatically. The host does this when their player state is destroyed.
Start the quest for the group
Right after Add Player, call Start Quest on the host with the tag Quest.Tutorial.FirstQuest, but only if the quest is not active yet. Use Is Quest Active on the host and a Branch.
The first player starts the quest, the second one joins it. Remove the Start Quest For Actor node of the first lesson from the Level Blueprint, otherwise every player also gets an own copy of the quest.
Play with two players
In the Play menu, open Advanced Settings and set Number of Players to 2 and Net Mode to Play As Listen Server. Press Play. Two windows open; the first one is the server.
Walk the character of the first window to the target of the quest. The quest finishes for both players. In the second window, the quest list shows the same quest.
Look at both sides
Open the Live page of the Pulse Debugger and switch the world selection between the server and the client. The shared host exists on the server with both players. On the client you only see what is replicated to that player.
Clients do not start or finish quests themselves. These calls only run on the server and a client call is refused with a warning in the log.
Result
Two players work on one quest, started and finished on the server.

A quest that depends on all players can use a Gameplay Event Objective that counts the events of any player. Next: Write an objective in C++.