Egg Repository

Pterodactyl Community Egg Repository

Zandronum

Zandronum is a multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. This egg uses the Freedoom WAD by default.

Read Me

Zandronum

Zandronum is a multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software.

This egg uses the Freedoom WAD by default.

Server Ports

Zandronum requires a single port:

Port default
Game 10666
Yolks
NameTag
Debianghcr.io/ptero-eggs/yolks:debian
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Max PlayersThe maximum amount of players allowed on your game server.MAX_PLAYERS16YesNo
IWADAn IWAD is the main resource file for a Doom-engine game, containing all the game's original sounds, levels, and graphics.IWADfreedoom1.wadYesYes
PWADSIf you wish to use multiple PWAD you can do so by separating them with spaces. A PWAD is a WAD containing lumps of data, often used as addons. They replace in-game assets.PWADSYesYes
SkillSet the difficulty of the game.SKILLYesYes
mapThe map the server should start with.MAPe1m1YesYes
dmflagsGameplay flags. https://wiki.zandronum.com/DMFlagsDMFLAGSYesYes
dmflags2Gameplay flags. https://wiki.zandronum.com/DMFlagsDMFLAGS2YesYes
zadmflagsZandronum specific gameplay flags. https://wiki.zandronum.com/DMFlagsZADMFLAGSYesYes
compatflagsCompatibility flags. https://wiki.zandronum.com/DMFlagsCOMPATFLAGSYesYes
compatflags2Compatibility flags. https://wiki.zandronum.com/DMFlagsCOMPATFLAGS2YesYes
zacompatflagsZandronum specific compatibility flags. https://wiki.zandronum.com/DMFlagsZACOMPATFLAGSYesYes
Enable GeoIPGeoIP is used to identify the country of the client's ip addressGEOIP1YesYes
Install Script
#!/bin/bash
mkdir -p /mnt/server
cd /mnt/server

ARCH=$([[ "$(uname -m)" == "x86_64" ]] && echo "linux-x86_64" || echo "linuxserver-armv8")

echo "Fetching latest version number of Zandronum"
version="$(wget -q -O - http://zandronum.com/download |
sed -n 's/.*The latest version is <strong>\(.*\)<\/strong>.*/\1/p')"

z="zandronum"$version"-${ARCH}.tar.bz2"

echo "Downloading release $version of Zandronum."
echo "Executing wget -nc https://zandronum.com/downloads/$z"
wget -nc https://zandronum.com/downloads/"$z"
echo "Untar Zandronum"
echo "Executing tar -xjvf $z"
tar -xjvf "$z"

echo "Remove useless files"
rm "$z"
rm zandronum # This is the client, we don't need that.

echo "Making zandronum-server executable"
chmod +x zandronum-server

# Create IWAD and PWAD folder
mkdir -p IWAD
mkdir -p PWAD

# Download latest freedoom for the default iwad
freedoom=$(curl -s https://api.github.com/repos/freedoom/freedoom/releases/latest | jq .assets | jq -r .[].browser_download_url | grep -m1 -i freedoom-.*.zip)

echo "$freedoom"
curl -L -o freedoom.zip $freedoom

unzip -j -o freedoom.zip '*/*' -d IWAD/

# Removing useless files
rm freedoom.zip
rm IWAD/*.html
rm IWAD/*.pdf

# Download the configuration file. The server fail to generate a config by itself so we have to supply one or it will crash
wget https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/doom/zandronum/zandronum.ini -O /mnt/server/zandronum.ini

touch adminlist.txt
touch whitelist.txt
touch banlist.txt

if [[ "${GEOIP}" == "1" ]]; then
    echo "setting up GeoIP"
    wget https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/doom/zandronum/GeoIP.dat -O /mnt/server/GeoIP.dat
fi


echo "Install finished."