The player's side
- A player creates a party and invites friends, by name or with an invite link.
- The leader selects a game. Every member needs access and the party must fit the game's capacity.
- Friends choose Ready to play. The leader chooses Start shared game.
- Ready members are launched together. Starting with unready friends asks the leader to confirm their exclusion.
Free games are playable by every verified member without a separate claim. Guests can join invitations for free games.
What your game receives
A shared launch arrives as a normal launch with a verified launch intent in Peerless.runtime().intent:
{
id: string;
mode: string; // the selected game mode
status: "loading" | "ready" | "queueing" | "active" | "paused" | "cancelled" | "error";
leaderId: string; // game-scoped player ID
members: { playerId, playerName, ready, state }[];
}For relay games the cohort joins the same room. For queue games, sessions reserve the complete group together. A player without a pending launch can always start solo.
Things the launcher handles
- Selecting the same game again keeps everyone's readiness.
- A Library or ordinary play link inherits a pending launch when that player is already included.
- Nobody is enrolled silently, and nobody is moved into a match that already started.
- Leaving, removal, leader changes and game switches invalidate the old cohort.
Test with two real players
Use two accounts in separate browser profiles. Create a party, invite, ready up and start. Then test leaving, a leader change, switching games and a solo start after leaving. Repeat the game's own flow outside PEERLESS to confirm standalone still works.