A Python+Flask web tool for exploring or upgrading shapez 2 .spz2 save files.
Important
This tool is for research purposes on Shapez 2 game saves ONLY. Any illegal modification or cracking of the game itself destroys the game experience and should be avoided.
Use this tool at your own risk.
Shapez 2 is a highly acclaimed factory automation game. Its saves (.spz2) are standard ZIP archives containing a mix of readable JSON files and custom binary serialized files. This tool provides a safe, web-based interface for viewing game progress information stored in readable JSON files (such as savegame.json, local-player.json, research.json), or migrating data from older version saves to newer versions.
- Data Viewing: Upload
.spz2files and automatically extract their contents. - Legacy Save Migration: Safely migrate progress data from older game versions (0.0.7~0.1.1) to the new version (1.0+). For specific steps, please see the Save Upgrade and Migration (Online) or Save Upgrade and Migration (Flask) sections.
- Open the webpage of this project.
- A game save exported from Shapez 2 (theoretically supports all game save versions between 0.0.7~1.0.2).
Note
Refreshing the page will lose all the uploaded session because the webpage of this project does not store any information.
The game version 1.0 is declared officially to be completely incompatible with game saves generated in previous versions. Although players can switch to the legacy branch to continue accessing old game saves, in a vote of about 2500 people, approximately 15% of players still expressed that they could not easily accept this situation, which is a pity for players who hope to directly inherit older game saves.
The good news is, after my preliminary exploration, upgrading and migrating legacy saves is not entirely hopeless. The new save format indeed changed a lot of content, and the entire map section has been completely reworked, which means that all buildings on the map, including trains and train tracks, cannot be directly migrated. Fortunately, most blueprints are compatible, so by following the steps below, you still have a way to solve this! In addition, in the save data, ResearchProgress, LinearUpgrades, GoalLevels, and HUDData also have significant changes and require safe migration using this tool.
Note
This solution is not and will not be perfect. Always remember to backup your game saves.
Theoretically this tool supports upgrading and migrating all versions of game saves between 0.0.7~0.1.1. RegularGameMode has been tested.
- Launch the old version of the game and load the legacy save, select the buildings in the old save, and save them as a blueprint. (If you have many buildings, this step will make the computer very laggy, so please be patient and do not repeat operations.) Then export the old save you want to upgrade and migrate from the old version.
- Open webpage and upload the old save, select
savegame.json, find and open the nodeParameters, record theGameModeId(game mode) andSeed(map seed). - Continue to open
ScenarioParameters > MapGenerationParameters, take a note and write down all map generation parameters therein. - Upgrade to the new version of the game and launch it, create a new save, choose the same game mode as the old save, fill in the map seed recorded earlier, and set the map generation parameters on the left to the previously recorded parameters, and turn off SpiralGeneration.
- Save and export the newly created save, rename it to
template-v1.spz2. - Return to the webpage of this project tool, upload the
templateyou just saved in the Template section, and click the "Migrate" button at the bottom of the page. If everything is good, the page should automatically "download" a processed save. - Import this processed save into the new version of the game, and you should be able to see that most of the previous progress data has been migrated!
- Place your previously saved blueprints (again, if you have many buildings, this step will make the computer very laggy, so please be patient and do not repeat operations) at where they were on the map.
- Enjoy playing in the new version!
Prerequisites:
- Python 3.x (tested on version 3.12)
- pip
- A game save exported from Shapez 2 (theoretically supports all game save versions between 0.0.7~1.0.2)
Installation Steps:
# Clone and enter the project directory
cd shapez2-save-editor
# Install the required Flask dependencies
pip install -r requirements.txt- Start the Flask server:
python3 app.py- Open your browser and visit: http://127.0.0.1:6004.
- Follow the prompts to open your Shapez 2
.spz2save file. - View the data within it in the browser tabs.
The game version 1.0 is declared officially to be completely incompatible with game saves generated in previous versions. Although players can switch to the legacy branch to continue accessing old game saves, in a vote of about 2500 people, approximately 15% of players still expressed that they could not easily accept this situation, which is a pity for players who hope to directly inherit older game saves.
The good news is, after my preliminary exploration, upgrading and migrating legacy saves is not entirely hopeless. The new save format indeed changed a lot of content, and the entire map section has been completely reworked, which means that all buildings on the map, including trains and train tracks, cannot be directly migrated. Fortunately, most blueprints are compatible, so by following the steps below, you still have a way to solve this! In addition, in the save data, ResearchProgress, LinearUpgrades, GoalLevels, and HUDData also have significant changes and require safe migration using this tool.
Note
This solution is not and will not be perfect. Always remember to backup your game saves.
Theoretically this tool supports upgrading and migrating all versions of game saves between 0.0.7~0.1.1. RegularGameMode has been tested.
- Launch the old version of the game and load the legacy save, select the buildings in the old save, and save them as a blueprint. (If you have many buildings, this step will make the computer very laggy, so please be patient and do not repeat operations.) Then export the old save you want to upgrade and migrate from the old version.
- Open the old save with this project tool, select
savegame.json, find and open theParametersnode, and record theGameModeId(game mode) andSeed(map seed). - Continue to open
ScenarioParameters > MapGenerationParameters, take a note and write down all map generation parameters therein. - Upgrade to the new version of the game and launch it, create a new save, choose the same game mode as the old save, fill in the map seed recorded earlier, and set the map generation parameters on the left to the previously recorded parameters, and turn off SpiralGeneration.
- Save and export the newly created save, rename it to
template-v1.spz2, and place it in the folder of this project. - Return to the web page of this project tool and click the "Migrate" button at the bottom of the page. If everything is good, the page should automatically "download" a processed save.
- Import this processed save into the new version of the game, and you should be able to see that most of the previous progress data has been migrated!
- Place your previously saved blueprints (again, if you have many buildings, this step will make the computer very laggy, so please be patient and do not repeat operations) at where they were on the map.
- Enjoy playing in the new version!
About AI: AI assistance involved; each code segment has undergone manual review and testing.
Need help? If you encounter any issues, please open an Issue.
Support project: ☕️ Buy Me a Coffee