> For the complete documentation index, see [llms.txt](https://wiki.thunderstore.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.thunderstore.io/mods/updating-a-package.md).

# Updating a Package

Packages can be updated with new versions (you cannot modify existing versions) through [the same page](https://thunderstore.io/package/create/) that you uploaded the original package.

* Unzip your original package.
* Add or modify your `README.md`, `CHANGELOG.md`, code, and other assets.
* Modify the `manifest.json` file's `version_number` field to a higher version number. Do not modify the `name` field or it will be uploaded as a new package instead of updating the old one.
* [Upload it again](https://thunderstore.io/package/create/) under the same Team (otherwise it will be uploaded as a new package instead of updating the old one).

{% hint style="warning" %}
Version numbers follow the [semantic versioning](https://semver.org/) syntax without suffixes, and the highest available version will be displayed on the website & mod manager as the latest version.

\
Be careful with semantic versioning, v1.0.20 is higher than v1.0.3
{% endhint %}

**Example of modifying the manifest.json:**

```json
{
    "name": "ExamplePackage",
    "version_number": "1.0.0",
    "website_url": "",
    "description": "This is an example",
    "dependencies": []
}
```

```json
{
    "name": "ExamplePackage",
    "version_number": "1.0.1",
    "website_url": "",
    "description": "This is an updated example!",
    "dependencies": []
}
```

**Package versions are immutable!** Once a version is successfully uploaded, it can no longer be edited. Any further changes (including README.md edits) will require uploading a new version. Immutability is required for the ecosystem to offer conflict-freeness guarantees and efficient caching.

{% hint style="success" %}
When updating a package, you can leave the *Categories* field blank and it will use the categories you selected when you uploaded your package the first time!
{% endhint %}

### Changelog

Thunderstore supports `CHANGELOG.md` files which use the same markdown as your `README.md` file.

**Example:**

```
## v3.0.0
- Added X feature
- Added Y feature
- Fixed Z bug

## v2.0.0
- Added X feature
- Fixed Y bug
- Fixed Z bug

## v1.0.1
- Fixed text formatting in `README.md`

## v1.0.0
- Full release
- Fixed X bug
- Fixed Y bug

##
<details><summary>Show pre-release updates</summary>

## v0.5.1
- Fix X bug

## v0.5.0
- Beta release
- Add X feature
- Fix Y bug

## v0.1.1
- Fix X bug

## v0.1.0
- Alpha release

</details>
```
