Skip to main content
Properly configuring game versions ensures your mod or plugin appears in the correct version filters on distribution platforms. This guide explains how MCReleaser handles Minecraft versions.

Basic Game Version Configuration

The GAME_VERSIONS environment variable (or -DgameVersions property) specifies which Minecraft versions your artifact supports.

Single Version

java \
  -DgameVersions="1.20.1" \
  # ... other properties
  -jar mcreleaser.jar

Multiple Versions (Comma-Separated)

java \
  -DgameVersions="1.20.1,1.20.2,1.20.3" \
  # ... other properties
  -jar mcreleaser.jar

Version Ranges

You can specify multiple versions to cover a range:
java \
  -DgameVersions="1.19.4,1.20,1.20.1,1.20.2,1.20.3,1.20.4" \
  # ... other properties
  -jar mcreleaser.jar
List all versions explicitly rather than using ranges. Platforms like Modrinth and CurseForge require specific version strings.

Game Version Type Filtering

Minecraft versions come in different types: release, snapshot, and beta. MCReleaser can filter versions by type.

Available Version Types

From VersionTypeFilter.java:3-7:
public enum VersionTypeFilter {
    SNAPSHOT,
    RELEASE,
    ALL
}

Using GAME_VERSION_TYPE

The GAME_VERSION_TYPE environment variable filters which version types to include:
java \
  -DgameVersions="1.20.1,1.20.2,1.21-pre1" \
  -DgameVersionType="release" \
  # ... other properties
  -jar mcreleaser.jar
# Result: Only 1.20.1 and 1.20.2 are used (1.21-pre1 is filtered out)
The GAME_VERSION_TYPE property is defined in CommonPropertyKey.java:8 and defaults to filtering for release versions only.

Platform-Specific Game Versions

Some platforms allow you to override the global GAME_VERSIONS with platform-specific versions:

Modrinth-Specific Versions

java \
  -DgameVersions="1.20.1,1.20.2" \
  -DmodrinthGameVersions="1.20.1,1.20.2,1.20.3,1.20.4" \
  # ... other properties
  -jar mcreleaser.jar
From README.md:75, Modrinth will use GAME_VERSIONS if MODRINTH_GAME_VERSIONS is not set.

Modrinth Version Type Override

Modrinth also supports its own version type filter:
java \
  -DgameVersionType="release" \
  -DmodrinthGameVersionType="all" \
  # ... other properties
  -jar mcreleaser.jar
From README.md:76:
MODRINTH_GAME_VERSION_TYPE - The type of the game version to filter. Will use GAME_VERSION_TYPE if set.

CurseForge-Specific Versions

java \
  -DgameVersions="1.20.1,1.20.2" \
  -DcurseforgeGameVersions="1.20.1,1.20.2,1.20.3" \
  # ... other properties
  -jar mcreleaser.jar
From README.md:99:
CURSEFORGE_GAME_VERSIONS - The game versions that the artifact supports. Will use GAME_VERSIONS if set.

Hangar-Specific Versions

java \
  -DgameVersions="1.20.1" \
  -DhangarGameVersions="1.20.1,1.20.2" \
  # ... other properties
  -jar mcreleaser.jar
From README.md:65:
HANGAR_GAME_VERSIONS - The game versions that the artifact supports. Will use GAME_VERSIONS if set.

Practical Examples

Fabric Mod Supporting Latest Versions

java \
  -Dname="My Fabric Mod" \
  -Dversion="1.0.0" \
  -Ddescription="A cool Fabric mod" \
  -DgameVersions="1.20.1,1.20.2,1.20.3,1.20.4" \
  -DgameVersionType="release" \
  -Dplatforms="modrinth,curseforge" \
  -DmodrinthLoaders="fabric" \
  -DcurseforgeModLoaders="Fabric" \
  # ... other properties
  -jar mcreleaser.jar

Paper Plugin with Wide Compatibility

java \
  -Dname="My Paper Plugin" \
  -Dversion="2.0.0" \
  -Ddescription="Server-side plugin" \
  -DgameVersions="1.19.4,1.20,1.20.1,1.20.2,1.20.3,1.20.4" \
  -Dplatforms="hangar,polymart" \
  -DhangarChannel="Release" \
  # ... other properties
  -jar mcreleaser.jar

Multi-Platform with Different Version Requirements

Sometimes different platforms have different version requirements:
java \
  -Dname="Universal Mod" \
  -Dversion="1.5.0" \
  -Ddescription="Works on many versions" \
  -DgameVersions="1.20.1,1.20.2" \
  -DmodrinthGameVersions="1.20.1,1.20.2,1.20.3,1.20.4" \
  -DcurseforgeGameVersions="1.20.1,1.20.2" \
  -Dplatforms="modrinth,curseforge,github" \
  # ... other properties
  -jar mcreleaser.jar
In this example:
  • GitHub release supports 1.20.1 and 1.20.2
  • Modrinth lists compatibility up to 1.20.4
  • CurseForge only shows 1.20.1 and 1.20.2

Snapshot Support for Development Builds

java \
  -Dname="My Mod (Beta)" \
  -Dversion="1.0.0-beta" \
  -Ddescription="Beta version with snapshot support" \
  -DgameVersions="1.20.3,1.20.4,24w01a,24w02a" \
  -DgameVersionType="all" \
  -DmodrinthVersionType="beta" \
  -Dplatforms="modrinth" \
  # ... other properties
  -jar mcreleaser.jar

How MCReleaser Processes Game Versions

Here’s how game versions flow through MCReleaser:
1

Read GAME_VERSIONS

MCReleaser reads the global GAME_VERSIONS property from CommonPropertyKey.java:7
2

Apply Version Type Filter

If GAME_VERSION_TYPE is set, versions are filtered by type (release/snapshot/all)
3

Check Platform Override

Each platform checks for platform-specific versions (e.g., MODRINTH_GAME_VERSIONS)
4

Use Platform Default

If no platform-specific versions exist, fall back to filtered GAME_VERSIONS
5

Publish with Versions

Each platform receives its final version list for publishing

Version Format Guidelines

Minecraft Release Versions

  • Use exact version strings: 1.20.1, 1.20.2, 1.20.4
  • Don’t use ranges: 1.20.x or 1.20+
  • Don’t use wildcards: 1.20.*

Snapshot Versions

  • Week snapshots: 23w51a, 24w01b
  • Pre-releases: 1.21-pre1, 1.21-pre2
  • Release candidates: 1.20-rc1, 1.20-rc2

Validation

MCReleaser validates versions against Minecraft’s official version manifest. Invalid versions will cause errors during upload.
Check the Minecraft Version Manifest for valid version strings.

Common Issues

Issue: Version Not Recognized

Problem: Platform rejects your version string Solution: Verify the version exists in Minecraft’s official manifest and matches the exact format

Issue: Too Many Versions

Problem: Cluttered version list on platform pages Solution: Only list versions you’ve actually tested. Use GAME_VERSION_TYPE to filter appropriately

Issue: Different Platforms Need Different Versions

Problem: Your mod works on more versions for one platform than another Solution: Use platform-specific overrides like MODRINTH_GAME_VERSIONS

Next Steps

File Handling

Learn how to specify which files to upload

Configuration Reference

Complete list of all configuration options

Build docs developers (and LLMs) love