Files
SyncGames/docs/add-game.md
T
DawnsorrowandCursor 69ee41dc91 Document Seamless .co2 paths and fix process-name false positives.
Record Jorg desk compatdata locations for satellite setup; devices list terra; tighten watchers so syncgames argv is not mistaken for Eden.

Co-authored-by: Cursor <[email protected]>
2026-07-15 16:01:59 -05:00

73 lines
2.2 KiB
Markdown

# Add / remove games
## Add
```bash
syncgames add \
--name "Elden Ring (Seamless)" \
--platform steam \
--paths "/absolute/or/~/path/to/save/dir_or_file" \
--versions 5 \
--steam-appid 1245620 \
--process-name eldenring.exe
```
Effects:
1. Writes `config/games/<slug>.toml` (or `~/.config/syncgames/games/` depending on config root).
2. Ensures remote prefixes `games/<slug>/live/` and empty `meta.json` if absent (does not overwrite existing live).
3. Does **not** upload local saves until first `end` after a `start` (or explicit first push with force after careful review).
Multiple `--paths` allowed. Globs are expanded at session time.
### Seamless Coop (Souls / Elden Ring)
Modded saves use **`.co2`**, not vanilla `.sl2`. Non-Steam / me3 launchers create a **new** Proton `compatdata/<id>` — not the vanilla Steam AppID folder.
See **[seamless-save-paths.md](seamless-save-paths.md)** for discovery steps and known Jorg desktop paths (reference for satellites — always re-find on each device).
```bash
find ~/.steam/steam/steamapps/compatdata -name '*.co2'
```
Point `paths` at the directory that contains the `.co2` (per machine — the compatdata id can differ on `terra` vs `Jorg`). SteamID subfolders usually match across devices on the same Steam account.
### Platforms
| Value | Meaning |
|-------|---------|
| `steam` | Steam / Proton; optional `steam_appid` for watchers |
| `eden` | Eden emulator saves |
| `yuzu` | Yuzu / Yuzu-fork saves |
| `other` | Manual paths only |
## Session loop
```bash
syncgames start <game-id>
# launch game, play, quit
syncgames end <game-id>
```
With systemd watchers enabled, start/end can run automatically when the process appears/exits.
## Remove
```bash
syncgames remove <game-id>
# optional: syncgames remove <game-id> --purge-remote
```
Default:
1. Disable watchers for that game.
2. Move remote `games/<id>/``retired/<id>-<YYYYMMDD>/`.
3. Rename local TOML to `*.removed` or delete per flag.
4. Clear local session state.
`--purge-remote` permanently deletes remote prefixes (dangerous; requires typing game id again interactively when TTY).
## Templates
See [templates/game.toml](../templates/game.toml) and seeded examples under `config/games/`.