# 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>
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.thunderstore.io/mods/updating-a-package.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
