> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartyRegionsChangedStateChange

> Information specific to the *RegionsChanged* type of state change.

Information specific to the *RegionsChanged* type of state change.

## Syntax

```cpp theme={null}
struct PartyRegionsChangedStateChange : PartyStateChange {  
    PartyStateChangeResult result;  
    PartyError errorDetail;  
}  
```

### Members

**`result`**   [PartyStateChangeResult](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult)

Indicates whether a background operation to query the list of supported regions and the latency to each region succeeded, or provides the reason that it failed.

When the result is [PartyStateChangeResult::Succeeded](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult), the region list provided by [PartyManager::GetRegions()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions) is populated with the results of the operation. On failure, the region list provided by PartyManager::GetRegions() is empty. <br /><br /> If the result is [PartyStateChangeResult::FailedToBindToLocalUdpSocket](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult), the library couldn't bind to the local UDP socket specified in the [PartyOption::LocalUdpSocketBindAddress](/services/playfab/multiplayer/networking/reference/enums/partyoption) option. The title must clean up its instance of the library, update the [PartyOption::LocalUdpSocketBindAddress](/services/playfab/multiplayer/networking/reference/enums/partyoption) option to a valid, available bind address, and reinitialize the library.

**`errorDetail`**   PartyError

A diagnostic value providing more troubleshooting information regarding any potential error condition.

The human-readable form of this error detail can be retrieved via [PartyManager::GetErrorMessage()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_geterrormessage).

## Remarks

Retrieving the list of available regions and measuring connection quality to them occurs automatically in the background. This operation is first initiated when [PartyManager::Initialize()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_initialize) is called unless the [PartyOption::RegionUpdateConfiguration](/services/playfab/multiplayer/networking/reference/enums/partyoption) option was used to configure an update mode of [PartyRegionUpdateMode::Deferred](/services/playfab/multiplayer/networking/reference/enums/partyregionupdatemode), in which case region updates may not happen at all. Deferred region updates only occur if the application calls [PartyManager::CreateNewNetwork()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork) with a zero entry region array, or isn't connected to an existing network but calls [PartyLocalChatControl::PopulateAvailableTextToSpeechProfiles()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_populateavailabletexttospeechprofiles), [PartyLocalChatControl::SetTextToSpeechProfile()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settexttospeechprofile), or [PartyLocalChatControl::SetTranscriptionOptions()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions) with option flags that include [PartyVoiceChatTranscriptionOptions::TranscribeSelfRegardlessOfNetworkState](/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionoptions). The [PartyOption::RegionUpdateConfiguration](/services/playfab/multiplayer/networking/reference/enums/partyoption) option can also be used to configure the interval after which the regions are refreshed. <br /><br /> The amount of time it takes to retrieve the list of available regions and measure connection quality to them is dependent on many environmental or dynamic factors, and whether the [PartyOption::RegionQualityMeasurementConfiguration](/services/playfab/multiplayer/networking/reference/enums/partyoption) option was used to modify low-level measurement settings. The *totalMeasurementTimeoutInMilliseconds* field in the [PartyRegionQualityMeasurementConfiguration](/services/playfab/multiplayer/networking/reference/structs/partyregionqualitymeasurementconfiguration) structure is used to configure the worst case maximum timeout before considering all measurements complete and generating this state change.

## Requirements

**Header:** Party.h

## See also

[Party members](/services/playfab/multiplayer/networking/reference/party_members)\
[PartyManager::GetRegions](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions)


## Related topics

- [PartyManager::GetRegions](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions.md)
- [PartyRegionUpdateConfiguration](/services/playfab/multiplayer/networking/reference/structs/partyregionupdateconfiguration.md)
- [PartyRegionQualityMeasurementConfiguration](/services/playfab/multiplayer/networking/reference/structs/partyregionqualitymeasurementconfiguration.md)
- [PartyRegionUpdateMode](/services/playfab/multiplayer/networking/reference/enums/partyregionupdatemode.md)
- [PlayFab Party QoS measurements](/services/playfab/multiplayer/networking/concepts-regions.md)
