How to Set Up a Quake (DarkPlaces) Server on a VPS

2025-07-04 DarkPlaces tutorials kleskby 0 68


This guide will help you host your own Quake server using the DarkPlaces engine (e.g., Zircon) on a Linux VPS , and manage it with PM2 , a powerful process manager.


✅ Requirements

  • A Linux-based VPS (Ubuntu/Debian preferred

  • Access via SSH

  • Your Quake game files (at least the id1 folder)

  • The server executable (e.g., zircon_beta_linux_dedicated_server )


1. Connect to Your VPS

Use any SSH client like PuTTY or terminal:

 ssh username@your_vps_ip 

2. Create Server Directory

mkdir quake 
cd quake 

3. Upload Game Files

Transfer your id1 folder (containing pak0.pak and pak1.pak ) to the quake directory using scp , SFTP, or any file manager.

Example (from your local machine):

 scp -r id1 username@your_vps_ip:/home/youruser/quake/ 

4. Upload the Server Executable

Copy your DarkPlaces server binary (e.g., zircon_beta_linux_dedicated_server ) into the quake directory.

Make it executable:

 chmod +x ./zircon_beta_linux_dedicated_server 

5. Install Node.js and PM2

Install Node Version Manager and PM2 :

sudo apt update 
sudo apt install npm -y 
sudo npm install -g n 
sudo n stable 
sudo npm install pm2@latest -g
pm2 startup

6. Setup PM2 Log Rotation

pm2 install pm2-logrotate 
pm2 set pm2-logrotate:max_size 1G 
pm2 set pm2-logrotate:compress true pm2 set pm2-logrotate:rotateInterval '0 * * * *' 

7. Create autoexec.cfg (Optional but Recommended)

Inside quake/id1/autoexec.cfg , add your server CVARs:

hostname "My Quake COOP Server" 
sv_cheats 0 
pausable 0 
deathmatch 0 
coop 1 
skill 1 
teamplay 1 
rcon_password "YourPassword" 

8. Start the Server with PM2

pm2 start "cd quake; ./zircon_beta_linux_dedicated_server -customgamename ModName -customgamenetworkfiltername ModName -dedicated 4 -nosound -nocdaudio +map start" --name quake_server 

Replace ModName and other values as needed.

Optional Engine Parameters (start with -):

Parameter Description
-game ModDir Sets a custom mod folder for loading game files instead of id1.
-customgamename ModName Sets a custom game (mod) name.
-customgamenetworkfiltername ModName Sets the name used for filtering on network/server browsers (e.g., in a server list).
-dedicated 4 Sets the amount of player slots available.
-nosound Disables sound. Essential for servers (saves resources).
-nocdaudio Disables CD audio playback (usually not needed or even available on servers).

Optional CVARs (start with +):

CVAR Description
+hostname COOP Sets the name of the server that appears in server browsers.
+sys_ticrate 0.02 Controls how often the server ticks (updates).
0.02 = 50 updates/sec (20ms). Lower is faster but uses more CPU.
+net_usesizelimit 0 Disables network packet size limits. Useful for mods or large maps, but may increase bandwidth usage.
+sv_cheats 0 Disables cheat commands. Set to 1 if you want to allow cheat use (e.g., noclip, god).
+pausable 0 Disables the ability to pause the game (useful for multiplayer servers).
+rcon_password YourPassword Sets the RCON password (remote admin access). Change this to something secure!
+deathmatch 0 Disables deathmatch mode. Set to 1 for PvP-style free-for-all.
+coop 1 Enables cooperative mode (team PvE, usually for campaign maps).
+skill 1 Sets game difficulty. Values:
0 = Easy
1 = Normal
2 = Hard
3 = Nightmare
+teamplay 1 Enables teamplay rules (e.g., friendly fire, team scoring). Useful for co-op.
+map start Loads the specified map at server startup. Here, it loads the start map (the Quake episode hub).

9. Check Server Status

 pm2 status 

10. Save PM2 Process List

pm2 save

✅ Tips:

  • Use pm2 attach 0 to access server console (0 is the process index shown in pm2 status)
  • Use pm2 restart quake_server to restart your server.

  • Use pm2 logs to view logs.

  • Use pm2 stop quake_server to stop it.





Tags: darkplaces, vps, server
Owned by kleskby#1837
Telegram
Close

You have no new notifications.


You have no new messages.