Decompiling the Server
The Hytale server JAR is not obfuscated, making it easy to explore the source code. This guide shows how to download and decompile it.
Quick Start
Section titled “Quick Start”# create working directorymkdir -p .sources && cd .sources
# get latest version and downloadVERSION=$(curl -s "https://maven.hytale.com/release/com/hypixel/hytale/Server/maven-metadata.xml" | sed -n 's/.*<latest>\([^<]*\)<.*/\1/p')curl -O "https://maven.hytale.com/release/com/hypixel/hytale/Server/${VERSION}/Server-${VERSION}.jar"mv "Server-${VERSION}.jar" HytaleServer.jar
# decompile with Vineflower (via Docker)docker run --rm -v "$(pwd):/sources" eclipse-temurin:21-jdk-alpine sh -c ' apk add --no-cache curl > /dev/null 2>&1 curl -fsSL -o /tmp/vf.jar https://github.com/Vineflower/vineflower/releases/download/1.11.2/vineflower-1.11.2.jar java -jar /tmp/vf.jar \ --decompile-generics=1 \ --decompile-switch-expressions=1 \ --pattern-matching=1 \ --use-debug-var-names=1 \ --use-method-parameters=1 \ --remove-bridge=1 \ --threads=0 \ /sources/HytaleServer.jar /sources/server'# create working directorymkdir -p .sources && cd .sources
# get latest pre-release version and downloadVERSION=$(curl -s "https://maven.hytale.com/pre-release/com/hypixel/hytale/Server/maven-metadata.xml" | sed -n 's/.*<latest>\([^<]*\)<.*/\1/p')curl -O "https://maven.hytale.com/pre-release/com/hypixel/hytale/Server/${VERSION}/Server-${VERSION}.jar"mv "Server-${VERSION}.jar" HytaleServer.jar
# decompile with Vineflower (via Docker)docker run --rm -v "$(pwd):/sources" eclipse-temurin:21-jdk-alpine sh -c ' apk add --no-cache curl > /dev/null 2>&1 curl -fsSL -o /tmp/vf.jar https://github.com/Vineflower/vineflower/releases/download/1.11.2/vineflower-1.11.2.jar java -jar /tmp/vf.jar \ --decompile-generics=1 \ --decompile-switch-expressions=1 \ --pattern-matching=1 \ --use-debug-var-names=1 \ --use-method-parameters=1 \ --remove-bridge=1 \ --threads=0 \ /sources/HytaleServer.jar /sources/server'Output will be in .sources/server/.
Finding the Latest Version
Section titled “Finding the Latest Version”Get the latest version from maven-metadata.xml:
curl -s "https://maven.hytale.com/release/com/hypixel/hytale/Server/maven-metadata.xml" | sed -n 's/.*<latest>\([^<]*\)<.*/\1/p'List all available versions:
curl -s "https://maven.hytale.com/release/com/hypixel/hytale/Server/maven-metadata.xml" | grep '<version>'Get the latest pre-release version from maven-metadata.xml:
curl -s "https://maven.hytale.com/pre-release/com/hypixel/hytale/Server/maven-metadata.xml" | sed -n 's/.*<latest>\([^<]*\)<.*/\1/p'List all available pre-release versions:
curl -s "https://maven.hytale.com/pre-release/com/hypixel/hytale/Server/maven-metadata.xml" | grep '<version>'Key Packages
Section titled “Key Packages”After decompiling, explore these packages:
| Package | Contents |
|---|---|
com.hypixel.hytale.server.core.plugin | Mod API: JavaPlugin, PluginBase |
com.hypixel.hytale.server.core.command | Command system |
com.hypixel.hytale.event | Event system |
com.hypixel.hytale.assetstore | Asset loading |
com.hypixel.hytale.builtin | Built-in plugins (good examples) |
com.hypixel.hytale.codec | Serialization system |