Suggested adoption order
- Sign-in & identity — XUser and PlayFab sign-in.
- Achievements & stats — XSAPI Achievements and Player stats.
- Cloud saves — XGameSave.
- Social — friends and recent players and Rich presence.
- Multiplayer — Lobbies, Matchmaking, Multiplayer, Invites, and Chat.
- Commerce — XStore, In-game purchases, and DLC.
- Server-side integrations — S2S authentication, User-generated content, and Live ops.
Optional service topics
Each row below maps to a topic covered in the source PC E2E guide. Detailed integration guidance lives in the linked feature docs.Chat
Use PlayFab Party for synchronous voice and text chat on PC and XBOX. Key steps:- Set up the PlayFab Party SDK.
- Authenticate the player with both XBOX services and PlayFab.
- Create or join a Party network with
PartyManager::CreateNewNetwork(). - Create a
PartyLocalChatControlper local user and connect it withPartyNetwork::ConnectChatControl(). - Choose audio input/output devices via
PartyLocalChatControl::SetAudioInput/Outputand aPartyAudioDeviceSelectionType. - Configure chat permissions and mute state between chat control pairs.
- Add text chat via
SendText, optionally with translation viaSetTextChatOptions. - Add accessibility — speech-to-text transcription and text-to-speech synthesis via Azure Speech Services.
- Enable audio noise suppression on captured microphone audio.
In-game purchases
Use XStore (viaXGameRuntime.h) for in-game purchase flows on the Microsoft Store:
- Query the store catalog, associated products (add-ons, consumables, durables), and the user’s entitlement collection.
- Show the purchase UI via
XStoreShowPurchaseUIAsync. - Consume consumables via
XStoreReportConsumableFulfillmentAsync. - Refresh licenses with
XStoreQueryProductForCurrentSkuAsyncafter entitlement changes.
Invites
Use PlayFab Lobby for invites and joins across PC/XBOX:- Integrate the PlayFab Lobby & Matchmaking SDK.
- Authenticate with XBOX services and PlayFab.
- Choose lobby ownership: player-owned (
PFMultiplayerCreateAndJoinLobby), server-owned (PFMultiplayerCreateAndClaimServerLobby), or matchmaking-created. - Listen for invites via
PFMultiplayerStartListeningForLobbyInvites. - Send invites through the platform’s invite UI so the target sees a native XBOX/Store notification.
Leaderboards
Use XSAPI title-managed leaderboards for social and global leaderboards on XBOX services:- Define leaderboards in Partner Center under XBOX services → Player data.
- Emit stat events tied to the leaderboard using the Stats Manager.
- Query leaderboards via
XblLeaderboardGetLeaderboardAsync(global) orXblLeaderboardGetLeaderboardForSocialGroupAsync(friends).
Lobbies
Use PlayFab Lobby for shared session state (member list, arbitrary properties, ownership):- Create, join, find, and leave lobbies with the PlayFab Multiplayer C SDK.
- Store gameplay metadata as lobby properties (game mode, map, ready state).
- Combine with PlayFab Matchmaking to form lobbies from a matched group.
- Combine with PlayFab Party to add networking and voice on top of the lobby membership.
Matchmaking
Use PlayFab Matchmaking for skill/attribute-based matchmaking that produces a shared lobby:- Define matchmaking queues in the PlayFab Game Manager with rules over player attributes.
- Submit tickets via
PFMatchmakingCreateMatchmakingTicket. - On match found, players are placed into a shared lobby you own.
Multiplayer
Two supported multiplayer stacks on PC/XBOX:- PlayFab Multiplayer — cross-platform, uses PlayFab Lobby for sessions and PlayFab Party for transport. Recommended for new titles.
- XBOX services multiplayer — MPSD sessions + Multiplayer Manager (MPM). Still supported for XBOX-only titles.
Networking
Use PlayFab Party as the network transport for real-time gameplay traffic:- Send reliable/unreliable messages between connected endpoints.
- Layer voice, text, and gameplay data on the same Party network.
- On XBOX, Party integrates with the platform’s network path automatically; on PC it uses UDP with fallback.
Player stats
Use the XSAPI Stats Manager for title-managed player stats:- Define stats in Partner Center under XBOX services → Player data.
- Add the stat to the player with
XblStatsManagerSetStatAsNumber/SetStatAsString. - Increment or overwrite stats in response to gameplay.
- Flush pending updates with
XblStatsManagerDoWorkeach frame.
Rich presence
Use XSAPI Presence to broadcast what the player is doing:- Define presence enumerations and string sets in Partner Center.
- Update presence with
XblPresenceSetPresenceAsyncwhen the player transitions to a new state (menu, level, match). - Query other players with
XblPresenceGetPresenceAsyncorXblPresenceGetPresenceForMultipleUsersAsync.
S2S authentication
Use Microsoft Entra ID + User Store IDs for service-to-service authentication when your backend needs to call Microsoft Store APIs on behalf of a player:- Two User Store ID types:
UserCollectionsID— authenticates with the Microsoft Store Collections service (entitlement inventory).UserPurchaseID— authenticates with the Microsoft Store Purchase service (transaction verification).
- Your service acquires an Entra ID access token and uses it, together with the User Store ID from the game client, to call the Store REST APIs.
- Recommended for new titles; X-token-based authentication is legacy.
User-generated content
Use PlayFab Economy v2 for UGC catalogs on top of a first-party or third-party asset pipeline:- Authenticate the player with PlayFab.
- Generate signed upload URLs with
CreateUploadUrls. - Create a draft item with
CreateDraftItem(Type:ugc). - Enumerate draft items via
GetEntityDraftItems. - Publish with
PublishDraftItem— published items appear in the public catalog. - Check status with
GetItemPublishStatus. - Query the catalog with
SearchItems(ODataFilter,OrderBy,Select).
Related
Related API documentation
- XSAPI overview — identity, presence, social, achievements, leaderboards
- XStore API reference — Microsoft Store commerce
- PlayFab overview — PlayFab REST + SDK surface
