Paper
High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.
- updated
- variables
- 4
- images
- 7
- author
- parker@pterodactyl.io
- sha256
- fa76a2409a1f
Readme
Paper
Paper is the next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance.
Check out the Paper Website for more information.
Server Ports
The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.
| Port | default |
|---|---|
| Game | 25565 |
Startup command
java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}} The parts in blue are filled in by the panel when the server starts, from the variables below.
Docker images
- Java 25 ghcr.io/ptero-eggs/yolks:java_25
- Java 22 ghcr.io/ptero-eggs/yolks:java_22
- Java 21 ghcr.io/ptero-eggs/yolks:java_21
- Java 17 ghcr.io/ptero-eggs/yolks:java_17
- Java 16 ghcr.io/ptero-eggs/yolks:java_16
- Java 11 ghcr.io/ptero-eggs/yolks:java_11
- Java 8 ghcr.io/ptero-eggs/yolks:java_8
Panel features
- eula
- java_version
- pid_limit
Variables
4 settings
-
Minecraft Version
The version of minecraft to download. Leave at latest to always get the latest version. Invalid versions will default to latest.
- env
- MINECRAFT_VERSION
- default
- latest
- rules
- nullable|string|max:20
- viewable
- editable
-
Server Jar File
The name of the server jarfile to run the server with.
- env
- SERVER_JARFILE
- default
- server.jar
- rules
- required|regex:/^([\w\d._-]+)(\.jar)$/
- viewable
- editable
-
Download Path
A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.
- env
- DL_PATH
- default
- none
- rules
- nullable|string
-
Build Number
The build number for the paper release. Leave at latest to always get the latest version. Invalid versions will default to latest.
- env
- BUILD_NUMBER
- default
- latest
- rules
- required|string|max:20
- viewable
- editable
Installation script 52 lines container ghcr.io/ptero-eggs/installers:alpine entrypoint ash show hide
#!/bin/ash
# Paper Installation Script
#
# Server Files: /mnt/server
PROJECT=paper
USER_AGENT="Pterodactyl (https://Pterodactyl.io)"
if [ -n "${DL_PATH}" ]; then
echo -e "Using supplied download url: ${DL_PATH}"
DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
else
VER_EXISTS=`curl --user-agent "${USER_AGENT}" -s https://fill.papermc.io/v3/projects/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | any(.[]; index($VERSION))' | grep -m1 true`
LATEST_VERSION=`curl --user-agent "${USER_AGENT}" -s https://fill.papermc.io/v3/projects/${PROJECT} | jq -r '.versions | to_entries | .[0].value[0]'`
if [ "${VER_EXISTS}" == "true" ]; then
echo -e "Version is valid. Using version ${MINECRAFT_VERSION}"
else
echo -e "Specified version not found. Defaulting to the latest ${PROJECT} version"
MINECRAFT_VERSION=${LATEST_VERSION}
fi
BUILD_EXISTS=`curl --user-agent "${USER_AGENT}" -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true`
LATEST_BUILD=`curl --user-agent "${USER_AGENT}" -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[0]'`
if [ "${BUILD_EXISTS}" == "true" ]; then
echo -e "Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}"
else
echo -e "Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}"
BUILD_NUMBER=${LATEST_BUILD}
fi
echo "Version being downloaded"
echo -e "Project: ${PROJECT}"
echo -e "MC Version: ${MINECRAFT_VERSION}"
echo -e "Build: ${BUILD_NUMBER}"
DOWNLOAD_URL=`curl --user-agent "${USER_AGENT}" -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${BUILD_NUMBER} | jq -r '.downloads."server:default".url'`
fi
cd /mnt/server
echo -e "Running curl --user-agent \"${USER_AGENT}\" -o ${SERVER_JARFILE} ${DOWNLOAD_URL}"
if [ -f ${SERVER_JARFILE} ]; then
mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old
fi
curl --user-agent "${USER_AGENT}" -o ${SERVER_JARFILE} ${DOWNLOAD_URL}
if [ ! -f server.properties ]; then
echo -e "Downloading MC server.properties"
curl --user-agent "${USER_AGENT}" -o server.properties https://raw.githubusercontent.com/pterodactyl/game-eggs/main/minecraft/java/server.properties
fi