CMZ360ToPCWorldConverter is a small CastleMiner Z utility for copying encrypted Xbox 360 / older-style world save files from a local Worlds folder into an unprotected OutputWorlds folder that the PC version can attempt to load.
This project is best understood as a save decryption/import helper, not a full world-upgrade tool.
When run, the converter:
- Prompts for the original owner identifier: either an Xbox gamertag or a SteamID64.
- Builds the CastleMiner Z save key using the entered value plus the original
CMZ778suffix. - Recursively reads encrypted files from the local
Worldsfolder. - Writes unprotected copies to matching paths under
OutputWorlds. - If the entered value looks like a gamertag instead of a SteamID64, patches each converted
world.infofile with a small PC-compatibility header and blank PC server fields.
This tool does not fully upgrade a world to the latest CastleMiner Z world format.
CastleMiner Z for PC already contains compatibility logic for older world-info and chunk formats. After this converter makes a world readable, the PC game should handle the real upgrade when the world is loaded and saved normally.
This tool also does not extract saves directly from an Xbox 360 device, profile, or storage container. You need to provide the world files/folders yourself.
CMZ360ToPCWorldConverter/
├─ BuildRelease.bat
├─ LICENSE
├─ README.md
└─ CMZ360ToPCWorldConverter/
├─ CMZ360ToPCWorldConverter.csproj
├─ Program.cs
├─ Properties/
│ └─ AssemblyInfo.cs
├─ ReferenceAssemblies/
│ └─ DNA.Common.dll
├─ WorldData/
│ └─ WorldInfo.cs
└─ _Images/
└─ Preview.png
Runtime folders are created in the program's current working directory:
Worlds/ Put the original encrypted world files here.
OutputWorlds/ Converted files are written here.
When running the built executable directly, place Worlds beside the executable. When running from Visual Studio, the current working directory is usually the build output folder.
- Back up the original world files and your current PC CastleMiner Z save folder.
- Build the project or download/run a release build.
- Create a folder named
Worldsin the program's working directory. - Copy the source world folder/files into
Worlds. - Run
CMZ360ToPCWorldConverter.exe. - Enter the original gamertag or SteamID64 when prompted.
- Check
OutputWorldsfor the converted files. - Copy the converted world to the appropriate PC save location and let the game load/save it normally.
If the world already appears and loads correctly in the PC game, this converter is probably unnecessary.
The converter preserves the original project's simple owner-ID check:
- Values shorter than 17 characters are treated as gamertag-style input.
- 17-character values are treated as SteamID64-style input.
Gamertag-style input also triggers the world.info compatibility patch. SteamID64-style input only performs the decrypt/copy step.
The entered value must match the value originally used to protect the save. A wrong value usually causes load failures or corrupt output.
The project targets .NET Framework 4.8 and builds as x86.
The project references:
CMZ360ToPCWorldConverter/ReferenceAssemblies/DNA.Common.dll
Use the PC/Steam version of DNA.Common.dll that matches the CastleMiner Z version you are targeting. Do not replace it with an Xbox 360 assembly.
You can build the project directly with Visual Studio/MSBuild, or use:
BuildRelease.batThe release script searches for MSBuild through vswhere, rebuilds the project in Release|x86, stages the compiled output with README.md and LICENSE, and creates a release zip under:
Build/Release/
Program.cscontains the console entry point, owner-ID prompt, recursive file scanning, and encrypted-to-unprotected save copy logic.WorldData/WorldInfo.cscontains the lightweightworld.infowrapper used for the minimal compatibility patch.ReferenceAssemblies/DNA.Common.dllis kept separate from source files so the external game dependency is easy to identify._Images/Preview.pngcontains the README preview image.
The code intentionally keeps the converter small and close to the original behavior. Comments and regions are used to explain the risky parts without changing the save logic.
- Always keep backups before converting or copying worlds into your real PC save folder.
- This converter writes to
OutputWorlds; it does not directly modify the original files inWorlds. - The
world.infopatch is intentionally minimal. It rewrites a compatibility header and appends blank server message/password fields, but it does not rebuild a full modernworld.info. - The PC game should perform the actual world upgrade after it successfully loads and saves the converted world.
- Converted output may still fail if the input files are incomplete, already decrypted, from a different owner ID, or from an unsupported save/container format.
This project is licensed under the GNU General Public License v3.0 or later. See LICENSE for details.
