Skip to content

Repository files navigation

Save My Saves

Backup and restore PC game saves on Windows — find save folders, copy them to a USB drive, restore after reinstall. Supports Steam, Epic Games, GOG, Ubisoft Connect, and Heroic. Save paths from Ludusavi Manifest / PCGamingWiki. Electron · React · TypeScript · UI RU/EN · MIT.

Windows-приложение для поиска, бэкапа и восстановления игровых сохранений.

Перед переустановкой Windows скопируй сейвы на флешку или другой диск — и верни их на место после установки.

Save My Saves — backup PC game saves on Windows (Steam, Epic, GOG, Ubisoft)

Стек: Electron + Vite + React + TypeScript · UI RU/EN · MIT
Автор: dpovkex


Как это работает

  1. Скан — приложение ищет папки сохранений в Documents, Saved Games, AppData и My Games, а также в деревьях Steam (userdata), Epic/EGS, GOG Galaxy, Heroic/Legendary и Ubisoft Connect (savegames).
  2. Узнавание игр — каталог Ludusavi Manifest (MIT, данные PCGamingWiki) + локальные оверрайды, эвристика и популярные названия; затем матч с локальной библиотекой Steam для appId/обложек (fallback — публичный Steam Store API, ключ не нужен).
  3. Бэкап — копирует выбранные папки на внешний диск и пишет manifest.json с исходными путями.
  4. Восстановление — по манифесту возвращает сейвы на место, в том числе если имя пользователя Windows изменилось (C:\Users\Old → C:\Users\New).
  5. Скрытие — ложные срабатывания можно убрать из списка; файлы на диске при этом не удаляются.

Вкладки: Бэкап · Восстановить · Steam · Скрытые. Переключатель языка RU | EN в шапке (выбор сохраняется).
ПКМ по карточке — контекстное меню. Поиск по названию, дата последнего изменения сейва, прогресс и ETA при копировании.

UI (React)
  → window.api.*          (preload)
    → IPC handlers        (Electron main)
      → scan / backup / steam / exclusions

Данные приложения: %APPDATA%\save-my-saves\
(exclusions.json, steam-meta-cache.json, ludusavi/ — в git не входят)

Каталог путей сейвов при первом скане скачивается с GitHub (Ludusavi Manifest, MIT) и кэшируется локально (ludusavi/manifest.yaml, ludusavi/index.json).


Как запустить

Требования: Windows 10/11, Node.js 20+

git clone <url-репозитория>
cd save_my_saves
npm install
npm run dev

Открывай окно Electron с заголовком Save My Saves, а не вкладку браузера (localhost:5173) — в браузере нет window.api.

Команда Что делает
npm run dev Dev-режим (Vite + Electron)
npm run build Сборка renderer + typecheck main
npm run clean Удалить dist/, dist-electron/, release/
npm run dist:win Установщик Windows → release/

Установщик

npm run dist:win

Готовый setup: release/Save My Saves-Setup-1.0.0.exe (также release/win-unpacked/).

Если сборка падает с EPERM при rename (антивирус/индексация), собери во временный каталог:

npm run build
npx electron-builder --win --config.directories.output=%USERPROFILE%\sms-build-out

Структура проекта

save_my_saves/
├── electron/
│   ├── main.ts              # Окно, IPC
│   ├── preload.ts           # contextBridge → window.api
│   ├── scan/
│   │   ├── scanner.ts       # Поиск сейвов
│   │   ├── blacklist.ts     # Блэклисты, издатели
│   │   ├── gameKey.ts       # normalizeGameKey
│   │   └── paths.ts         # Корни и токены путей
│   ├── launchers/
│   │   └── discover.ts      # Steam / Epic / GOG / Heroic сейвы
│   ├── catalog/
│   │   ├── knownGames.ts    # Локальные оверрайды путей
│   │   ├── popularTitles.ts
│   │   └── ludusavi/        # Ludusavi Manifest (fetch/compile/expand)
│   ├── steam/
│   │   ├── steamMeta.ts     # Steam + обложки (library → storesearch)
│   │   └── library.ts       # Локальная библиотека Steam (vdf/acf)
│   ├── backup/
│   │   └── backup.ts        # Копирование / restore + manifest
│   └── exclusions/
│       └── exclusions.ts
├── src/
│   ├── App.tsx              # Состояние и wiring
│   ├── types.ts
│   ├── i18n/                # RU/EN словари + переключатель
│   ├── lib/                 # format, scanProgress
│   ├── components/          # вкладки, GameTile, меню
│   ├── styles.css
│   └── main.tsx
├── public/icon.png
├── build/icon.png
└── package.json

Что умеет

  • каталог путей Ludusavi Manifest / PCGamingWiki (MIT);
  • поиск сейвов Steam Cloud (userdata), Epic/EGS, GOG Galaxy, Heroic и Ubisoft Connect;
  • матчинг сейвов с установленными играми Steam (локальная библиотека);
  • вкладка Steam: просмотр установленной библиотеки;
  • переключатель «Скрыть сейвы лаунчеров» (Steam / Epic / GOG / Heroic);
  • размер выбранной копии и ETA во время бэкапа;
  • прогресс на карточках при копировании;
  • поиск по названию;
  • дата последнего изменения («2 ч. назад»);
  • ПКМ: открыть папку / показать в Проводнике / убрать;
  • язык интерфейса RU / EN.

Манифест бэкапа

{
  "version": 1,
  "app": "save-my-saves",
  "createdAt": "...",
  "hostname": "...",
  "username": "...",
  "userProfile": "C:\\Users\\...",
  "entries": [
    {
      "id": "...",
      "name": "Game Name",
      "source": "known",
      "locations": [
        { "originalPath": "...", "relativePath": "game_0", "sizeBytes": 0, "fileCount": 0 }
      ],
      "sizeBytes": 0,
      "fileCount": 0
    }
  ]
}

Для разработчиков и агентов

Подробные правила правок, карта «симптом → файлы» и инструкции по добавлению игр — в AGENTS.md.

Лицензия

MIT — см. LICENSE.

About

Windows app to find, backup and restore PC game saves. Supports Steam, Epic, GOG, Ubisoft, Heroic. Powered by Ludusavi Manifest / PCGamingWiki. Electron + TypeScript.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages