Pulse Online Integration
Table of Contents
Overview
PulseQuestOnlineBridge is a separate plugin (LuQ-Studios/PulseQuestOnlineBridge) that connects PulseQuest to the parties of Pulse Online. PulseQuest and Pulse Online don’t depend on each other; only the bridge depends on both.
The server keeps one shared quest host per party: the players of a party play its quests together, see the same progress and get the rewards. Players join the host of their party and leave it with their party; players without party keep only their own quest manager.
| Class | Purpose |
|---|---|
UPulseQuestOnlinePartyPlayerComponent | On the player state: makes the player a member of the host of its party (IPulseSharedQuestPlayerInterface). GetPartyQuestHost() on the server and the owning client |
UPulseQuestOnlinePartySubsystem | Server: one host per party id, spawned on first use; moves players when their party changes. GetHostOfParty(PartyId) |
UPulseQuestOnlinePartyLibrary | GetPartyQuestHost(Player), GetPartyOrOwnQuestManager(Player) (the party host, else the player’s own quest manager) |
UPulseQuestOnlineBridgeSettings | Project Settings > Pulse > Quest > Online |
How players get into the host
Pulse Online keeps the party id of every player on the server (bSharePlayerParties, the travel URL when a player joins, a server RPC when the party changes later; see Party in the Pulse Online docs). The bridge follows it:
- A player state gets the party player component (the automatic component of the settings, or your own).
- When the component starts on the server, the player joins the host of its party id, spawned when the party has none yet (class
HostClassof the settings). - When the party changes (
On Player Party Changedof Pulse Online), the player leaves its host and joins the host of the new party; without party it stays in none. A new leader of the same party changes nothing. - A player that leaves the game leaves the host (
bRemovePlayersOnDestroyof the host does it as well).
A player that joins the party later is added to the host like the others. The host replicates to its players only, so the new player gets the host with its running quests and their progress at that moment.
The party id comes from the player’s own game and is not checked. It only groups players: never use it for rights (kicking, prices, admin commands). A cheater can join a host by sending another party’s id.
Starting party quests
Start quests for the group on the host, not on the player’s own quest manager: GetPartyOrOwnQuestManager(Player) returns the party host and falls back to the player’s own manager, so the same start works with and without party. Quests on the host give their rewards to every player of the host (GetQuestPlayers).
Settings
| Setting | Default | Description |
|---|---|---|
bEnabled | true | Whether the server keeps a host per party |
PartyPlayer | off | Automatic party player component on every player state; Set Up in the Pulse window turns it on |
HostClass | empty | Class of the hosts (quest set and parameters for every party). Empty: APulseSharedQuestHost with the default quest set of the Quest settings. A saveable host of PulseQuestSaveBridge saves party quests |
bDestroyEmptyHosts | false | Destroys the host when its last player left. Off: the host stays until the world ends, so a party that comes back continues |
Setup
- Enable
PulseQuest,PulseOnlineandPulseQuestOnlineBridge. - Set Up in the Pulse window (workflow “Quest Online”): turns on the automatic party player component.
- Optional: a Blueprint of
APulseSharedQuestHostwith a quest set asHostClass. - Start group quests through
GetPartyOrOwnQuestManager.