Match End #

The Match End event provides a rich set of capabilities that integrate with the Player Data service to grant content, update quests and progression data, and grant rewards. The results are aggregated and sent to players as a single payload to simplify the client match details and “play again” workflows.

sequenceDiagram participant gs as Game Server participant ml as Match Lifecycle participant pd as Player Data participant i as Custom Service participant p as Player gs->>ml:matchEnd(details) note right of ml: Send to multiple services par ml->>+pd:matchEnd(details) pd->>-ml:results ml->>+i:matchEnd(details) i->>-ml:results end note right of ml: Send combined results to players ml->>p:matchResults(results)

Content Grants #

Match end has built-in support for:

  • item grants
  • item and progression updates
  • rewards grants
  • metrics

These capabilities can be extended further with the standard plugin + extension data approach.

Match End Event Registration #

Relevant services can register themselves to receive the match end event. The Match Lifecycle service aggregates the results from all service updates and send a single result payload to players. This keeps client processing simple and prevents typical client bugs associated with coordinating multiple async notifications while the client is transitioning out of a match and rendering match results.

Play Again #

Pragma Engine provides a way for players to easily recreate lobbies/parties with the same configuration as their previous game. This creates a seamless transition through multiple sessions.

This functionality varies with the type of game loop flow:

  • Lobby-based: the lobby leader can use the Play Again feature to recreate their prior lobby with the same configuration as the last game and reinvite members.

  • Party-based: the Match Lifecycle service caches party configuration and upon match end returns all players to their original party, allowing them to quickly prepare for the next match and queue again. This behavior can be toggled via the MatchLifecycleServiceConfig.enablePartyRecreate config option.