# Back up browser game saves and check the restored game

Canonical: https://playable.wtf/guides/browser-game-saves-backups/

Written: 2026-10-17

Save inside the game, export a separate backup, then import and load it before removing the original. Confirm the restored character, map or level inside the game.

## Find where progress lives

Browser storage belongs to the site and browser profile that created it. A different browser, profile or host can open the same game with an empty save list. Private sessions usually discard their stored data when the session ends; ordinary browser storage can also be removed under storage pressure.

Keep three things separate: **game data** such as `DIABDAT.MPQ`, an **in-game save** holding progress, and an **exported backup** stored outside the site. Copying the game archive does not automatically copy your character. Bookmarking a launcher usually does not back up its save database.

A downloaded `.sv` or `.sav` is a separate file you can keep even after the site’s storage is cleared. Importing it puts a copy back into a client’s storage; loading it inside the game is the final step. PrinceJS is a different case: its full address preserves level settings instead of a downloadable save.

## Make a copy you can restore

Use this sequence before changing browsers, uninstalling a web app or clearing a site’s data:

1. Save inside the game and wait for it to finish.
2. Return to that client’s save manager or download control. Export the save you want to keep.
3. Find the downloaded file. Keep the original export and filename unchanged; use a dated folder to distinguish backups. Record the project, host and game version beside it.
4. Where the client supports import, restore a copy in a separate browser profile. Start with the same project and game edition, a compatible version, and the required authorized game data.
5. Load the imported save inside the game. Check the character, level or map and a recognizable piece of progress, such as a road you built. A filename in a list is only the import step.
6. Keep the working original and downloaded backup until the restored game opens as expected.

Changing host, engine or edition can change which saves work. Use the receiving project’s compatibility instructions before transferring between ports, and keep the source copy available while checking the destination. If the client offers no export, check its documentation before resetting anything; a universal browser-save download button does not exist.

## Use the right project workflow

### d07RiV’s DiabloWeb: restore a shareware character

Use the [d07RiV client](https://playable.wtf/games/diablo-browser/) for this sequence. Its shareware character save is separate from the demo’s game data.

1. Choose **Play Shareware**. After playing, press Escape and choose **Save Game**.
2. Reload the host to return to the start screen. Open **Manage Saves** and use the download icon beside the character’s save, for example `spawn0.sv`.
3. Keep that exported filename when making a backup. In the destination browser profile, open the same host and select the `.sv` through the start-screen file picker.
4. Choose **Play Shareware**, select the imported character, then choose **Load Game**. Check the character and saved location in the game, then make sure you can continue playing.

Keep the source character and export until that final load works. The [Diablo version guide](https://playable.wtf/guides/diablo-browser-demo-game-files/) explains the separate choices of browser client, demo data and retail `DIABDAT.MPQ`.

### JohnImril’s Diablo Web

In [JohnImril’s separate client](https://playable.wtf/games/diablo-web-modern/), open **Manage Saves** on the start screen to export. To make the first import when that control is absent, drop a `.sv` file onto the start screen; after import, Manage Saves appears. Later imports can use its upload control. This client has no cloud-save service. Launch with the matching game data and load the character before treating the transfer as complete.

### WebXash

The save manager groups saves by game or mod and downloads the selected save. Imported custom saves are placed in `xash-custom-saves` and made available when a game launches. Launch the matching game or mod, then use its load menu to check the saved scene. The manager is disabled for Counter-Strike 1.6. The [Half-Life version guide](https://playable.wtf/guides/half-life-browser-versions/) explains WebXash’s file and mod setup.

### PrinceJS

[PrinceJS](https://playable.wtf/games/oklemenz-princejs/) records level, maximum health, remaining time and guard strength in URL parameters. Copy or bookmark the current full URL, including everything after `?`. Reopen it and check the level, health and time; expect to return to the level entrance rather than your previous position within a room.

Refresh your saved link as the game updates its settings in the address. Keep the earlier bookmark until the new one opens as intended. This workflow belongs to PrinceJS; other ports use different progress systems. Compare them in the [Prince of Persia version guide](https://playable.wtf/guides/prince-of-persia-versions/).

### OpenTTD Online: save first, then export

In [OpenTTD Online](https://playable.wtf/games/openttd-online-web/), saving inside the game and downloading a backup are separate actions.

1. Open the game’s floppy-disk menu, choose **Save game**, name the save and choose **Save**.
2. Open the host’s tools menu in the upper-left corner and choose **Export Save**. If several saves exist, select the one you want, then choose **Export**. Keep the downloaded `.sav` file somewhere safe.
3. To restore it, choose **Import Save** from the same tools menu and select your backup. Keep a separate copy before importing a file with the same name.
4. Open the game’s **Load Game** menu, select the imported file and choose **Load**. Once the map opens, find a recognizable road or station you built and check the company and date. Pan the map to confirm you have returned to the running game. Import confirmation and a save-list entry come before this final check.

For example, a short road saved before export should still be present after you load the imported map. Use your own network as the reference before replacing an older backup. The [OpenTTD browser and native guide](https://playable.wtf/guides/openttd-browser-native/) covers version choice and compatible game setup.

![OpenTTD’s Save Game dialog with a filename field and the Save button.](https://playable.wtf/tutorials/openttd-save-export/save-game.webp)

Save inside the game before using the host’s export tools.

![OpenTTD Online’s Export Save chooser with the tutorial save selected and an Export button.](https://playable.wtf/tutorials/openttd-save-export/export-save.webp)

With several saves present, choose the file you want to download.

![OpenTTD’s Load Game dialog lists the imported tutorial save and shows its game details.](https://playable.wtf/tutorials/openttd-save-export/load-imported.webp)

After importing, open the backup from Load Game.

[Watch the OpenTTD save export demonstration](https://playable.wtf/tutorials/openttd-save-export/export-save.mp4).

A short silent demonstration of the export step. [Read the transcript](https://playable.wtf/tutorials/openttd-save-export/transcript.txt).

Playable captures with OpenTTD and OpenGFX2 Classic. [Media credits and sources](https://playable.wtf/tutorials/openttd-save-export/credits.txt) · [GPL-2.0 license](https://playable.wtf/tutorials/openttd-save-export/LICENSE.txt).

## Check before clearing anything

If progress seems missing, reopen the exact host in the original browser profile. Check whether you switched between an installed web app and a browser tab, selected another imported game copy, or loaded a different mod. Keep any old export until the expected progress is visible.

For Diablo Web’s **Game already open** message, save in the other tab or app, close it, then choose Try Again. Returning to the menu alone does not release that client’s save storage. Clearing data can remove the very files you are trying to recover.

Reinstalling game data is not a recovery method for a deleted save. A backup is most useful when it is made before the change, while the original still opens.

## Project reading

- [MDN · browser storage and eviction](https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria)
- [d07RiV · DiabloWeb client and save tools](https://d07riv.github.io/diabloweb/)
- [JohnImril · save import and export](https://github.com/JohnImril/diablo_web#playing-and-saving)
- [WebXash · save manager](https://github.com/x8BitRain/webXash#save-manager)
- [PrinceJS · progress in URL parameters](https://github.com/oklemenz/PrinceJS#options)
- [OpenTTD Online · project and assets](https://github.com/swords02/openttd-online)
- [OpenTTD Online · browser host and save tools](https://openttdonline.com/play/)
