Logo Ludusavi

Version License: MIT

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.

Demo

GUI

GUI demo of previewing a backup

CLI

CLI demo of previewing a backup

Installation

Requirements

Ludusavi is available for Windows, Linux, and Mac. However, your computer must support one of these graphics systems: Vulkan, DirectX (11 or 12), or Metal. (Experimental builds with OpenGL support are also available - give them a try if the standard builds don't work on your system.)

Methods

You can install Ludusavi one of these ways:

Notes

If you are on Windows:

If you are on Mac:

Usage

GUI

Backup mode

Restore mode

Custom games

Other settings

CLI

Run ludusavi --help for the full usage information.

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:

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.

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 ~/.config/ludusavi (Windows: C:/Users/<your-name>/.config/ludusavi). If you're using the GUI, you don't need to worry about this at all, since the GUI will automatically update the config file as needed. However, if you're using the CLI exclusively, you'll need to edit config.yaml. Here are the available settings (all are required unless otherwise noted):

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.