LinuxCommandLibrary

ludusavi

Back up game saves

TLDR

Backup games

$ ludusavi backup --path [path/to/backup]
copy

Restore games
$ ludusavi restore --path [path/to/backup] ["game1" "game2" ...]
copy

List backups
$ ludusavi backups --path [path/to/backup]
copy

Wrap launcher game
$ ludusavi wrap --gui --infer [heroic|lutris|steam] -- [game_launch_commands]
copy

Wrap standalone game
$ ludusavi wrap --gui --name [name] -- [game_launch_commands]
copy

SYNOPSIS

ludusavi [OPTIONS] [COMMAND]

Common Commands:
  backup         Back up game saves
  restore         Restore game saves
  dry-run         Scan for games and show what would be backed up/restored
  scan           List all supported games and their save paths
  find           Search for a specific game
  changelog       Show recent changes
  api             Start the API server
  launch          Launch the GUI

PARAMETERS

--path
    Specify the root directory for backups.

--output
    Specify a path for output files (e.g., dry-run report).

--force
    Overwrite existing backups/saves without confirmation.

--merge
    When restoring, merge with existing saves rather than overwriting.

--by-game
    Filter by specific game name for backup/restore.

--by-id
    Filter by specific game ID for backup/restore.

--by-name
    Filter by specific game name for backup/restore (alias for by-game).

--no-confirm
    Skip confirmation prompts.

--config
    Specify a custom path for the configuration file.

--log
    Specify a path for logging.

--verbosity
    Set the logging verbosity (e.g., info, debug, trace).

--roots
    Add custom root directories for scanning for games.

--no-scan
    Skip the game scan when launching the GUI.

--no-cli
    Run only the GUI (when launching from CLI).

--portable
    Use portable mode (config/saves in current directory).

--update-manifest
    Download the latest game manifest for save locations.

DESCRIPTION

Ludusavi is a free, open-source command-line and GUI utility designed to back up and restore game save data for PC games. It automates the process of finding and preserving save files, which can often be scattered across various directories and obscure locations by different game launchers (like Steam, GOG, Epic Games Store, or standalone executables). It supports a vast database of known game save locations and allows users to define custom paths. Ludusavi aims to simplify the migration of game saves between different systems or after reinstallation, ensuring players don't lose their progress.

CAVEATS

Ludusavi is a third-party application, not a standard Linux distribution utility. It needs to be installed separately (e.g., via Cargo, pre-compiled binaries, or Flatpak).
While it has a large database of known game save locations, it may not cover every single game, especially obscure or newly released titles, requiring manual configuration.
For proper function, Ludusavi needs permissions to read and write to game save directories, which can sometimes be in protected user directories.
The manifest.yaml file, which contains game save definitions, needs to be updated periodically to ensure coverage of new games or changes in save locations.

INSTALLATION

Ludusavi can be installed in several ways:
From source via Cargo: cargo install ludusavi
Pre-compiled binaries: Download executable from GitHub releases.
Flatpak: flatpak install org.cxx.Ludusavi
AUR (Arch Linux): Available in the Arch User Repository.

CONFIGURATION

The application uses a config.yaml file (usually located in ~/.config/ludusavi/ on Linux) where users can define custom roots for scanning games, specify ignored games or files, and manage other settings. This allows for fine-tuning its behavior beyond command-line arguments.

MODES OF OPERATION

Ludusavi provides both a command-line interface (CLI) for scripting and automation, and a graphical user interface (GUI) for easy visual management of backups and restores. The GUI can be launched directly or via the ludusavi launch CLI command.

BACKUP STRUCTURE

Backups are typically stored in a structured directory tree, with each game having its own directory containing the save files and potentially metadata. This makes it easy to browse and manage backed-up saves.

HISTORY

Ludusavi was initially developed by @cxx (now cxx.org) as an open-source project. Its primary motivation was to create a robust and user-friendly solution for managing PC game saves, addressing the common issue of scattered and hard-to-find save data across different games and launchers. The project gained traction in the PC gaming community due to its cross-platform compatibility (supporting Windows, macOS, and Linux) and extensive database of game save locations. It has seen continuous development, with regular updates to its game manifest and new features, establishing itself as a go-to tool for game save management.

SEE ALSO

rsync(1), tar(1), zip(1), cp(1)

Copied to clipboard