- Added:
-
Support for multiple full and differential backups per game.
-
Support for compressed zip backups.
-
Translations for German, Spanish, Filipino, Italian, Polish, and Brazilian Portuguese. (Thanks to contributors on the Crowdin project)
Note that some of these translations are still incomplete. Also, when using some translations, GUI sizing may not be optimal, but this will be further refined in the future.
The following translations have also been added, but only have experimental support because of a technical limitation. You can enable them by editing the config file directly: Arabic (
ar-SA
), Simplified Chinese (zh-Hans
) -
During first-time setup, Ludusavi will now automatically detect roots for secondary Steam library folders (Windows/Linux/Mac) and non-default Epic install folders (Windows).
-
It is now possible to ignore paths for backup across all games and/or for specific games.
-
GUI: Button to back up or restore an individual game from the list on demand.
-
GUI: Button to find and add any missing roots. This is the same functionality as the automatic first-time setup, but is now available on demand.
-
Option to sort the game list by file size and to reverse the sorting.
-
Support for Prime Gaming roots.
-
Support for globs in root paths.
-
On Windows, the version field is now set in the executable properties.
-
On Windows, the executable icon is now included in the crates.io release as well.
-
CLI: Blank line between games for better readability.
-
- Fixed:
- GUI: Unable to start on KDE 5.25.3 when using Wayland.
- GUI: Performance has been improved generally, including for very large results (1,000+ games).
- GUI: Unresponsive while deleting the backup directory with
merge
disabled if the folder was very large. - GUI: Improved spacing/padding consistency between some elements.
- Removed
/games
from the end of the default Uplay (Ubisoft Connect) root paths. The new default isC:/Program Files/Ubisoft/Ubisoft Game Launcher
. - Crash when launching Ludusavi after the user manually deleted the manifest.
- If duplicate files were found while a game's file list were already open, then the files would not immediately be marked as duplicates until you closed and reopened the file list.
- Changed:
-
Localization now uses Project Fluent instead of pure Rust code internally. If you'd like to help translate Ludusavi, check out the Crowdin project.
-
Previously, as an optimization, Ludusavi would remember the games it found from its first backup/preview and only re-check those games on subsequent backups, until certain configuration changes were made (e.g., adding a root). However, this had the side effect that newly installed games may not be detected right away without an obvious reason why.
Now, every preview will trigger a full scan. After a preview, doing a backup will only include the games found in the preview. If you then do another preview or consecutive backup, then it will be a new full scan. This ensures Ludusavi will find newly installed games, but it still optimizes for the common case of doing a preview immediately followed by a backup.
-
Previously, when Ludusavi backed up a symlink, the backup would contain a normal folder with the symlink's name and copies of any files inside of the symlink target. If the symlink target itself were also included in the list of things to back up, then the same files would be duplicated (once under the original directory name and once under the symlink name).
Now, Ludusavi will still follow symlinks and back up their targets, but it will not back up the symlink itself or duplicate the files.
-
When looking for game install folders, Ludusavi previously checked either the
installDir
entries from the manifest or the game's name, but never both at the same time, leading to some missed saves when theinstallDir
list was incomplete or was not accurate for all stores.Now, Ludusavi applies a heuristic to find any install folder that is sufficiently similar to the game's title or any known
installDir
value. It picks the best match across all games that the install directory could possibly represent. -
Previously, for Steam roots, Ludusavi assumed that the
<storeUserId>
would be a series of numbers. However, for some games, this ID may be from another launcher and may not conform to those rules. Now, Ludusavi just checks for any text, like it does for non-Steam roots. -
The
merge
setting is now enabled by default. -
The app window's minimum size has increased from 640x480 to 800x600. It may be returned to 640x480 in the future, but there are currently some limitations that make it look poor at that size.
-
GUI: Previously, the overall game/size numbers would stay at the values from the last scan, and if you started (de)selecting games, then a separate badge would show the game/size totals for the new selection. Now, the main numbers update progressively and the badge has been removed.
-
GUI: When you launch the program, if the config file is invalid, it gets reset with a default copy. Previously, this would delete the invalid copy without any means of getting it back. Now, the invalid copy is renamed to
config.invalid.yaml
in case you would like to inspect/fix it.
-