Scissors is a fork of Paper focused on patching exploits and security vulnerabilities that are unpatched upstream.
Building requires Git, an internet connection for initial setup, and Java 25. Gradle can provision the Java 25 toolchain when run with Java 21 or newer.
git clone https://github.com/ScissorsMC/Scissors.git
cd Scissors
./gradlew applyAllPatches
./gradlew :scissors-server:createPaperclipJarOn Windows, enable Git long-path support before applying patches:
git config --global core.longpaths trueThen use:
.\gradlew.bat applyAllPatches
.\gradlew.bat :scissors-server:createPaperclipJarThe runnable server is written to
scissors-server/build/libs/scissors-paperclip-<version>.jar. The
scissors-server-<version>.jar in the same directory is a thin development
JAR and does not include the runtime dependencies required to start the
server.
Contributors can run ./gradlew build (or .\gradlew.bat build on Windows)
to compile all modules and run the test suite. This verification task does not
create the runnable Paperclip JAR.
Scissors uses paperweight to store changes as Git patches over a pinned Paper commit. Applied Paper and Minecraft worktrees are generated and ignored; edits to existing upstream code must be committed or folded into the appropriate nested patch repository, then rebuilt into tracked patch files.
Read AGENTS.md before contributing. It defines the patch workflow, Git boundaries, Scissors/Paper naming boundary, and required verification. The layout is based on the paperweight fork example and follows conventions used by Folia.