Docs › Reference

Building from source

Build Storia, Storia Relay and Storia Proxy from source, and how the patch-based project is organized.

Storia server#

Requires Java 25 (and Java 21, which the build also uses), Git, and a few GB of disk.

git clone https://github.com/AKSHRK-Dev/Storia.git
cd Storia
./gradlew applyAllPatches
./gradlew createPaperclipJar

The server jar is folia-server/build/libs/folia-paperclip-*.jar. The first build downloads and decompiles Minecraft, which takes a while.

Project layout#

Storia is a paperweight fork of Folia, which is itself a fork of Paper. Changes are kept as patches:

Path Contents
folia-server/src/main/java/dev/storia/ Storia's own classes (RAM world, pregen, budget, offload, command).
folia-server/minecraft-patches/features/ Patches to Minecraft's code (0012-Storia-...).
folia-server/paper-patches/features/ Patches to Paper's code.
storia-relay/ Storia Relay.
packaging/ Files that go into the worker and relay downloads.

Making changes#

  • Storia's own classes: edit folia-server/src/main/java/dev/storia/ directly.
  • Minecraft code: edit under folia-server/src/minecraft/java, commit there, then:

    bash ./gradlew rebuildMinecraftFeaturePatches

  • Paper code: edit under paper-server, commit there, then:

    bash ./gradlew rebuildPaperServerFeaturePatches

Commit the updated patch files in the main repository.

Storia Relay#

./gradlew -p storia-relay jar
# storia-relay/build/libs/storia-relay-*.jar

The relay shares the protocol classes in dev/storia/offload/protocol/ with the server and has no other dependencies.

Storia Proxy#

git clone https://github.com/AKSHRK-Dev/StoriaProxy.git
cd StoriaProxy
./gradlew :velocity-proxy:shadowJar
# proxy/build/libs/storia-proxy-*.jar

Storia Proxy's additions are in proxy/src/main/java/com/velocitypowered/proxy/storia/ and api/src/main/java/dev/storia/proxy/api/.

Releases#

Pushing a tag v* runs the release workflow on GitHub Actions, which builds all four programs and publishes them to GitHub Releases. Every push also builds a development jar, available as an artifact on the Actions page.