Difference between revisions of "How to server"
m |
|||
Line 22: | Line 22: | ||
Example:<br> | Example:<br> | ||
pscp -i "C:\priv.ppk" -P 26789 faust.bsp myusername@myserver.org:/quakeantilag/qw/maps | pscp -i "C:\priv.ppk" -P 26789 faust.bsp myusername@myserver.org:/quakeantilag/qw/maps | ||
+ | You can create a script for your servers for doing it faster. | ||
===Updating server=== | ===Updating server=== |
Revision as of 14:13, 25 July 2024
This page describes how to setup a QuakeWorld server.
The easiest way of running a server is installing nQuakesv package. webpage Set the mouse cursor over the download button so you get a popup window and choose Windows or Linux server download.
It includes everything you need to start a server, including:
It is preconfigured, just asks the user simple questions to complete the configuration. Take note on the ports the servers will be running (you must know them to connect to the servers)
If for some reason you don't want to use nQuakesv, continue reading.
Server maintenance
Uploading a map
Map files (.bsp files) go into /qw/maps folder. A way to do it fast is the following:
- Download file locally
- Open terminal (in windows or mac or linux) and use scp to copy the file to the remote location:
scp <file.bsp> <username>@<server>:~/nquakesv/qw/maps
SCP also allows to use SSH keys (-i <path to key file>) and defining a custom port (-P <portno>).
Alternatively, you can use pscp (Putty scp), as it is better adapted to Windows OS.
Example:
pscp -i "C:\priv.ppk" -P 26789 faust.bsp myusername@myserver.org:/quakeantilag/qw/maps
You can create a script for your servers for doing it faster.
Updating server
If using Linux nQuakesv, use the built-in scripts to do so:
./update_binaries.sh ./update_configs.sh
KTX Server Setup
If for some reason you need to upgrade KTX, you'll have to compile it. here's how to do it (using QW-Group's github)
1. git clone https://github.com/QW-Group/ktx 2. cd ktx 3. cmake . 4. make -j$(nproc) 5. ls -altr (look for qwprogs.so) 6. copy qwprogs.so to ktx/ folder 7. restart the server
When restarting the server, if it outputs a message about failing to load qwprogs.so you'll have to recompile mvdsv also.
If you haven't done it already, you should edit pwd.cfg and change the rcon password. You should also edit portX.cfg and change the sv_serverip to the external (WAN) ip:port of the machine.
MVDSV Setup
Compiling MVDSV (using QW-Group's github):
1. git clone https://github.com/QW-Group/mvdsv 2. cd mvdsv/build/make/ 3. cmake . 4. make -j$(nproc) 5. chmod 755 mvdsv 6. copy mvdsv to your quake/ folder
Then run it. it has several command line parameters, such as -port (to choose port) -game (to choose folder) and +exec (to automatically run a cfg and +set sv_getrealip ). Example mvdsv execution commands:
./mvdsv -port 27502 -game ctf +set sv_getrealip 1 ./mvdsv -port 27500 -game prox +exec qw_server.cfg ./mvdsv -port 27501 -game ktx +exec port1.cfg
Firewall Configuration
iptables -A PREROUTING -t nat -p udp -i eth1 --dport 27500 -j DNAT --to 192.168.0.1:27500
Raspberry Pi server
Raspberry Pi (arm/arm64) binaries for qwfwd, mvdsv, and ktx binaries are available from https://builds.quakeworld.nu
Spike also compiled binaries for FTE, both client and server. Download them from here
Test results on a raspberry 1, 512mb ram:
- with 7 players + 1 spec, cpu usage was around 80% with everyone spamming sng at dm3 outside
- in conclusion it will be enough for 2on2, not sure on a competitive 4on4 match.
- raspberry pi 2 should be enough for 4on4
Qizmo
Even though Qizmo was created in 1997, it STILL is useful to:
-> Nail filter: Run on a server-side Qizmo, this can help with both the network and FPS lag associated with a lot of nailgun activity (think about 4on4 on e1m2). -> Compression: Yes, people still have low bandwidth connections and compression does help with this. -> Sending Multiple Packets: This is probably the most important one. With this feature alone you can lower and in some cases eliminate packet loss.
Installation
To install qizmo (LINUX!):
mkdir qizmo && cd qizmo wget https://www.quaddicted.com/files/tools/qizmo-2.91-intel-linux-glibc.tar.gz tar -xvf qizmo-2.91-intel-linux-glibc.tar.gz chmod +x qizmo
alternative url to download: ftp://62.8.228.163/pub/games/quakeworld/qizmo-2.91-intel-linux-glibc.tar.gz
Recommended configuration files
These are up to date server configuration files as of 2020.
filters.txt
not empty 10 if players = "0" remove not full 10 if players = maxplayers remove ping less than 100 10 if ping >= "100" remove ping less than 50 10 if ping >= "50" remove QWfwd (proxy) 10 if hostname ~!= "*qwfwd*" remove not QWfwd (proxy) 10 if hostname ~= "*qwfwd*" remove 20 if hostname ~= "*qizmo*" remove Qizmo 10 if hostname ~!= "*Qizmo*" remove Capture the Flag 10 if gamedir ~!= "ctf" remove Team Fortress 10 if gamedir ~!= "fortress" remove Rocket Arena 10 if gamedir ~!= "*arena" remove Cooperative 10 if hostname ~!= "*coop*" remove Race 10 if hostname ~!= "*race*" remove
qizmo.cfg
qizmo.cfg is generated the first time you use. so you might want to run qizmo first, and then edit the file. The changes you made in the generic menus (once you insert the password) are saved here. Here's an example:
maxclients 32 browser_a 100 20 1.000000 2.000000 name ie.besmella.com hostname Qizmo - ie.besmella.com public 1 quakedir ./ //if qizmo binary is in the same folder as Quake maxs2crepeat 5
Change name and hostname for your own. Notice that public is 1.
sources.txt
Editing server sources is important because it will allow the clients to ping the quakeworld servers and connect to them. The file sources.txt should have the following lines (you can remove everything else):
master "QuakeServers.net" 78.47.113.68:27000 2 master "FodQuake" 5.9.97.180:27000 2
The explanation for those lines are:
master <name of the master> <ip:port> <password protection>
Notes:
- <ip> MUST BE IP, hostname doesn't work;
- <password protection> possible values: 0: none ; 1: protect delete; 2: protect delete/add; 3: protect delete/add/read
Starting Qizmo
Starting qizmo (with the following settings: port 28000, report to masterservers, admin password set to passwd)
./qizmo -p 28000 -r -a passwd
Here's an example script you can use to run it (or just run a screen):
echo -n "* Starting qizmo... " if ps ax | grep -v grep | grep "qizmo" > /dev/null then echo "[ALREADY RUNNING]" else ./qizmo -p 28000 -r -a passwd > /dev/null & echo "[OK]" fi
Troubleshooting
Dependencies: try to get the library lib32z1
apt-get install lib32z1
if that doesn't work, try these: ia32-libs or libc6-i386 or libc6-dev-i386
For the server admins that run Qizmo(s) and when they refuse to start. You can use the following command in the shell (linux) to clear the queue without needing to restart/reboot the whole machine.
ipcs -q | cut -d" " -f2 | xargs -n 1 ipcrm -q
more info
refer to the qizmo.html page below.
External links
- Qizmo download (unofficial)
- index.htm page from qizmo
- Qizmo stuff
- Qizmo main page