Repository navigation
v1.1.0
[1.1.0] - 2026-10-16
⚠️ Note: Save Manager depends on Encryption Manager.
Please install Encryption Manager first, otherwise the package may not work properly.
1. Via Git URL (Package Manager UI)
- Open Window -> Package Manager
- Click the + (plus) icon in the top left corner
- Select "Add package from git URL..."
- Paste the URLs below:
https://github.com/vanhaodev/unity-encryption-manager.git?path=Exported/com.vanhaodev.encryptionmanager#1.0.0
https://github.com/vanhaodev/unity-save-manager.git?path=Exported/com.vanhaodev.savemanager#1.1.0
2. Via manifest.json
-
Open file:
Packages/manifest.json -
Add these lines into "dependencies":
"com.vanhaodev.encryptionmanager": "https://github.com/vanhaodev/unity-encryption-manager.git?path=Exported/com.vanhaodev.encryptionmanager#1.0.0",
"com.vanhaodev.savemanager": "https://github.com/vanhaodev/unity-save-manager.git?path=Exported/com.vanhaodev.savemanager#1.1.0"- Save the file and return to Unity (it will auto import)
What's new
- Crash-safe & consistent: a crash while saving never corrupts or mixes saves; all keys load from the same save
- Transactions:
Save.BeginTransaction()+Commit()— save related keys together, or not at all - Await:
await Save.SetAsync(...)/await Save.FlushAsync()— wait until data is on disk (e.g. in-app purchases) - TryGet: tells a new player (
NotFound) apart from a broken save (Corrupt) - Security by default: AES-encrypted and signed; edited, swapped or renamed files are detected.
SaveEncryption.SetKey(secret, previousSecrets...)to use your own key and change it in updates without losing saves - Hooks:
SaveStarted,Saved,SaveFailed,IntegrityFailed,TransactionDiscarded— on the main thread - WebGL: saves spread over frames on the main thread
- Sample:
SaveHookLoggerlogs every hook to the Console
Breaking changes
- New save file layout: saves written by 1.0.0 are not loaded
Set/SetAsyncencrypt with AES by defaultSetAsyncreturnsTask(calls withoutawaitstill work, recompile needed)
Full guide: README