{"id":18569813,"url":"https://github.com/n-thumann/xbox-cloud-server-selector","last_synced_at":"2026-02-22T16:32:44.349Z","repository":{"id":153361798,"uuid":"606581617","full_name":"n-thumann/xbox-cloud-server-selector","owner":"n-thumann","description":"A browser extension to select the server region and IP version for Xbox Cloud Gaming","archived":false,"fork":false,"pushed_at":"2024-10-30T22:10:09.000Z","size":160,"stargazers_count":29,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T00:42:35.486Z","etag":null,"topics":["chrome","chrome-extension","edge","ipv6","xbox-cloud","xcloud"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/n-thumann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-25T23:06:17.000Z","updated_at":"2025-01-17T19:47:39.000Z","dependencies_parsed_at":"2024-05-22T22:03:33.019Z","dependency_job_id":null,"html_url":"https://github.com/n-thumann/xbox-cloud-server-selector","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Fxbox-cloud-server-selector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Fxbox-cloud-server-selector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Fxbox-cloud-server-selector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-thumann%2Fxbox-cloud-server-selector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n-thumann","download_url":"https://codeload.github.com/n-thumann/xbox-cloud-server-selector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248168329,"owners_count":21058817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","chrome-extension","edge","ipv6","xbox-cloud","xcloud"],"created_at":"2024-11-06T22:35:14.161Z","updated_at":"2025-10-29T22:07:35.038Z","avatar_url":"https://github.com/n-thumann.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xbox-cloud-server-selector\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eA browser extension to select the server region and IP version for Xbox Cloud Gaming\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://microsoftedge.microsoft.com/addons/detail/server-selector-for-xbox-/looadgdipbgeafcccmoagnbbgnjgeefp\"\u003e\n      \u003cimg alt=\"Users on Edge\" src=\"https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fmicrosoftedge.microsoft.com%2Faddons%2Fgetproductdetailsbycrxid%2Flooadgdipbgeafcccmoagnbbgnjgeefp\u0026query=%24.activeInstallCount\u0026logo=microsoftedge\u0026logoColor=white\u0026label=users%20on%20edge\u0026color=blue\u0026link=https%3A%2F%2Fmicrosoftedge.microsoft.com%2Faddons%2Fdetail%2Fserver-selector-for-xbox-%2Flooadgdipbgeafcccmoagnbbgnjgeefp\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://chrome.google.com/webstore/detail/server-selector-for-xbox/lanknfgmjkocejapddeibabjpdenkpnn\"\u003e\n      \u003cimg alt=\"Users on Chrome\" src=\"https://img.shields.io/chrome-web-store/users/lanknfgmjkocejapddeibabjpdenkpnn?logo=googlechrome\u0026logoColor=white\u0026label=users%20on%20chrome\u0026color=blue\u0026link=https%3A%2F%2Fchrome.google.com%2Fwebstore%2Fdetail%2Fserver-selector-for-xbox%2Flanknfgmjkocejapddeibabjpdenkpnn\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/46975855/228374614-ccbb02b8-251f-4007-8c40-3afe82c6c3c9.png\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://user-images.githubusercontent.com/46975855/228374604-1714b12c-4d71-43de-9700-ff3a4f0432c9.png\"\u003e\n      \u003cimg alt=\"Demo of xbox-cloud-server-selector\" src=\"https://user-images.githubusercontent.com/46975855/228374604-1714b12c-4d71-43de-9700-ff3a4f0432c9.png\"\u003e\n    \u003c/picture\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## Installation\n\n### Installing from store\n\nThe easiest way to install is downloading it from either [Microsoft Edge-Add-Ons](https://microsoftedge.microsoft.com/addons/detail/xbox-cloud-server-selector/looadgdipbgeafcccmoagnbbgnjgeefp) or the [Chrome Web Store](https://chrome.google.com/webstore/detail/xbox-cloud-server-selector/lanknfgmjkocejapddeibabjpdenkpnn).\n\n### Installing via Developer mode\n\n1. Download / clone this repository\n2. Run `npm install` and `npm run build`\n3. Open your browsers extensions (`edge://extensions/` / `chrome://extensions/`)\n4. Enable `Developer mode` (in the left sidebar in Edge, at the top right in Chrome)\n5. Click `Load Unpacked` and select the `dist` directory of this repository\n\nNote that Edge / Chrome version 111 or higher is required due to [this feature](https://chromium-review.googlesource.com/c/chromium/src/+/4119014) being used.\n\n## Usage\n\nSelect the region and IP version as desired, then quit any active Xbox Cloud Gaming session and reload Xbox Cloud Gaming to apply the changes.\n\n## Confirming functionality\n\nInstall this extension, select e.g. IPv6 as IP version. Then start a capture in [Wireshark](https://www.wireshark.org/) and a game on [xbox.com/play](https://www.xbox.com/play). You'll see lots of UDP packets via IPv6 instead of IPv4.\nYou can also select a different region - preferably far away from your actual location for testing - and start a Traceroute to the IP you see in the Wireshark capture. You'll see the packets being routed towards the selected region.\n\n## How it works\n\nThis extension overwrites the [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch) method to intercept requests to the Xbox servers.\nWhen loading [xbox.com/play](https://www.xbox.com/play), a POST request is made to `https://xgpuweb.gssv-play-prod.xboxlive.com/v2/login/user` for Game Pass Ultimate users or `https://xgpuwebf2p.gssv...` for Free to Play users.\nThe response contains a list of all regions with one of them marked as the default region (shortened):\n\n```json\n{\n  \"offeringSettings\": {\n    \"regions\": [\n      {\n        \"name\": \"WestEurope\",\n        \"baseUri\": \"https://weu.core.gssv-play-prod.xboxlive.com\",\n        \"networkTestHostname\": \"weu.gssv-fastlane-prod.xboxlive.com\",\n        \"isDefault\": true,\n        \"systemUpdateGroups\": null,\n        \"fallbackPriority\": -1\n      }\n    ]\n  }\n}\n```\n\nIt can be manipulated to force only a specific region to be available to the client.\n\nAfter starting starting a game, a session will be created. Right after the Xbox logo and sound appear, the ICE candidates are requested from `https://[region].core.gssv-play-prod.xboxlive.com/v5/sessions/cloud/[session UUID]/ice`.\nThe response contains two candidates, one for IPv4 (with a higher priority of 100) and one for IPv6 (with a lower priority of 1).\n\n```json\n{\n  \"exchangeResponse\": \"[{\\\"candidate\\\":\\\"a=candidate:1 1 UDP 100 13.104.106.140 1071 typ host \\\",\\\"messageType\\\":\\\"iceCandidate\\\",\\\"sdpMLineIndex\\\":\\\"0\\\",\\\"sdpMid\\\":\\\"0\\\"},{\\\"candidate\\\":\\\"a=candidate:2 1 UDP 1 2603:1020:703:66::ADB:1931 9002 typ host \\\",\\\"messageType\\\":\\\"iceCandidate\\\",\\\"sdpMLineIndex\\\":\\\"0\\\",\\\"sdpMid\\\":\\\"0\\\"},{\\\"candidate\\\":\\\"a=end-of-candidates\\\",\\\"messageType\\\":\\\"iceCandidate\\\",\\\"sdpMLineIndex\\\":\\\"0\\\",\\\"sdpMid\\\":\\\"0\\\"}]\",\n  \"errorDetails\": null\n}\n```\n\nIt can be manipulated so that e.g. the IPv4 candidate is dropped and the session can only be established via the remaining IPv6 candidate.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn-thumann%2Fxbox-cloud-server-selector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn-thumann%2Fxbox-cloud-server-selector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn-thumann%2Fxbox-cloud-server-selector/lists"}