# How to Fix a Corrupted Soulmask Save (account.db) (/docs/soulmask/save-fix)



import { File, Folder, Files } from 'fumadocs-ui/components/files';
import { Step, Steps } from 'fumadocs-ui/components/steps';

If players on your cluster are being prompted to **create a new character** when they log back in after a server update, your `account.db` likely has **double-compressed actor data** caused by a server version mismatch. The community-built `EditSoulmaskSave` tool can repair this without losing player progression.

> ⚠️ **Always back up `account.db` before running any repair tool.** The fix is generally safe, but the tool is described as an early prototype by its author. Make a copy you can restore from if anything goes wrong.

> **Cluster context only.** This issue specifically arises from clusters where servers ran mismatched versions. Standalone-server saves don't typically need this tool.

***

Get the Tool [#get-the-tool]

`EditSoulmaskSave` is a third-party CLI by CrystalFerrai, hosted on GitHub:

* **Source / releases:** [CrystalFerrai/EditSoulmaskSave](https://github.com/CrystalFerrai/EditSoulmaskSave)
* **Requires:** [.NET Runtime 8.0 x64](https://dotnet.microsoft.com/download/dotnet/8.0) (the Desktop Runtime also includes it)

Download the latest release zip and unzip it on a Windows or Linux machine that has `.NET 8` installed.

***

What It Fixes [#what-it-fixes]

`--fix-double-compress` repairs `account.db` files where player actor data has been double-compressed because two cluster servers ran different versions and round-tripped player data through both. The user-visible symptom is **players being asked to recreate a character on login**, even though the account.db file isn't missing them.

***

File Location [#file-location]

The `account.db` lives on the **main** server of your cluster:

<Files>
  <Folder name="WS" defaultOpen>
    <Folder name="Saved" defaultOpen>
      <Folder name="Accounts" defaultOpen>
        <File name="account.db" />
      </Folder>

      <Folder name="Worlds">
        <Folder name="Dedicated">
          <Folder name="Level01_Main">
            <File name="world.db" />
          </Folder>
        </Folder>
      </Folder>
    </Folder>
  </Folder>
</Files>

***

Run the Fix [#run-the-fix]

<Steps>
  <Step>
    **Stop every server in the cluster.** This ensures the latest data is flushed to `account.db` and the file isn't locked.
  </Step>

  <Step>
    Open **File Manager** in your panel and download `WS/Saved/Accounts/account.db` to your local machine. Make a second copy as a backup.
  </Step>

  <Step>
    Open a terminal in the folder where you unzipped the tool, then run:

    ```bash
    dotnet EditSoulmaskSave.dll C:\path\to\account.db --fix-double-compress
    ```

    The tool prints what it found and writes the fixed file in place.
  </Step>

  <Step>
    Upload the repaired `account.db` back to `WS/Saved/Accounts/` on the **main** cluster server, replacing the original.
  </Step>

  <Step>
    Start the **main** server first, then each client server. Have a player log in to confirm the fix worked — they should land in their existing character, not the create-character screen.
  </Step>
</Steps>

***

Other Available Actions [#other-available-actions]

The tool supports a few more actions besides the fix:

| Action                      | Purpose                                                                                          |
| --------------------------- | ------------------------------------------------------------------------------------------------ |
| `--list-players`            | Lists every player account stored in the file.                                                   |
| `--dump-players <dir>`      | Dumps each player's data as separate files into the specified directory — useful for inspection. |
| `--dump-player-blobs <dir>` | Dumps the raw player data blobs.                                                                 |
| `--fix-double-compress`     | The repair action above.                                                                         |

```bash
dotnet EditSoulmaskSave.dll C:\path\to\account.db --list-players
```

***

Prevention [#prevention]

The double-compress corruption comes from **version mismatch across cluster nodes**. To avoid it:

* Update **every** server in the cluster at the same time when a Soulmask patch lands
* Stop client servers before the main, start the main before client servers
* See [Update Your Server](/docs/soulmask/update-guide)

***

Troubleshooting [#troubleshooting]

**Tool errors with "file not found" or wrong path**

* Make sure the path you pass is to the `account.db` file itself, not its folder
* On Windows, wrap paths with spaces in quotes

**Tool runs but player still has to recreate character**

* The corruption might not be the double-compress flavor — try `--list-players` to confirm the player's Steam ID is actually in the file
* Player may have lost their character through a different path (manual `account.db` deletion, restore from a too-old backup) — restore from a working backup

**Tool requires .NET 8 but my system only has older .NET**

* Install .NET 8 Desktop Runtime alongside your current version — they coexist

***

Related Guides [#related-guides]

* [Cluster Setup](/docs/soulmask/cluster-setup)
* [CopyRoles Tool](/docs/soulmask/copyroles-tool)
* [Backup System](/docs/soulmask/backup-system)
* [Update Your Server](/docs/soulmask/update-guide)
