RipperMoonToolKit updates are designed to protect local game state. The installer updates small toolkit files, but it does not delete or rewrite Wine prefixes, saves, Steam libraries, installed games, GPTK runtimes, or patched runners.
Before an install or update, install.zsh creates a timestamped backup under:
$GPTK_HOME/backups/rippermoon-update-YYYYmmdd-HHMMSS
The backup includes:
~/.rippermoon-gptk.env
~/.zshrc
~/bin/gptk-launch
~/bin/gptk-steam
~/bin/gptk-game
$GPTK_HOME/libexec/gptk-common.zsh
It also records protected state paths in protected-paths.tsv:
$GPTK_PREFIX_ROOT
$GPTK_GAMES_ROOT
$GPTK_EXTERNAL_ROOT
$GPTK_EXTERNAL_ROOT/Games
$GPTK_STEAM_LIBRARY
$GPTK_APP_PATH
$GPTK_RUNTIME
Those protected paths are recorded for audit. They are not overwritten by rollback.
If one of the small toolkit files did not exist before an update, the backup records it in absent.tsv. Rollback removes those newly created toolkit files so the local install can return to its previous shape.
Create a backup without installing:
./install.zsh --skip-deps --backup-onlyList available backups:
./install.zsh --list-backupsRollback toolkit scripts and config from a backup:
./install.zsh --rollback rippermoon-update-YYYYmmdd-HHMMSSRollback from an absolute backup path:
./install.zsh --rollback "$GPTK_HOME/backups/rippermoon-update-YYYYmmdd-HHMMSS"Install without creating a backup:
./install.zsh --no-backupFor one-off migrations, add extra files or folders to the backup with a semicolon-separated list:
RIPPERMOON_BACKUP_EXTRA_PATHS="$HOME/WinePrefixes/Steam/drive_c/users/$USER/AppData/Roaming/EldenRing;$HOME/GPTK/runners/gptk-dsound-nocap-20260513" \
./install.zsh --skip-deps --backup-onlyExtra snapshots are stored under extra/ inside the backup. They are not restored automatically, because saves can change after a rollback point.
Use this flow before updating an existing install:
cd RipperMoonToolKit
./install.zsh --skip-deps --backup-only
./install.zsh --skip-deps
./install.zsh --list-backupsIf the new version behaves badly:
cd RipperMoonToolKit
./install.zsh --rollback rippermoon-update-YYYYmmdd-HHMMSSThe rollback command preserves the current file as *.pre-rollback-YYYYmmdd-HHMMSS before restoring the backed-up version.