Quake – Hosting a Dedicated Internet / LAN Server

A setup guide for players that wish to host their own dedicated server for Internet or LAN play.

Introduction

All credit goes to StoneCold!

This guide will show you the steps on how to create and customize your own dedicated server for Internet or LAN play for the new 2021 re-release of Quake.

Let’s dive right into with the requirements below!

Requirements

To host your own dedicated server you’ll require the following:

  • A spare home computer / laptop on which to host the server if you plan on hosting the game from your home or a VPS (virtual private server).
  • A second Steam account with a copy of the game (Quake) if you want to host on VPS for an internet server.

Creating a LAN server

By starting a “Local Play” game it actually creates a LAN server which can be connected from other machines by using the console “connect <ip>” command.

Therefore, you don’t require a second copy of the game if you want to play over LAN with others!

Creating an Internet Server

Step 1:

On your hosting computer or VPS, login to the Steam account that you will use for hosting your dedicated server.

Step 2:

Download the game on your hosting computer or VPS.

Step 3:

Configure the server command line in order to create your server.

This can be done in three ways:

  • By means of the “Launch Options” directly in Steam using the properties of the game.
  • By creating a desktop shortcut of the “Quake_x64_Steam.exe” file located in your “rerelease” folder and then specify the launch options in the “Target” area of shortcut.
  • Create a server batch file (Server.bat) file.

An example of using the command line for starting a Deathmatch server through Steam or desktop shortcut is as follows:

  • -dedicated 16 -port 26000 +net_crossplay 0 +internetenable 1 +r_rhirenderfamily d3d11 +timelimit 20 +fraglimit 50 +bot_numBots 4 +bot_skill 2 + g_showintromovie 0 +map dm1

Herewith a server batch file example:

  • Quake_x64_steam.exe -dedicated 16 -port 26000 +net_crossplay 0 +internetenable 1 +r_rhirenderfamily d3d11 +timelimit 20 +fraglimit 50 +bot_numBots 4 +bot_skill 2 + g_showintromovie 0 +map dm1

Create a new text file / document, copy and paste the contents from above into the text file and save it. Then rename the extension of the text file to .bat. You should be prompted to accept the file extension change, if not, then ensure that your Windows settings are set so that extensions are visible for you to edit.

If want to create a COOP server, simply modify the command line as follows:

  • -dedicated 16 -port 26000 +net_crossplay 0 +internetenable 1 +r_rhirenderfamily d3d11 +g_showintromovie 0 +map start +coop 1 

The “start” map above refers to the starting area of vanilla Quake 1’s campaign, so the server will launch all clients connecting, straight to the starting map.

A breakdown of the options are as follows:

  • dedicated 16 – specifies that you want to launch the game as dedicated server with a maximum player count of 16.
  • port – specifies the UDP game port that your server will be running on. Ensure that you port forward the port accordingly in your router / firewall.
  • net_crossplay – specifies whether or not your server should be enabled for crossplay. I highly doubt its necessary to include this one, see that there isn’t a way for console players to join your server as I don’t believe the console is accessible on consoles (no pun intended). If it is, please correct me if I’m wrong and I’ll edit this part.
  • internetenable – specifies whether your server should be reachable by WAN connections. I’m not sure if settings this cvar to 0 will restrict the server to LAN connections only, seeing that I didn’t have an additional PC to test on my end, but I suppose that is the desired effect if one sets this setting to 0.
  • r_rhirenderfamily – specifies the device render that the hosting PC should use. This is especially useful on VPS machines that doesn’t have OpenGL or Vulkan support. I set mine to d3d11 on my VPS and it works a treat, so set this accordingly if your host PC doesn’t have a dedicated graphics card capable of running Vulkan or OpenGL.
  • timelimit – specifies the time limit per map in minutes
  • fraglimit – specifies the max number of frags per map
  • bot_numBots – specifies the number of bots that you want to add to your deathmatch server
  • bot_skill – specifies the bot skill level. I personally set mine to 2 (Normal difficulty) which I find is the sweet spot for a nice balanced experience, but its up to you which one you want to select.
  • g_showintromovie – specifies whether or not to show the startup movies before launching your dedicated server. I suggest keeping this setting and always have it set to 0, otherwise those pesky movies will play every single time you launch your server.
  • map – specifies the map that you which your server to launch with

Step 4:

Once you’ve specified your command line parameters, launch the game via the Steam client (by clicking on Play) ,by double-clicking on the desktop shortcut you’ve created or running your Server.bat file.

Step 5:

Your dedicated server will now launch and boot into a black screen, this is normal, don’t worry.

Step 6:

Your dedicated server should still allow you to access the console by pressing the tilde button (~) left to 1 on your keyboard.

Step 7:

With your dedicated server booted, you can always Alt+Tab, so that you can “get out” of the dedicated server instance to do other things on your hosting computer / VPS.

Connecting to Your Server

With your dedicated server up and running, it’s time to try it out for yourself!

Due to the fact that the MatchBrowser in-game only shows PlayFab P2P (player hosted) server instances, your dedicated server will not be visible for others to join directly.

Therefore, you will need your WAN IP so that people / friends / community members can connect to it directly.

You can determine your WAN IP address by opening up Google and type “whatsmyip” (without quotes) in the google search box and it should return what your current public WAN IP address is.

In order to connect to your server you will use the “connect” command as follows:

  • connect <your server’s WAN IP address>:port number

For example:

  • connect 154.10.11.12:26000

Specify the port number with the colon directly after the IP address as indicated above.

On the dedicated server, have a look in the console, you will see when connections are made once people join your server, irrespective if its a WAN or LAN connection that is made to the server.

I have tried using DNS to connect to my personal server, but unfortunately trying to connect doesn’t yield the desired result. Therefore, I suggest that you DONT share your WAN server IP (especially if its a static IP) with people that you don’t trust, so please keep this in mind.

Once you’re connected to your server, you might need to close the console by pressing tilde (~) again and then press the Esc button to remove the game menu so that you can start playing on your server!

Additional Settings

With your server up and running, you might want to change to a different map / level.

The following commands might be of interest to you, take note they only work in the dedicated server’s console window:

  • changelevel – this will instruct the server to change to a map but keep all clients still connected to the server.
  • restartserver – as the name implies, this will restart your server with the current map and settings.
  • addbot – if you want to add more bots to the existing bots on the server.
  • kickbot – kick a specific bot / all bots from the server.
Volodymyr Azimoff
About Volodymyr Azimoff 13981 Articles
I love games and I live games. Video games are my passion, my hobby and my job. My experience with games started back in 1994 with the Metal Mutant game on ZX Spectrum computer. And since then, I’ve been playing on anything from consoles, to mobile devices. My first official job in the game industry started back in 2005, and I'm still doing what I love to do.

Be the first to comment

Leave a Reply

Your email address will not be published.


*