Skip to content

brodrigz/XgpSaveTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 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%\Packages
  • handler: 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

  1. Select your game from the available list, or enter a path to your wgs directory.
  2. Select your user container ID.
  3. Choose Extract Files.
  4. The tool will display each OutputName and generate a ZIP file in the root directory.

Extracting Saves

🔄 Replace a Save Entry

  1. Select Replace Entry.
  2. Choose the save slot to overwrite.
  3. Provide the file path to your new save file.
  4. Keep replacing slots until you're done, then select Finish
  5. The tool automatically backs up the container before overwriting every selected file.

Replacing Saves

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


About

NET6 Lib and ConsoleApp for extracting and replacing Xbox Game Pass for PC games save filess

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages