Server setup

Quick Q4max server setup (for special game hosting).

Config.

I recommend to use all stuff from default Q4max config called “example-server.cfg”.

You should specify referee and rcon passwords, name of the server, motd and additional information like location, admin’s nickname, website, etc.

Network settings.

seta net_serverSnapshotDelay “10” gives ultra-low latency between server and player, but requires a fast and stable connection. With the snapshot delay “10” player can’t set his net_clientPrediction less than zero (or, maybe -2), cause server just don’t have additional milliseconds to predict players positions. I don’t know what snapshot delay is better – 10 or, for example, default 30. You can try different values to find better one.

seta net_serverMaxClientRate should be “25600”, it’s a maximum available client rate in Quake 4.

Downloads.

Specify those vars to enable file downloads on your server:

set net_serverDownload 2
set net_serverDlBaseURL “http://urltoyourfiles.com”

Download database can be accessible with ftp or http, so specify your protocol in url. Download database must have the same directories structure as your server’s game folder – all maps should be in q4base folder.

Modes.

Q4max has a custom game modes feature. We can’t live without custom modes – they needed to setup custom-fps server (fps = tickrate). Modes can be specified in q4max/modes folder using *.cfg configs. For quick setup I suggest to set 5 modes: Duel, TDM, CTF, FFA, CA. Every mode setting is a setting from in-game vote (or admin) menu – like timelimit, fraglimit, etc.

Duel:

tickrate 240
GameType 7

TDM:

tickrate 240
GameType 2

CTF:

tickrate 240
GameType 3

FFA:

tickrate 240
GameType 0

To create and set up the Clan Arena custom mode, I had to write out each variable, so now it’s the full mode config:

tickrate 240
armor 150
armordecay 1
armorsystem 0
autobalance 0
autothaw 90
buymode 0
caplimit 0
controltime 120
countdown 10
droppowerups 1
dropweapons 0
enemyspec 1
falldamage 0
footsteps 1
fragLimit 5
GameType 5
health 100
modelsounds 1
mutespecs 0
overTime 0
poweruprespawn -1
selfdamage 0
shuffleteams 0
startfreeze 0
startrespawn 0
startammomg 100
startammosg 20
startammohb 50
startammogl 10
startammong 50
startammorl 50
startammorg 50
startammolg 120
startammodmg 0
startammonpg 10
startweapons 1535
teamdamage 0
thawtime 3
thawwherekilled 0
timeLimit 0
tourneylimit 3
warmup 1
weaponrespawn -1

You should write the modes list with ” ; ” in your server config exactly like this (every mode name is your mode *.cfg file name, so it can be “duel240.cfg” for example):

seta si_mode "DUEL240"
seta si_modes "FFA240 ; CTF240 ; TDM240 ; DUEL240 ; CA240"

Maps.

Some maps like Monsoon needs to be modified to add 90+ fps support. Use the special WwW high-fps maps – you can download the zip from Downloads page on the site and put *.pk4 maps in q4base folder. Other necessary maps also can be downloaded.

Advanced server setup (for VPS or other dedicated systems).

All files can be downloaded from Downloads tab.

You can setup a server with Windows, Linux or macOS versions of Quake 4. But I recommend to use Linux or macOS, here is a guide for Linux (all commands can be entered through ssh, so log in before!)

First you need is install Quake 4:

  • Download Quake 4 1.4.2 native *.run installer
  • Copy it to your server in any folder and install using this command (from folder you placed the *.run file):
./quake4_linux_1.4.2.x86.run

It will be installed in /usr/local/games/quake4! And yes, you’ll need to scroll all of long license agreement text in terminal:D

  • Install unzip if you don’t have it yet:
sudo apt-get unzip
  • Download and place quake4server-linux.zip into /usr/local/games/quake4 and unzip it to same folder (-o key is “overwrite existing files”, also important):
unzip -o quake4server-linux.zip
  • Download and place additional language paks to q4base folder if you want, also you need to delete *.pk4.off inactive lang packs!
  • Place your example-server.cfg from q4max/cfg to just q4max and rename it to server.cfg
  • Configure (read about this above) and start your server:

quake4-dedicated – is a dedicated server startup executable file. It should be launched with command line:

+set net_serverDedicated 1 +set net_port 28004 +set fs_savepath *absolute path to your game folder* +set fs_basepath *absolute path to your game folder* +set fs_game q4max +exec server.cfg

You can rename server.cfg, change port and mod, also any config variables can be specified in the command line with +set prefix (command line variables will override cvars set in server config). Command line should be written in terminal like that:

./quake4-dedicated *your command line*

A few tricks:

On Unix-based systems we have pretty useful nano text editor. You can use it to edit your *.cfg’s directly through ssh without copying any files from-host-to-host. Just write this from your q4max folder (navigate to it before):

nano server.cfg

Then, after you finished, press control+x, “y” and press enter to save changes.

You can control the server over ssh. To keep process alive after closing the session, start it under the “screen”:

screen
./quake4-dedicated *your command line*

And press ctrl+a+d to exit screen. You can always back to server log monitoring with:

screen -r *your id*

*Your id* will appear if you type “screen -r”. This is how it looks on my server:

Congratulations! If you see this, your server is running <3 (don’t worry about “connecting with *wtf ping*”, it’s normal, ping should be so huge at the client connection moment)

sorry for red rectangles. just someone’s IPs.