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:
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:
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.