Submit Your Mod to the Registry

Adding your mod to the registry is easy! Follow these steps:

Prerequisites

Step 1: Fork the Registry

  1. Go to github.com/cataclysmbn/registry
  2. Click "Fork" to create your own copy

Step 2: Create a Manifest File

You can create a manifest file in one of three ways:

Option A: Web Generator (Recommended)

Use the Manifest Generator to create your manifest file interactively. It can automatically fetch mod information from your GitHub repository.

Option B: CLI Fetch Command

If you prefer working from the command line, clone the registry and use the fetch command:

# Clone your fork
git clone https://github.com/YOUR_USERNAME/registry.git
cd registry

# Fetch mods from a GitHub repository
deno task fetch https://github.com/yourname/your-mod

# Or use the shorthand format
deno task fetch yourname/your-mod

The CLI will:

  1. Scan the repository for modinfo.json files
  2. Let you select which mods to generate registry-index/manifests for
  3. Create/update YAML manifest files in the registry-index/manifests/ folder
  4. Automatically detect parent mods for patchmods

Fetch Options:

OptionDescription
-o, --output <dir>Output directory (default: registry-index/manifests)
-a, --allGenerate all mods without prompting
--filter <pattern>Filter mods by path (regex)
--exclude <pattern>Exclude mods by path (regex)
--dry-runPreview without writing files

Example: Fetch all mods from a repository:

deno task fetch --all https://github.com/Chaosvolt/Cataclysm-BN-Modular-Mods

Example: Filter for a specific mod:

deno task fetch --filter "arcana" https://github.com/Chaosvolt/Cataclysm-BN-Modular-Mods

Option C: Manual Creation

Create a new YAML file in the registry-index/manifests/ folder named after your mod ID:

# registry-index/manifests/your_mod_id.yaml
schema_version: "1.0"

id: your_mod_id
display_name: "Your Mod Name"
short_description: "A brief description of your mod (max 200 chars)"

author: "Your Name"
license: "MIT" # Use SPDX identifier
homepage: "https://github.com/yourname/your-mod"

version: "1.0.0"

dependencies:
  - bn: ">=0.9.1"

categories:
  - content

source:
  type: github_archive
  url: "https://github.com/yourname/your-mod/archive/refs/tags/v1.0.0.zip"

Step 3: Validate Your Manifest

Run the validation tool to check your manifest:

deno task validate registry-index/manifests/your_mod_id.yaml
deno task check-urls registry-index/manifests/your_mod_id.yaml

Step 4: Submit a Pull Request

  1. Commit your manifest file
  2. Push to your fork
  3. Open a pull request to the main repository

Manifest Fields Reference

Required Fields

FieldDescription
schema_versionAlways "1.0"
idUnique identifier (lowercase, underscores)
display_nameHuman-readable name
short_descriptionBrief description (max 200 chars)
authorMod author(s)
licenseSPDX license ID or "ALL-RIGHTS-RESERVED"
versionCurrent version
source.type"github_archive", "gitlab_archive", or "direct_url"
source.urlDirect download URL for the mod archive

Optional Fields

FieldDescription
descriptionFull mod description
homepageLink to repo or documentation
dependenciesList of required mod IDs
conflictsList of incompatible mod IDs
categoriesOrganization categories
tagsSearch tags
icon_urlIcon URL (.png, .svg, .webp, .avif, .jpg/.jpeg, .gif)
source.extract_pathPath inside archive for modpacks
source.commit_shaGit commit SHA for verification

Modpack Extraction

If your mod is part of a larger modpack, use extract_path:

source:
  type: github_archive
  url: "https://github.com/user/modpack/archive/abc123.zip"
  extract_path: "modpack-abc123/Mods/YourMod"

Auto-Updates

To enable automatic version updates:

autoupdate:
  type: tag # or "commit"
  url: "https://github.com/user/repo/archive/$version.zip"