XgpSaveTools
NET6 Lib and ConsoleApp for extracting and replacing Xbox Game Pass for PC games save filess
Install / Use
/learn @brodrigz/XgpSaveToolsREADME
🎮 XGP‑Save‑Tools 🎮
A .NET version of XGP-save-extractor rebuilt with new features, allows you to extract or replace Xbox Game Pass (PC) save files, enabling easy transfer of game saves between Xbox Game Pass and Steam/Epic versions (on supported games).
This version includes:
- Generic handler (allows extraction of saves from ANY game as long as it does not require any extra encryption)
- Replace mode (helps you to transfer saves from steam/epic into Xbox Game Pass)
- Custom directories
- Better menu navigation
Requirements
- .NET 6 runtime
- Windows 10/11 (UWP package layout located at
%LOCALAPPDATA%\Packages)
Extensibility
Most games will work using the generic handler.
Obs: If a game is not registered on the
games.json, it's extracted files names will have no extension suffixes.
Some games require unique handlers, those have to be implemented.
Configure supported games via a strongly-typed games.json file:
{
"games": [
{
"name": "Atomic Heart",
"package": "FocusHomeInteractiveSA.579645D26CFD_4hny5m903y3g0",
"handler": "1c1f",
"handler_args": { "suffix": ".sav" }
},
{
"name": "Starfield",
"package": "BethesdaSoftworks.Starfield_8wekyb3d8bbwe",
"handler": "starfield"
}
// Add or tweak game entries here...
]
}
package: Folder path within%LOCALAPPDATA%\Packageshandler: Built‑in save format handlers (generic,1c1f,1cnf,starfield, etc.)handler_args: Handler-specific configurations such as file extension ({ "suffix": ".sav" })
If a game requires a new format handler, you must implement the ISaveHandler interface.
How to Use
Extract Saves
- Select your game from the available list, or enter a path to your
wgsdirectory. - Select your user container ID.
- Choose Extract Files.
- The tool will display each
OutputNameand generate a ZIP file in the root directory.
Replace a Save Entry
- Select Replace Entry.
- Choose the save slot to overwrite.
- Provide the file path to your new save file.
- Keep replacing slots until you're done, then select Finish
- The tool automatically backs up the container before overwriting every selected file.
Caution: Not all listed entries are save slots, some files contain crucial general information and can break the game if replaced.
Build & Installation
You can grab the latest pre-built executable release at https://github.com/brodrigz/XgpSaveTools/releases/latest
Build from Source
If you prefer to build yourself, clone the repo and publish with .NET 6:
dotnet publish Xgpst_ConsoleApp/Xgpst_ConsoleApp.csproj \
-c Release \
-r win-x64 \
--self-contained false \
/p:PublishSingleFile=true \
--output bin/Release/net6.0/publish/win-x64
Acknowledgments & Contributions
- Inspired by Z1ni’s Python XGP-save-extractor.
- @snoozbuster for reverse engineering container format at https://github.com/goatfungus/NMSSaveEditor/issues/306.
- Contributions and pull requests are very welcome. Please submit issues or pull requests with your game’s package name, handler type, and relevant samples.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
