Skip to content

Unlock achievements in Factorio save files by automatically modifying and repacking saves disabled by console commands or map editor usage.

License

Notifications You must be signed in to change notification settings

louanfontenele/FactorioSaveGameEnableAchievements

 
 

Repository files navigation

🚀 FactorioSaveGameEnableAchievements

This project is a console application that modifies Factorio save files to re-enable achievements disabled by commands or map editor.


✨ Features

  • 🧐 Automatically extracts save files.
  • 🔍 Modifies data to re-enable achievements.
  • 🗂 Backs up the original save file.
  • 📦 Recompresses the save file with a versioned zip.

🗃️ Requirements

  • .NET 8.0 SDK
  • Visual Studio or compatible C# IDE
  • Factorio save files (.zip format)

🧑‍💻 How to Compile and Run

1. Clone the Repository

git clone https://github.com/louanfontenele/FactorioSaveGameEnableAchievements
cd FactorioSaveGameEnableAchievements

2. Build the Project

dotnet build

3. Run the Program

dotnet run

Alternatively, open the solution file in Visual Studio.


🕹️ How to Use

  1. Run the application.
  2. Enter the path to the save file (e.g., %appdata%\Factorio\saves\mysave.zip).
  3. The program modifies the save and creates a backup with .bak.

📊 Automated Release Process

  • Changelog Generation: A changelog is automatically created with each release.
  • Versioning: Semantic versioning is used ().
  • Release Output: The zip follows the format:
FactorioSaveGameEnableAchievements-<version>.zip

🔧 Commit Format (For Changelog)

Use the following format to categorize commits:

git commit -m "Feature: Add new mechanic"
git commit -m "Fix: Resolve save crash"
git commit -m "Update: Improve save structure"
git commit -m "Remove: Remove deprecated feature"

📦 Full Changelog

Check the Releases Section.
Compare full changes here.


📊 Status

Release Status


📝 Notes

  • Ensure the save file is not in use by Factorio.
  • This tool modifies saves that disable achievements.

📩 Contact

For questions, open an issue or contact directly via GitHub.