> For the complete documentation index, see [llms.txt](https://docs.morpheusemulator.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.morpheusemulator.com.br/dashboard/backups-and-restore.md).

# Backups and restore

The dashboard protects your files in two ways:

1. **Automatic safety copy on every save** – each time you save a file, the previous version is kept next to it. Copies older than 7 days are cleaned up automatically.
2. **Folder backups** – a complete ZIP of a service folder (for example the whole `GameServer` folder) that you create on demand and can restore entirely or file by file.

The visual editors (Cash Shop, Morpheus Shop, Battle Pass, EventItemBag) also keep a copy of every file they rewrite in the backup history.

## Creating a backup

1. Open **Files** in the sidebar.
2. Navigate into the service you want to back up (for example `GameServer`). The service is the first folder level.
3. Click **create backup** at the top of the tree.
4. Confirm **Create a backup of '\<service>'?** with **Create backup**. It can take a few seconds depending on the folder size.

{% hint style="success" %}
Create a backup **before** any big change: a new season, a mass price change, replacing many files, or before letting a new staff member edit files.
{% endhint %}

## Viewing backups

Click **view backups** at the top of the tree. The **Backups** window lists every backup of that service:

| Column      | Meaning                                                                              |
| ----------- | ------------------------------------------------------------------------------------ |
| **ID**      | Backup identifier (contains the date and time).                                      |
| **When**    | Creation date and time.                                                              |
| **By**      | Who created it (a user, or "safety" backups created automatically before a restore). |
| **Files**   | Number of files in the backup.                                                       |
| **Size**    | ZIP size.                                                                            |
| **Actions** | **restore everything** and **compare**.                                              |

Every backup is a complete ZIP with a checksum for each file. Restoring replaces the current files — a safety backup is generated automatically first.

## Restoring everything

1. In **Backups**, click **restore everything** on the backup you want.
2. Read **Restore backup '\<id>'?** — every file in the backup will be restored, and current files that exist in the backup are overwritten.
3. Click **Restore**.

{% hint style="info" %}
Before restoring, the panel **always** creates a safety backup of the current state. If the restore was a mistake, simply restore that safety backup.
{% endhint %}

{% hint style="warning" %}
Files that exist today but were **not** in the backup are left untouched (they are not deleted).
{% endhint %}

## Comparing with a backup and restoring selected files

Use this when you only want to undo some changes.

1. In **Backups**, click **compare** on a backup. The **Compare with backup** window opens (**comparing…**).
2. Files are grouped:

| Group                                                             | Meaning                            | Restorable?                                     |
| ----------------------------------------------------------------- | ---------------------------------- | ----------------------------------------------- |
| **Modified — different from the backup**                          | The file changed since the backup. | Yes – restoring overwrites the current content. |
| **Removed — they were in the backup and were deleted afterwards** | The file no longer exists.         | Yes – restoring re-creates the file.            |
| **Added — they exist today and were not in the backup**           | New files.                         | No – informational only.                        |
| **identical**                                                     | Same as in the backup.             | Not needed.                                     |

3. Tick the files to restore. By default everything that differs comes pre-selected. Use **select the differences** or **clear selection** to change it quickly. The counter shows `3 of 12 selected`.
4. Click **restore N files** and confirm. A safety backup of the current state is created first.

### Restoring a single file

1. Open **compare** on the backup.
2. Click **clear selection**.
3. Tick only the file you want.
4. Click **restore 1 file**.

## After restoring

Restored files are on disk, but the running programs still use what they loaded before. Apply the restore with:

* the right [hot reload module](/dashboard/services-and-reload.md#hot-reload), or
* a **Restart** of the service.

If the restored files are client files, publish them again through the [Client Hub](/dashboard/client-hub/publishing-updates.md).

## Good practices

* Create a backup before and after major updates, and label the moment in your own notes (the ID contains the date and time).
* Use **compare** regularly to see what changed since the last known-good state.
* Backups are per service: back up `GameServer` and `GameServerCS` separately if you change both.
* Every backup, comparison and restore is recorded in [Logs and audit](/dashboard/logs-and-audit.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.morpheusemulator.com.br/dashboard/backups-and-restore.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
