Skip to content

Building EmberMC

Until there is a public release, this is how you get a EmberMC jar. It is the same workflow Paper and every Paper fork use, so if you have built one of those you have built this.

You need

  • Git 2.31 or newer
  • JDK 25. Gradle will provision one if you only have a newer JRE, but having it installed is faster
  • About 6 GB of disk for the decompiled Minecraft sources and Gradle caches
  • 8 GB of RAM free for the build

You do not need Paper checked out. The build fetches the exact Paper commit EmberMC is pinned to and generates the upstream trees for you.

Build

git clone <the EmberMC repository> EmberMC
cd EmberMC
./gradlew applyAllPatches      # fetch Paper, decompile Minecraft, apply EmberMC's patches
./gradlew createPaperclipJar   # build the runnable server

The runnable server is ember-server/build/libs/ember-paperclip-<mc>-<build>.jar. Drop it into an empty directory and run it exactly as you would a Paper jar:

java -Xmx4G -jar ember-paperclip-26.2-DEV.jar --nogui

The first applyAllPatches decompiles Minecraft and takes several minutes. Everything after that is incremental. The first server start downloads the vanilla server from Mojang and patches it locally; that is what Paperclip is for, and why no Mojang code is in the jar you built.

Windows

Two things bite on Windows. Both are fixed by sourcing one script before you build, and neither touches your global Git configuration:

source scripts/env.sh

It scopes core.autocrlf=false and a committer identity to the build shell. Without the first, Git for Windows converts the decompiled sources to CRLF and every patch fails to apply; without the second, feature patches fail because git am needs to know who is committing. The details are in the repository's docs/BUILDING.md.

Running the Ember servers on it

EmberMC is a drop-in replacement for Paper. On a Pterodactyl server, upload the Paperclip jar as server.jar (keep the old one as a backup) and restart. The first Ember test server to run EmberMC did exactly that, with the Ember suite, floodgate and packetevents installed, and every plugin came up unchanged.

To go back, put the old jar back and restart. Worlds and plugin data are untouched either way; EmberMC does not change any on-disk format.