DOOM II: Hell on Earth

DOOM II: Hell on Earth

Not enough ratings
[Linux] Create a Zdaemon Server
By Ch0wW
A quick & easy tutorial of how to start a Zdaemon server through Linux Debian/Ubuntu.
With the multitude of multiplayer-only DooM ports, there are lesser and lesser tutorials of how to make a server, and even lesser for Linux users.

This tutorial is then aimed at the people who would love to start a Linux server of Zdaemon, in a few minutes, and very easily.

And if you succeed it well, you could get many players, like in this picture (courtesy of BaseQ):

► Difficulty Level: Easy!

This tutorial is actually simple to complete. All you need to know is some very basic knowledge of how works your distribution of Linux. The rest will be taught to you at the same time you will enter the commands.

► Checking the version of Zdaemon
At the time of this tutorial, Zdaemon was released under the version 1.10b07! If it has been updated, just make sure to adapt the tutorial to the latest version made! (check this page[] to know what is the latest version).

Also, please send a comment, so that I'll update its contents.
In order to make this tutorial painless, you will need the following:

► Your Doom IWAD in UPPERCASE (DOOM.WAD, DOOM2.WAD, TNT.WAD, PLUTONIA.WAD) -- That's my personnal reference to find my IWADs.
► A FTP client to transfer files. FileZilla[] can be a nice choice.
► A SSH client to remotely control the server. Grab PuTTY!
Starting the installation
I assume you currently are logged in as root.

First of all, let's create a user that will safely handle all of this. In this tutorial, I will call it doomuser. Type this command to create an user:

adduser --force-badname doomuser
It will ask for a password.

Originally posted by x64 machines only!:
This step is for x64 machines only!!
As Zdaemon has no x64 executable, we will have to make our system understand we want to run every program. Write these commands:
dpkg --add-architecture i386 apt-get update apt-get install libc6-i386 libstdc++6:i386

Once it is done, connect with this freshly made account:

su doomuser

If everything works well, you should be to your home account ($HOME).

Organizing folders
With FileZilla, open the Sites Manager, and add a new site with the following settings:
  • Host: your IP you've got when you had your machine.
  • Port: Leave it empty.
  • Protocol: Use SFTP - SSH File Transfer Protocol
  • Authentification type: Normal
  • Username: doomuser
  • Password: the one you specified.

Once it is done and logged in, create 2 folders named "wads", and "zdaemon" (be careful, Linux is CASE-SENSITIVE!). Within wads, add your IWADs.
Installing Zdaemon
With PuTTY, we will move to our zdaemon folder, then we will download and extract it.
cd zdaemon wget && tar -xzvf zserv110b07_linux26.20151014.tgz mv zserv110_bin/* ./

Then, apply the correct permissions to run the program:
chmod 755 ./*

Testing the server
We are going to make a simple test, to see if the server can run.
./zserv -waddir $HOME/wads -iwad DOOM2.WAD

If that works, you should see your server on the Masterserver list, aswell as this message on PuTTY:

If the server tries to restart all the time, quit (CTRL+C), and check if you have done a spelling error, or followed correctly the tutorial.
Going further
Now that we know our server works, we are going to download templates that you will adapt to your suits.

► zserv.cfg and, aka the "template" files

If you want to modify your server, you will definitely need to modify the contents of zserv.cfg, and, if you want to add some custom wads for instance, or to play on coop instead of FFA.

Those templates are extremely complete.

► Additionnal ressources

► Startup scripts
If you want to make some startup scripts, you can use Systemd[]. It is straightforward to use.
Final Thanks
Some screenshots have been taken from some events done by my team, BaseQ. You can play on our servers at any time, you will be always welcomed :) .

If you need some help, you can contact me on:

Also, you can have further help from the developers of Zdaemon directly on their IRC. You can contact for instance Kilgore, or Phenex2.