Qizmo

From QWiki

Qizmo is a QuakeWorld proxy, it works with network packets moving between a QW client and a QW server. Made by Flag fi.gif Zibbo and Flag fi.gif Perkele of UDP Soft.

Official website (now dead)
This page is a guide to Qizmo. To more information about running a Qizmo on a server, visit How to server.

How to use a Qizmo (Quickstart)

  1. Start QuakeWorld
  2. Type /connect <ip to qizmo> in the console and press enter (now you should be connected to the Qizmo).
  3. Type .connect <ip to server> to connect via current Qizmo the the given server ip.*

* With the command cl_useproxy set to 1, there is no need to use the .connect command as the regular /connect command will work just fine (will only work in ezQuake).

Using the Qizmo menu

  • Type .menu bind std to get the default bindings. After you enter this you can navigate through the different Qizmo menus.

Default Qizmo Bindings

  • uparrow = up
  • leftarrow = left
  • enter = select
  • pageup = pgup
  • home = home
  • insert = help
  • downarrow = down
  • rightarrow = right
  • pause = toggle menu on/off
  • backspace = back
  • pagedown = pgdn
  • end = end
  • del = delete


Qizmo Lag fix features

Qizmo has some unique features regarding lag and packetloss reduction. These are described in this article by Dirtbox and have their own wiki page Qizmo lag fix.

Color Forcing

See what's color forcing. Following text was borrowed from Pektopah

To enable color forcing in Qizmo use your arrows and enter to select "Teamplay help" -> Team color set this value to X/0 (zero). Change also the Enemy color to X/4. It should look like this: Qizmo color forcing menu.jpg

Now you have red enemyskin and white teamskin. You can change these colours by changing the values of "Z" in the X/"Z" setting. To get QizmoColours(C) really working the next step is to set our team- and enemyskins.

Type "enemyskin qizmo" and "teamskin qizmo" Then turn off colorforcing by typing "teamcolor off" and "enemycolor off". You've to write "off" there, the usual "" is not enough.

You need special kind of skins installed in your Quake dir, you can try this one

When connecting to a server remember to use .connect, otherwise you'll be disconnected from the qizmo-server, and thus colours wont work. Qizmo color forcing.jpg

The first ID colour is white (as the ID is set like 1,2,3,4,5..a.s.o as people connect to a server) so the colours still work if you're all white. Invite a friend to test these with you so you'll notice the difference (second ID-colour is brown).


More options

For more options, check the original index.html page below.

Qizmo server

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