RepoDocsMinecraft

Build from source

Use the included Gradle wrapper. It runs Gradle 9.6.1 with the Java 21 daemon. The project downloads Adoptium toolchains when needed:

  • Minecraft 1.20.1 targets use Java 17.
  • Minecraft 1.21.1 targets use Java 21.

The supported targets remain:

  • 1.20.1-fabric
  • 1.20.1-forge
  • 1.21.1-fabric
  • 1.21.1-neoforge
./gradlew build buildAndCollect

The JARs and source JARs are written to build/libs/<mod-version>/. The buildAndCollect task builds and copies runtime and source JARs. It does not run tests.

Run a development client or server with the normal target task:

./gradlew :1.20.1-fabric:runClient
./gradlew :1.20.1-fabric:runServer
./gradlew :1.20.1-forge:runClient
./gradlew :1.20.1-forge:runServer
./gradlew :1.21.1-fabric:runClient
./gradlew :1.21.1-fabric:runServer
./gradlew :1.21.1-neoforge:runClient
./gradlew :1.21.1-neoforge:runServer

All development runs use the shared root run/ directory. A dedicated server needs the Minecraft EULA accepted in run/eula.txt.

Target metadata, dependency versions, Minecraft ranges, and publishing IDs are in stonecutter.properties.yml. The current release type is beta.

Check publishing without uploading with:

./gradlew publishMods -Ppublish.dry_run=true

This uses the publishing plugin’s dry-run mode. It validates the packages and prints publishing metadata without uploading files. Gradle --dry-run only previews task execution. Publishing accepts credentials from Gradle properties publish.modrinth_token, publish.curseforge_token, mavenRepositoryUsername, and mavenRepositoryPassword, or from the matching environment variables MODRINTH_TOKEN, CURSEFORGE_TOKEN, MAVEN_REPOSITORY_USERNAME, and MAVEN_REPOSITORY_PASSWORD.

2 weeks agoLast edited 2026-09-26T06:58:35.000Z2 months agoCreated 2026-08-21T19:49:25.000ZSalad