SaveState v2.8 - The Set & Forget Update
This release focuses on automation and background execution. SaveState 2.8 introduces highly requested background automatic backups, file safety monitors to prevent write corruption, opt-in per-profile cloud syncing, and upgraded game save detection algorithms.
Changelog:
Automated Backups
SaveState can now automatically track and back up your saves in the background without requiring manual intervention.
- Flexible Triggers: Configure backups to run on a fixed schedule (interval-based) or automatically when a game process closes, powered by a lightweight, dependency-free process tracking system for Windows and Linux.
- Per-Profile Configuration: Tailor intervals to your needs from the profile editor. Set critical games to back up frequently while keeping lighter titles on a relaxed multi-hour schedule.
- Background Tray Persistence: Designed to run seamlessly from the system tray. The app prompts you to enable "minimize to tray on close" when turning on auto-backups to ensure uninterrupted protection.
- Silent Execution: Automated worker-thread actions suppress graphical popups to keep gameplay immersive, running silently while logging events under the hood.
Per-Profile Cloud Syncing & Optimization
Bring a seamless cloud backup experience to non-Steam games, emulation setups, and handheld devices like the Steam Deck.
- Opt-in Upload Sync: Automatically queue and request an online cloud upload right after a local automated backup completes successfully.
- API & Quota Protection: Enforces a minimum 15-minute sync interval and introduces a strict 15-minute auto-upload cooldown per profile to protect connection bandwidth and cloud API limits.
- Smart Caching & Queuing: Optimized providers (Google Drive, FTP, Git, SMB, WebDAV) now utilize in-memory folder caching and debouncing to prevent repetitive network requests.
- Visual Status Indicators: The main profile list now displays blinking warning dots if a profile has online sync enabled but the configured cloud provider or network connection is offline.
Smart Backup Safety & Quiescence
Automated backups are now designed to protect your data from write conflicts and archive corruption.
- Save-in-Use Detection: Integrates a safety engine that detects if a game is actively writing to its save files, executing a quiescence check before archiving.
- Smart Postponing: If a file is busy or unstable, the engine safely skips the backup cycle and retries on the next interval without breaking your trigger schedules.
- Duplication Prevention: Compares timestamps and hashes against your last backup to skip creating identical, duplicate archives if the save data has not changed.
Smarter Save & Title Detection
The deep scanner has received structural upgrades to make discovering games and profiles faster and more accurate.
- Nested Structure Scoring: Detects complex save structures (like nested gamedata and savedata subdirectories used by certain titles), granting them scoring bonuses to prioritize deep game layouts.
- Core-Title Matching: Better associates DLCs, expansions, and special game editions by looking for shared distinctive name prefixes and version tokens while preventing false positives.
- Boundary Safeguards: Added system boundaries that automatically stop parent-directory scanning at User Profile and AppData limits, preventing the scanner from sweeping unneeded system directories.
Fixes & Internals
- Project Directory Reorganization: Cleaned up the repository root by moving what used to be a massive amount of loose files into dedicated subfolders organized by category and type, making the codebase much easier to navigate and maintain.
- Dialog Spam Suppression: Blocked contextual setup prompts from firing during initial profile loads.
- Cloud Status Cleanliness: Resolved an issue causing persistent, incorrect out-of-sync/desync status flags.
Contributors & Special Thanks
This automation milestone was heavily inspired by community feature discussions and feedback. A big thank you to:
- @TPepperoni666 — for kicking off the discussion for a seamless cloud setup in issue #16
- @XargonWan — for the suggestions regarding folder watching and Steam Deck cross-saves in issue #42
- @Mahantor — for the detailed feature request outlining global vs per-profile backup intervals in issue #63