Work in progressPapyrus is under active development — expect breaking changes, incomplete features, and limited production support.
Skip to content

Building

bash
git clone https://github.com/codingsushi79/Papyrus.git
cd Papyrus

# Apply Minecraft patches and compile
./gradlew applyPatches build

# Create the runnable paperclip jar (copied to papyrus-paperclip-*.jar)
./gradlew createPaperclipJar syncPapyrusPaperclipJar

Output: papyrus-server/build/distributions/papyrus-paperclip-<version>.jar

GitHub releases rename this to Papyrus-<minecraft-version>.jar (e.g. Papyrus-26.1.2.jar).

Common Gradle tasks

TaskPurpose
./gradlew applyPatchesApply all Minecraft source patches
./gradlew buildCompile and run tests
./gradlew createPaperclipJarBuild the downloadable server jar
./gradlew syncPapyrusPaperclipJarCopy paperclip output to papyrus-paperclip-*.jar
./gradlew rebuildPatchesRegenerate patch files after editing papyrus-server/src/minecraft
./gradlew fixupSourcePatchesFix patch context after manual edits
./gradlew publishToMavenLocalInstall paper-api locally for plugin dev

Windows: use gradlew instead of ./gradlew.

Requirements

  • Git — zip downloads will not build (settings.gradle.kts checks for .git/)
  • Java 25 JDK to compile (Gradle toolchains can auto-provision if only JRE 21+ is installed)
  • ~4 GB RAM for Gradle (org.gradle.jvmargs in gradle.properties)

Development requires cloning with Git — the build system applies patches against a generated git tree inside papyrus-server/src/minecraft.

See CONTRIBUTING.md for the patch workflow.

CI and releases

GitHub Actions builds on every push and pull request to main:

  1. Apply Minecraft patches
  2. Compile and run tests
  3. Build the paperclip jar
  4. Upload artifacts (papyrus-server jar + test results)

Pushing a version tag (e.g. v1.0.1) creates a GitHub Release with Papyrus-<mcVersion>.jar attached automatically.

Download CI builds from the Actions tab or the Download page.

GPL/MIT · Papyrus by SushiMC