Skip to main content
This topic describes the predefined elements of a multiplayer session template, based on the session template version 107. These elements define settings for a multiplayer session. Contents

system

Return to the top of this topic.

capabilities

Capabilities are Boolean values that are optionally set in the session template. If no capabilities are needed, an empty capabilities property should be set in the template to prevent capabilities from being specified on session creation, unless the title needs dynamic session capabilities. Setting the userAuthorizationStyle capability to true causes the session defaults for readRestriction and joinRestriction to local instead of none. This means that titles must use search handles or transfer handles to join a game session. | true, false | false crossPlay | Indicates that the session supports crossplay between Windows PC, XBOX One, or XBOX Series devices. | true, false | true broadcast | Indicates that the session represents a broadcast. The name of the session must be the xuid of the broadcaster. Requires the large capability. | true, false | false team | Indicates that the session represents a tournament team. This capability can’t be set on large or gameplay sessions. | true, false | false arbitration | Indicates that the session must be created by a service principal that adds the arbitration server entry. Requires gameplay but can’t be set on large sessions. | true, false | false hasOwners | Indicates that the session has a security policy based on certain members being owners. | true, false | false searchable | Indicates that the session can be a target session of a search handle. If the userAuthorizationStyle and searchable capabilities are set, hasOwners must also be set. | true, false | false

Example: capabilities

Return to the top of this topic.

metrics

If the metrics properties aren’t specified, they default to the values that are needed to satisfy the QoS requirements. If the metrics properties are specified, the values must be sufficient to satisfy the QoS requirements. This element is only valid if the session has the connectivity capability set.

Example: metrics

Return to the top of this topic.

memberInitialization

If the memberInitialization property is set, the session expects the client system or title to perform initialization following session creation or as new members join the session. The time-outs and initialization stages are automatically tracked by the session, including QoS measurements if any metrics are set. These time-outs override the session’s reservation and ready time-outs for members that have initializationEpisode set. memberInitialization can’t be specified on large sessions. NOTE: The default duration is sufficient for normal title execution, but it might lead to join time-outs if a title is being debugged during the Multiplayer Session Directory (MPSD) flow. While debugging, override and increase this default value for the session.| 0 - n | 10000 measurementTimeout | Indicates the number of milliseconds that a session member has to upload measurements. A member that fails to upload measurements is marked with a failure reason of “timeout”. | 0 - n | 30000 evaluationTimeout | Indicates the number of milliseconds that an external evaluation has to upload measurements. | 0 - n | 5000 externalEvaluation | If true, indicates that the title code performs the evaluation of who can join based on QoS measurements. The multiplayer service doesn’t perform any QoS logic, and the title is responsible for advancing the initialization stage. Titles don’t typically need this. | true, false | false membersNeededToStart | The number of members needed to start the session only for initialization episode zero. | 1 - maxMembersCount | 1

Example: memberInitialization

Return to the top of this topic.

peerToPeerRequirements

Example: peerToPeerRequirements

Return to the top of this topic.

peerToHostRequirements

Example: peerToHostRequirements

Return to the top of this topic.

measurementServerAddresses

The set of potential server connection strings that should be evaluated. The connection strings must be lowercase. measurementServerAddresses can’t be specified on large sessions. The connection strings are defined in the following format. "<server name>": { "secureDeviceAddress": <device address> } where the device address is the base-64-encoded secure device address of the server.

Example: measurementServerAddresses

Return to the top of this topic.

cloudComputePackage (deprecated)

This property is deprecated because the XBOX Live Compute service is no longer available and has been discontinued. Specifies the properties of the cloud compute package to allocate. Requires that the cloudCompute capability is set.

Example: cloudComputePackage

Return to the top of this topic.

arbitration (deprecated)

This property is deprecated because the XBOX Live Compute service is no longer available and has been discontinued. Specifies the time-outs for the arbitration process. Requires that the arbitration capability is set. The arbitration start time is defined in a session in the /servers/arbitration/constants/system/startTime element.

Example: arbitration

Return to the top of this topic.

broadcastViewerTitleIds

Specifies an array of the title IDs of the titles that should always have read access to the broadcast session.

Example: broadcastViewerTitleIds

Return to the top of this topic.

ownershipPolicies

Specifies how to handle a session when the last owner leaves the session. Requires that the hasOwners capability is set.

Example: ownershipPolicies

Return to the top of this topic.
Last modified on August 20, 2026