> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elementlabs.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a product

> Install a new release of a product or element_sdk without losing your settings and translations.

An update replaces a product's whole folder with the new release, including `configs` and
`locales`. This page is the procedure that keeps your edits. Plan a few minutes of downtime: the
server restarts once, twice if the product has an integration.

> [!WARNING]
>
> Copy your edited files out of the product's folder before you replace it. Nothing in the update
> keeps them for you.

## Before you start

* The new release, downloaded from **Granted Assets** on the
  [Cfx.re portal](https://portal.cfx.re/assets/granted-assets).
* Its patch notes, in the product's **Changelog** tab. Read every release between yours and the new
  one: an **Action required** section names a setting you have to change.

## Steps

**1. Copy out what you edited**

Copy these from the product's folder to somewhere outside `resources`:

| File | When you have edits in it |
| - | - |
| `configs/*.jsonc` | You changed a setting. |
| `locales/*.json` | You reworded text or added a language. |
| `fxmanifest.lua` | You added a language and listed its file there. |

Nothing else in the folder is yours. Keeping these files in version control, or at least one copy
per product version, also gives you a way back.

**2. Update element\_sdk first, if the new release needs it**

The new release's `INSTALL.md` names the `element_sdk` versions it accepts. If yours is
older, replace the `element_sdk` folder with the new release first. `element_sdk` has no settings
of its own, so there is nothing to copy back. A newer `element_sdk` keeps working with the
products you already have, as long as it is inside the range each of them accepts. See
[Versions and releases](https://docs.elementlabs.net/compatibility/versions.md).

**3. Replace the product folders**

Delete the product's folder, and its `_assets` folder when it has one, then extract the new
release in their place.

Do not extract over the old folders. Files the new release no longer ships would stay behind.

**4. Put your files back**

Copy your saved files over the ones the release shipped. Then apply every **Action required**
from the patch notes, for example a setting that was renamed.

**5. Run the integration installer again, if the product has one**

The update replaced the files your other resources point at. See
[Install an integration](https://docs.elementlabs.net/get-started/integrations.md).

**6. Restart the server**

## Check that it worked

In the console, both of these are true:

* no `[ERROR]` or `[WARN ]` line names the product or `element_sdk`;
* the out-of-date notice for the product is gone.

Then check in game that your settings are in effect.

> [!WARNING]
>
> A setting that was renamed in the new release is ignored without any message. A clean console does
> not prove your file still does what it did. The in-game check does.

If the release changed the layout of one of your files, the console reports that it converted it:

```text theme={null}
[INFO ] [    Config] [map] migrated config v1 → v2.
```

That is expected. The file on disk is not rewritten, so keep your copy as it is. If the console
reports a problem with a file instead, see
[Console messages](https://docs.elementlabs.net/troubleshooting/console-messages.md#configuration-and-language-files).

## Roll back

Install the previous release the same way, and put back the files you kept **for that version**. A
configuration file from a newer release is not converted backwards: the older product uses it as it
is, ignores the keys it does not know and reports it once:

```text theme={null}
[ERROR] [    Config] [map] config file from newer version (2 > 1); some keys may be ignored.
```

## How you know an update exists

Once per start, your server compares every installed Element Labs resource with the published
releases and reports anything behind:

```text theme={null}
[WARN ] [VersionCheck] element_3d_pausemenu is outdated: v1.0.0 installed, v1.0.1 available.
```

Nothing updates by itself, and nothing stops working because a newer release exists. What the
version numbers mean, and which releases you are compared against, is in
[Versions and releases](https://docs.elementlabs.net/compatibility/versions.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.