Skip to main content
These configuration variables are required or used by all publishing platforms. They define the basic information about your artifact.

Required Variables

NAME
string
required
The name of the artifact. This is used as the release/version name across all platforms.Example:
export NAME="AwesomePlugin"
or with system properties:
java -Dname="AwesomePlugin" -jar mcreleaser.jar
VERSION
string
required
The version of the artifact. Should follow semantic versioning or your project’s versioning scheme.Example:
export VERSION="1.2.3"
or with system properties:
java -Dversion="1.2.3" -jar mcreleaser.jar
DESCRIPTION
string
required
The description or changelog of the artifact. This text will be displayed as the release notes or version description.Example:
export DESCRIPTION="Fixed critical bugs and added new features"
or with system properties:
java -Ddescription="Fixed critical bugs and added new features" -jar mcreleaser.jar

Optional Variables

GAME_VERSIONS
string
Space-separated list of Minecraft game versions that the artifact supports. This is used as a fallback for platform-specific game version settings.When set, platforms like Modrinth, Hangar, and CurseForge will use this value if their platform-specific GAME_VERSIONS variable is not set.Example:
export GAME_VERSIONS="1.20.1 1.20.2 1.20.4 1.21"
or with system properties:
java -DgameVersions="1.20.1 1.20.2 1.20.4 1.21" -jar mcreleaser.jar
GAME_VERSION_TYPE
string
The type of game version to filter when resolving version IDs. Used by platforms that need to fetch version information from Minecraft’s version manifest.Valid values:
  • release - Only stable releases
  • snapshot - Only snapshots
  • old_beta - Old beta versions
  • old_alpha - Old alpha versions
When set, platforms like Modrinth will use this value if their platform-specific GAME_VERSION_TYPE variable is not set.Example:
export GAME_VERSION_TYPE="release"
ANNOUNCE_MISSING_KEY
boolean
default:"false"
Whether to announce missing required variables in the logs. When enabled, MCReleaser will log detailed error messages showing which required variables are missing for each platform.This is particularly useful for debugging configuration issues in CI/CD environments.Example:
export ANNOUNCE_MISSING_KEY=true
or with system properties:
java -DannounceMissingKey=true -jar mcreleaser.jar
When a platform has missing keys, you’ll see:
ERROR: The following keys are missing: githubToken, githubRepository

Source Reference

These common properties are defined in:
/workspace/source/core/src/main/java/me/hsgamer/mcreleaser/core/property/CommonPropertyKey.java:4
public interface CommonPropertyKey {
    PropertyKey NAME = new PropertyKey("name");
    PropertyKey VERSION = new PropertyKey("version");
    PropertyKey DESCRIPTION = new PropertyKey("description");
    PropertyKey GAME_VERSIONS = new PropertyKey("gameVersions");
    PropertyKey GAME_VERSION_TYPE = new PropertyKey("gameVersionType");
    PropertyKey ANNOUNCE_MISSING_KEY = new PropertyKey("announceMissingKey");
}

Usage in CI/CD

When using MCReleaser in GitHub Actions or other CI/CD systems, you’ll typically set these as environment variables:
- name: Release to platforms
  env:
    NAME: ${{ github.event.repository.name }}
    VERSION: ${{ github.ref_name }}
    DESCRIPTION: ${{ github.event.release.body }}
    GAME_VERSIONS: "1.20.1 1.20.2 1.20.4"
  run: java -jar mcreleaser.jar

Build docs developers (and LLMs) love