Packaging & Dependencies

Hexium accepts Thunderstore-compatible ZIP packages. This page covers how to structure your package and — the part most people ask about — how to make your mod depend on another mod.

Package structure

The ZIP must contain these files at the root of the archive (not inside a subfolder):

FileRequiredNotes
manifest.jsonYesPackage metadata — see below.
icon.pngYesExactly 256×256 pixels.
README.mdYesShown on your mod page. Markdown reference.
CHANGELOG.mdNoShown on the versions page if present.
your plugin DLLs, assets, …Anything else your mod ships.

The maximum package size is 512 MB.

manifest.json

All five fields are required (use "" or [] when you have nothing to put in them):

{
    "name": "MyAwesomeMod",
    "description": "Short description shown in mod lists (max 256 characters).",
    "version_number": "1.0.0",
    "website_url": "https://github.com/you/MyAwesomeMod",
    "dependencies": [
        "Azumatt-AzuExtendedPlayerInventory-1.4.3"
    ]
}
FieldRules
name1–128 characters; letters, digits, and underscores only. No spaces or dashes.
descriptionString, at most 256 characters.
version_numberMajor.Minor.Patch, e.g. 1.0.0. Each version can only be uploaded once.
website_urlString — link to your source repository or homepage. Can be empty.
dependenciesArray of dependency strings — see the next section. Can be empty.

Making your mod depend on another mod

If your mod requires another mod (a library like Jötunn, an API, or any other mod), list it in the dependencies array of your manifest.json. Mod managers then install the dependency automatically alongside your mod, and it is shown in the Dependencies list on your mod page.

Each entry is a dependency string in the form:

TeamName-ModName-1.0.0

You don't have to assemble it by hand: every mod page on Hexium has a “Depend on this mod” box with the current dependency string ready to copy.

Good to know

Writing your README

Your README.md is your mod page. Not sure what to write? This skeleton covers what players usually look for:

# MyAwesomeMod

One or two sentences on what the mod does and why someone would want it.

## Features

- The main things it adds or changes

## Installation

Install with your mod manager, or drop the DLL into `BepInEx/plugins`.

## Configuration

Where the config file lives and what the notable settings do.

## Compatibility

Required mods (see Dependencies), known conflicts, client/server notes.

## Credits

Say thanks to anyone who inspired or helped you.

See the formatting reference for everything Markdown supports here, including a live preview playground.

Uploading

Once your ZIP is ready, head to the submit page. You'll pick the team to publish under and where the mod needs to be installed (client, server, or both). Uploads are scanned with VirusTotal before being announced to the Discord mod feed.

Don't want to build a ZIP at all? The "Build online" tab on the submit page does everything on this page for you: fill in the fields, pick dependencies from the site's mod list, and it assembles and publishes the package. It's the easiest way to make a modpack — just search and add the mods it should contain.