Logo Ludusavi

Ludusavi is a tool for backing up your PC video game save data, written in Rust. It is cross-platform and supports multiple game stores.

Features

This tool uses the Ludusavi Manifest for info on what to back up, and it will automatically download the latest version of the primary manifest. The data is ultimately sourced from PCGamingWiki, so please contribute any new or fixed data back to the wiki itself, and your improvements will be incorporated into Ludusavi's data as well.

If you'd like to help translate Ludusavi into other languages, check out the Crowdin project.

Demo

GUI

GUI demo of previewing a backup

CLI

CLI demo of previewing a backup

Installation

Requirements

Methods

You can install Ludusavi one of these ways:

Notes

If you are on Windows:

If you are on Mac:

Usage

GUI

Backup mode

Click to expand

Restore mode

Click to expand

Custom games

Click to expand

Other settings

CLI

Run ludusavi --help for the full usage information.

API output

Click to expand

CLI mode defaults to a human-readable format, but you can switch to a machine-readable JSON format with the --api flag. In that case, the output will have the following structure for the backup/restore commands:

The backups command is similar, but without overall, and with each game containing {"backups": [ {"name": <string>, "when": <string>} ]}

Note that, in some error conditions, there may not be any JSON output, so you should check if stdout was blank before trying to parse it. If the command line input cannot be parsed, then the output will not be in a stable format.

Example:

json { "errors": { "someGamesFailed": true, }, "overall": { "totalGames": 2, "totalBytes": 150, "processedGames": 1, "processedBytes": 100, }, "games": { "Game 1": { "decision": "Processed", "files": { "/games/game1/save.json": { "bytes": 100 } }, "registry": { "HKEY_CURRENT_USER/Software/Game1": { "failed": true } } }, "Game 2": { "decision": "Ignored", "files": { "/games/game2/save.json": { "bytes": 50 } }, "registry": {} } } }

Configuration

Ludusavi stores its configuration in the following locations:

Alternatively, if you'd like Ludusavi to store its configuration in the same place as the executable, then simply create a file called ludusavi.portable in the directory that contains the executable file. You might want to do that if you're going to run Ludusavi from a flash drive on multiple computers.

If you're using the GUI, then it will automatically update the config file as needed, so you don't need to worry about its content. However, if you're using the CLI exclusively, then you'll need to edit config.yaml yourself.

Here are the available settings (all are required unless otherwise noted):

Click to expand

Example:

yaml manifest: url: "https://raw.githubusercontent.com/mtkennerly/ludusavi-manifest/master/data/manifest.yaml" etag: null roots: - path: "D:/Steam" store: steam backup: path: ~/ludusavi-backup restore: path: ~/ludusavi-backup

Ludusavi also stores manifest.yaml (info on what to back up) here. You should not modify that file, because Ludusavi will overwrite your changes whenever it downloads a new copy.

Comparison with other tools

There are other excellent backup tools available, but not a singular cross-platform and cross-store solution:

Development

Please refer to CONTRIBUTING.md.