The watcher supports two sync modes for your saves: Push only (the default) and Two-way (opt-in). Choose the mode that fits how you play.
Push only (default)
Push only means the agent only sends your saves to the server — it never writes to your local saves folder. This is the safest behaviour and the default for all devices.
If you play on multiple machines but never touch the same character on two different systems, you don't need to change this mode. Each device keeps its own saves, and the server keeps a full history of every version you've uploaded.
Two-way (opt-in)
If you play the same character on more than one machine, enable Two-way sync on each device. When the server has a newer save (because you played on a different computer), the agent will offer to pull it and write it to your local folder. You must confirm before the agent ever writes anything.
To enable Two-way: open the agent menu (click the shield icon in the menu bar or system tray) → Sync mode → Two-way. It stays enabled on that machine until you turn it off.
When the pull offer appears
The agent checks for newer saves on the server and shows you the offer:
- When the agent starts.
- When you switch the mode to Two-way.
- When you click Pull latest now in the menu.
Every ~5 minutes, the agent silently checks the server. If there are newer saves, the menu shows a label like Pull latest now (2 newer) — it tells you how many, but never writes without your confirmation.
Security: how writes are protected
The agent never writes to your saves without explicit confirmation. Here's how it keeps you safe:
- Always ask first. A confirmation dialog always appears before any write.
- Close the game first. The agent checks whether Diablo II: Resurrected is open or was recently active. If it detects the game running, it refuses to write (you must close it and try again).
- Your local file is always safe. Before any overwrite, the server guarantees your current file is in the account history (in the common case, it's already a snapshot from an earlier upload; in a conflict, it's sent to the server first with "backup only" mode). You can download and restore any version from the web armory.
- A local backup is also made. The agent keeps a copy of your original file in its config directory before writing.
- The write is atomic. Files are written to a temporary location, then renamed into place — if anything goes wrong, your original is untouched.
- SHA verification. The new file's hash is checked against both the server's manifest and the response headers before it touches your drive.
Conflicts: when you play on both machines without syncing
If you play a character on machine A, then later on machine B, without pulling between, both have changes — that's a conflict. When you try to pull on machine B, the agent shows a dialog:
- Keep local — upload your local version to the server (as a backup, not the current); the version on the server stays current. Use this if your local changes matter more.
- Use server — pull the server's version and write it locally. Use this if the server has the progress you want.
- Skip — do nothing. The conflict is still there; try again later or resolve it differently.
Crucially, no version is ever lost. Both the local and server versions end up in your account history; you can download and restore whichever you prefer from the web armory.
Typical workflow (playing on two machines)
- Play your character on machine A with the agent running in push mode (automatic uploads).
- Sit down at machine B, which has Two-way sync enabled.
- Open the agent menu and click Pull latest now, or wait for the next check (~5 min) to see the offer in the menu label.
- A dialog lists the newer saves. Click Pull to fetch the latest version.
- The agent pulls the file, verifies it, and writes it to your saves folder. You're now in sync.
- Play. When you're done, the agent automatically uploads this machine's latest save.
- Back on machine A, repeat step 3 to stay current.
Map exploration (fog of war)
Diablo II: Resurrected keeps the part of each map you've already explored in small companion files next to your character save (<Name>.map and <Name>.ma0….ma4). The agent syncs these map exploration files together with the character, so the fog of war you've cleared follows you from one machine to another — no more re-exploring the same areas on your second PC.
- On by default. The toggle lives in the agent tray menu as Sync map exploration. Turn it off if you'd rather keep each machine's explored map separate.
- Latest version wins. Unlike your saves, map exploration keeps no history — only the most recent version of each file is stored. Whichever machine uploaded last is the one you'll pull.
- Keybinds are not synced. Your control and hotkey files (
.key/.ctl) stay local to each machine — only the explored-map files travel with your character.
Troubleshooting
Pull says "temporarily unavailable" — the server has temporarily disabled pulls (a kill switch). It's not your machine; wait a few minutes and try again.
Agent refuses to pull because the game is open — close Diablo II: Resurrected completely and try again. On Windows, check the Task Manager; on macOS, force-quit if necessary (⌘Q or Activity Monitor). The agent detects the process and recent file activity, so make sure the game is fully closed.
Both characters and shared stash are synced — .d2s character files and .d2i shared stash are all pulled together. If you have older saves, they stay in history.