Qizmo copyright 1998 Juha Kujala and Ilkka Rajala
What is it?
Qizmo is a QuakeWorld proxy, it works with network packets moving
between a QW client and a QW server. Qizmo is based on FAQ-Proxy 1.02
and is backward compatible. New major features: menu system, server
browser/pinger, voice channels, data compression, FPS boosting, and
lots of small stuff. Supported QW versions are: 2.0 - 2.33.
Shareware
Qizmo is shareware. When you register, you receive a registration
code that unlocks all the features on any Qizmo you connect to. The
registration code can only be used by one person at a time. If another
person tries to use the same reg. code at the same time, the first
person will be kicked off.
Registering
See REGISTER.txt for registering info.
Or if you want to register online now, you can register Qizmo at
<http://qizmo.sci.fi>. Just follow the "register" link.
DISCLAIMER
QIZMO IS SUPPLIED AS IS. THE AUTHORS DISCLAIM ALL WARRANTIES,
EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES
OF MERCHANTABILITY AND OF FITNESS FOR ANY PURPOSE. THE AUTHORS ASSUME
NO LIABILITY FOR DAMAGES, DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT
FROM THE USE OF QIZMO.
Installation
Just extract the package somewhere, quake dir works just fine if
you are lazy. :)
Running
1. Start qizmo:
qizmo -a your_admin_password_here -b quake_directory
That is the simplest form (see commandline options).
Later on you can drop the admin password since it is
saved in password.cfg.
2. Start qwcl (if you wish to use qizmo's sound system add -nosound
on the qwcl commandline).
3. Type "connect localhost" in qwcl console.
4. You should now see the qizmo menu.
Type "proxy:menu bindstd" in qwcl console.
You can now move around the menus with the arrow keys.
5. Go to the acess rights menu and input the admin password
to unlock all features.
Command line options
If you want qizmo to start qwcl automatically, you can add the
path to qwcl on qizmo commandline:
Qizmo [qizmo options] [path to qwcl] [qwcl options]
You will also need to do this for f_modified reply to work.
for example:
c:\quake\qizmo\qizmo -p 27501 c:\quake\qwcl -nosound
-a admin_password
Sets admin password. You only need to use this once, all
password are saved in password.cfg. If you have a password.cfg
from a previous version of the FAQ Proxy it will error with
invalid password.cfg. Delete the old version then re-setup the
password.
-b quake_dir
Tells qizmo where to find Quake files. Needed for sound stuff.
Defaults to current dir.
-c client_interface
If the host system has multiple ip's (e.g. dialup adapter
and network card) you can restrict client connections to only
one interface with this option.
-d default_rights_flags
The access rights clients have before entering a password.
You only need to set this once, it is saved in password.cfg.
Possible flags are: acromsptvx, see access rights menu for
more info.
-e demo_dir
Tells qizmo where to record demos. Defaults to quake_dir/qw
(see -b).
-h or -?
Displays list of commandline options.
-i priority_level
Sets qizmo priority level, 1-31. Higher number = more cpu time for
qizmo. In windows version only.
-l log_file_name
Creates a log file of qizmo console.
-m max_clients
Maximum number of clients allowed in the qizmo at the same time.
Default = 32.
-n name
Sets qizmo name (defaults to hostname), for "say name: blah"
commands, also visible in menu bars.
-p qizmo_port
Default = 27500.
-q
Quiet mode. Does not print anything on the console.
Helps keep glqwcl in the right window.
-r master_server_list
Reports qizmo to given master servers.
-s server_interface
Same as -c but for server connections.
-v
Verbose mode. Prints more stuff on the console.
-x TCP_port
If you wish to allow TCP connections to your qizmo set this.
Does not affect outward TCP connections.
How to get Qizmo to work with GameSpy:
1. Copy Qizmo in your quake dir.
In GameSpy:
2. Go to "GameSpy/Games and Filters" menu and set
"QuakeWorld/Command Line" to:
qizmo.exe [qizmo options here] qwcl.exe [qwcl options here]
3. Go to "Tools/Options" menu and uncheck
"Use Network Connections for QuakeWorld"
How to get Qizmo to work with PingTool:
In PingTool:
1. Go to File/Options/QuakeWorld menu.
2. Set "Quake sub-directory" to your Qizmo dir.
3. Set "QuakeWorld Executable and Command Line" to:
qizmo.exe [qizmo options] your_quake_dir\qwcl.exe [qwcl options]
Using menu
Qizmo comes with an easy to use menu system. All you need to do is
bind menu commands to your keys. There is an easy way to do this, by
just typing in the console "say proxy:menu bindstd". This will bind
menu keys to your arrowkeys, enter, backspace, insert, home, pageup,
pagedown, end, delete and pause. If you are not happy with this, you
can bind menu commands anywhere you want. Qizmo comes with example
"menu.cfg", where all menu commands are bound to same keys as in
"say proxy:menu bindstd". You just have to edit that, and then
"exec menu.cfg".
Now that you have your menu keys bound (I'm assuming here, that you
used proxy:menu bindstd to bind the menu commands to default keys),
you can move around the menu. If you don't see the menu, press "pause"
which is used to switch menu on/off. After you see the menu, use
arrowkeys to move around. With "enter" you can go to deeper level in
menusystem, or choose action. "Delete" is used to delete some items,
like passwords or server sources, etc. "Backspace" moves back one
level in menu. Home, end, pageup and pagedown behave like they
normally do..
Some of the menus have additional Sub-menus. These can be accessed by
using the left and right arrow keys if you have bound them to standard
key mappings.
Server browser
The server browser works pretty much like gamespy except that it is
10 times faster and 10 times more accurate. :) The problem with gamespy
is that it fetches serverinfos while pinging, which causes randomly inflated
pings. Qizmo on the other hand first pings the servers with small ping
packets and after that fetches all serverinfos. You can ping about 100
servers per second on a modem and 200 with isdn, without causing more than
10ms error in the pings. Try pinging 10 servers simultaneosly in gamespy
(on a modem/isdn link) and even servers running on the same machine might
report as much as 200ms ping difference. Remember the old saying: good
pings come in small packets. :)
Ctrl:
Fast connect:
Will ask you for a server address, and connect you there without
having to mess with the server browser..
Disconnect:
Disconnect from server.
Reconnect:
Reconnect to last/current server.
Mode:
Toggle between spectator and player mode.
From:
Qizmo to connect from. Use 'last' if you have the serverlist on your
local proxy but need a server side proxy for compression or something.
TCP connect:
Creates a TCP connection between two Qizmos. Some firewalls filter all
UDP making playing Quake impossible. This feature was put in to solve
that problem. You need to start qizmo with -x port_num to allow TCP
connections in:
qwcl <---> qizmo1 <---> firewall <---> qizmo2 <---> server
^ tcpconnect qizmo2:port ^ -x port on the commandline
Fltr:
Server filter list. [select] = toggle filter on/off. [delete] = delete
filter (admin). [help] = edit filter (admin).
Editing filters:
Filters use a very simple instruction language. Each line in
the code has one compare operation and one jump operation.
The format of the line is:
line# [if data1 op data2] <goto line# | keep | remove>
line# : line number (1-9999)
if : execute jump if condition is true, otherwise skip to next line
data1 : serverinfo data/rule, possible keys are: gamedir, ping,
players, maxplayers, map, ip or any key from server rules
op : compare operation:
= : strings match (case sensitive)
!= : strings don't match (case sensitive)
~= : strings match (case insensitive)
~!= : strings don't match (case insensitive)
< : less than
<= : less than or equal
> : greater than
>= : greater than or equal
data2 : like data1 or actual string when enclosed in "".
strings can have wildcards: ? matches any single character,
* matches any number of any characters
goto : jump to line line# (can only jump forward)
keep : passed filter
remove : didn't pass filter
Trying to jump/go to a line that does not exist = passed filter.
See filters.txt for examples.
List:
The serverlist. [delete] removes selected server from the list.
[select] displays info for selected server:
Control:
Obvious.
Players:
Obvious.
Rules:
Obvious.
Sources:
Here you can see/modify what source lists the selected
server belongs to.
Sort:
Serverlist sort mode.
Ping:
Start pinging:
Starts pinging current server list.
Stop pinging:
Stops pinging.
Update sources:
Refreshes server list from selected sources.
Stop update:
Stops serverlist refresh.
Source:
Sources list. [select] = toggle selected source in/out.
[delete] = delete selected.
Add source:
You can add file (favorite list) or master sources with this.
Setup:
Ping timeout:
Time, in milliseconds, to wait for a ping reply from a server.
Servers that fail this will show a ping of 999 and will not
be queried for serverinfo.
Number of pings:
Number of times to ping each server.
The shown ping will be the average of all pings.
Pings per second:
Number of pings to send out per second.
Good values are: 100 for modem, 200 for isdn, more for faster.
(WARNING: some crappy modem/isdn drivers may choke at as low
as 30 pings per sec.)
Serverinfo timeout:
Time, in milliseconds, to wait for a serverinfo reply.
Serverinfo retries:
Number of times to retry a failed serverinfo request.
Simultaneous refreshes:
Number of simultaneous serverinfo refreshes.
Good values are: 10 for modem, 20 for isdn, ...
Source update timeout:
Time, in milliseconds, to wait for master server reply.
Source update retries:
Number of times to retry failed server list request.
Keep dead servers:
Time to keep nonresponsive servers in the serverlist.
Keep serverinfos:
Time to keep player/rule infos for a server.
Demo recording
Advantages over qwcl recording:
- doesn't disable deltacompression!
- fps effects aren't recorded
- automatically starts a new demo when the level changes
- you don't have to record on the same machine as you are playing on
-> more fps, no disk-write lag
Get pings: [normal|demo|always]
normal = normal mode (pings updated when +showscores on)
demo = update pings when recording
always = update pings always
Overwrite:
yes = always overwrite previous file
no = skip to demonameX.qwd where X increases from 2 until a free filename
is found
Logging:
Creates a log file of game events similar to qconsole.log.
Demo player
- play/stop/rewind/fastforward/slowmotion or custom playing speed (-10000%
to 10000% of normal (.demospeed x))
- can play demos recorded with any version of qw (converts to qw 2.3)
- chasecam recorded demos play back correctly (without the player model)
- uses the observer mode (see observer mode)
- demos behave like normal clients (see client list)
Client list
List of people connected to the Qizmo.
Max Observers: Maximum number of clients allowed to observe through
your eyes.
Observer pw: People who try to observe you need to enter this password.
Allow say_game: Observers can use say_game and say_game_team to send
messages to the server.
Kick: kick someone observing you (or kick from the proxy (needs admin
rights))
Follow: Connect to the same server, or start observing the same player as
someone else is currently viewing.
Observe: start observing
Server: brings up server menu for the selected server.
Voice channels
This is one of the coolest things Qizmo has to offer : Realtime voice
communication between Qizmo users. There is one limitation though.
All players who wish to talk to each other have to play through the
same Qizmo somewhere. In addition to this you have to have Qizmo
running on your computer playing Quake sounds for you and recording
sounds from your microphone. So your setup should look like this:
client - Qizmo1 - Qizmo2 - server.
Qizmo1 is the proxy running on your own computer, and Qizmo2 is the
proxy where all the people you want to talk with are
connected. Firstly you have to tell Qizmo1 to start playing and
recording etc. See "Sound system" below for help on how to do that.
After you have sound working, tell Qizmo1 to connect to Qizmo2 (if you
are already connected, that's fine too). After that, make sure you see
Qizmo2 menu! This is important. You can move between Qizmo1 and Qizmo2
menus with "previous proxy" and "next proxy" in main menu. After you
are sure you are actually are in Qizmo2 menu, goto "Voice channels"
menu and then move to "join" using the left and right keys. You
should either join a channel already in the list, or create new a
channel by hitting "new channel". Remember, everyone you want to talk
with has to be on the same channel as you AND in the same Qizmo
(Qizmo2 in this case). After this move to "bind" and select the
channel you are in. Qizmo will ask you which key you wish to bind the
talk functions to for that channel. Choose whatever key you want, and
after that you should be able to talk on that channel by keeping that
key pressed, and talking into your microphone. If you forgot to run
qwcl with -nosound it will error with 'Sound capturing not
initialized'.
You can be on a maximum of 8 channels at any one time.
There is a special channel called "near" that always sends your
messages to people that are playing on the same server as you and
are visible from your current location.
"Feedback" will send your voice back to you (good for testing), and
autodrop rate drops your rate when you are talking to give voice
packets some extra bandwidth.
Player list
Info about players playing on the same server as you.
<del> kicks the selected player (if your rcon_password
is correct)
Config manager
You can save all your settings here. The config is saved in
cfg/player_name.cfg, and is automatically loaded when you connect.
In the extra menu you can add custom config commands. The commands
are regular proxy: commands. For example, if you add 'join x', you
will automatically join voice channel x whenever you connect. There
is also a special command called 'stuff', which can be used to make
qwcl execute any console command. For example to enable c2s compression
automatically, you would add 'stuff say proxy:packc2s 1' in the
server side proxy.
Sound system
Sound system is available in windows versions only. Linux version has
some experimental sound code (sound playing might work), and full
Linux support is coming.
First of all, if you want to use any of these sound features, you
can't have any other application using your soundcard. So if you have
Quake running on the same computer, you have to use -nosound option
(qwcl -nosound) to start up quake. Secondly, if you want to use voice
stuff, you need to have a full duplex sound card (SB 16 or better
should do the job (with latest drivers)).
Play game sounds:
Starts playing game sounds. If you don't start Qizmo from quake
directory, you have to use Qizmo commandline option -b to define
your Quake directory.
Play voice channels:
Enables playing of voice channels. See description of voice
channels above.
Sound capturing:
Enables sound capturing.
Use DirectSound:
Try with OFF setting if having problems.
Use QWCL window:
Tells Qizmo to mix sound output with qwcl's output. So you can have
qwcl play game sounds and qizmo play voice channels.
Compatibility mode:
OFF = default mode (=22050Hz usually)
Quake = 11025Hz mode (sounds like quake)
Hi-Fi = 44100Hz mode (when playing mp3's and stuff)
Leet-ass filtering:
Toggles special filtering mode for voice messages.
Improves sound quality, but takes a little more cpu.
Autodrop c2s rate:
Drops client-to-server rate when talking on a voice channel.
Settings:
Enhanced stereo:
Plays stereo slightly differently (more 3D effect) than Quake
normally does.
Sound mix-ahead:
Sound buffering. If the sound crackles (low fps) set this higher.
Voice buffering:
Determines how long you want to buffer voice messages before
starting to play them (set higher if crackles = pl/slow link).
Game snd volume:
0% = silent, 100% = quake volume level, higher = more amplification
and cutoff distortion.
Voice volume:
Voice output volume.
Voice input gain:
Voice input volume. Change this if _your_ voice is too quiet/loud
in relation to other players.
FX attenuation:
How much you want to lower game sounds volume when playing voice
channel messages.
Data compression
If you are playing through two Qizmos, you can compress all data
between them. Data compression ratio is 20-30% in server-to-client
messages, and 30-50% in client-to-server messages. For example, if
you have modem, you can have one Qizmo on your own computer, and from
there connect to some Qizmo which is running on other side of your
modem line (maybe on one of your ISP computers), and compress data
between them, and your modem line has to deal with 80% less data than
usual. This doesn't decrease ping too much, but it will allow you to
use higher rate, and your modem doesn't choke as easily as before in
battles.
If you want to use compression, you have to start compressing at the
Qizmo which is going to compress your data. So if you have setup like
this: client -> Qizmo1 -> Qizmo2 -> server, and you want to compress
server-to-client data, you have to put server-to-client compression on
at Qizmo2. If you want to compress client-to-server data, you have to
put compression on at Qizmo1. You can move between Qizmos from the
menu (previous proxy/next proxy).
Quality line mode:
This will improve compression ratio a lot, but it also multiplies any
packet loss between the two proxies. If you have a reliable connection
between the proxies, turn this on. (Note: only pl BETWEEN the proxies
is multiplied, other pl has no effect. Type .showdrop and ,showdrop
to see proxy<->proxy pl (gives a msg only when a packet is dropped))
Lossy compression:
Normally every bit of the original data is preserved. Lossy compression
drops some unneccessary bits here and there to improve comprssion ratio.
See also "fps settings" for more bandwidth saving options.
Send each packet:
If you are suffering from packet loss, and have the bandwidth, you can
make qizmo repeat each packet 1-5 times. Great for those overloaded
cablemodem connects. (Qwsv and qwcl both handle repeated packets correctly,
so you can use this feature even if you don't have a qizmo on the other end.
However, qwsv does not reply to each repeated packet, so you will have to
have another qizmo on the server side if you wish to repeat server-to-client
packets.)
Access rights
If you have access to a feature, that feature is shown in red,
and those you don't have access to, are shown in white.
Input password:
Will ask you for a password.
Edit auth. data:
Here you can password-protect some features. For example, recording
a demo on your hard drive is probably something you don't want a
stranger to do.
You need admin rights to edit authorization data.
There are two authorization ways, passwords and addresses (ip:port).
You can use wildcards in IP authorization keys to match whole subnets.
The most specific entry is always taken when multiple entries match.
The password.cfg in the windows package auto-admins anyone coming
from localhost:27001 (QWCL always binds to port 27001).
Teamplay help
Soundtrigger:
Soundtrigger is a special character that triggers sound playing
in say_team messages. For example, if you set soundtrigger to !
your teammates can do 'say_team !player/death1.wav' and you will
hear a death scream. You can put your own sounds to id1/sound
directory.
Play mode:
sequential = text to speech mode, words after soundtrigger
character are played sequentially (need to use qizmo's sound system)
concurrent = old mode, all words after soundtrigger character are
played concurrently
View say_team %-codes:
You can use the following codes to report your status to your
teammates (only in say_team messages):
%A : Armour type.
%a : Armour.
%b : Best Weapon and Ammo.
%e : Number of enemies in your vicinity.
%h : Current Health.
%l : Nearest location from .loc file (or 'someplace' if none found).
%n : Will only send the message to teammates in your vicinity.
%o : Number of teammates in vicinity.
%p : Powerups you have (quad, pent, ring, flag)
%w : Weapon in Hand and Ammo you have.
%x : Name of object you are looking at.
%y : Location of object you are looking at.
%g : Soon appearing powerups (15 sec) or 'quad' if none or timers off
%i : Name and location of item you last picked up.
%j : Name and location of item you last pointed to (%x at %y).
%k : Name and location of item you last picked up or pointed to.
%m : %k if less than 5 secs ago, nearest item otherwise
%d : Where you last died.
%r : Last reported location (%l).
%S : Skin.
%C : Color.
%L,%O,%E : Like %l,%o,%e, but remembers the situation 5 secs after death.
%q : Powerups of last seen enemy.
%t : %x at %y
%z : nearest waypoint, based on the direction you are looking to
%Z : nearest waypoint, based on the direction you are moving to
%u : what you need (see need menu)
Team skin:
Everyone who is in your team will have the skin you put here.
Useful when playing mixed team games. (disabled in TF)
Enemy skin:
Same as team skin but for enemies. (disabled in TF)
Team color:
Team color forcing. Shirt/pants, 0-255, * = don't change,
x = use player number.
Enemy color:
Enemy color forcing. Shirt/pants, 0-255, * = don't change,
x = use player number.
Message flash:
Talking teammates give a small flash, like firing a weapon.
Drop missed %x's:
Don't report 'nothing' if %x or %t doesn't hit a target.
TF class pointing:
Shows the class of the player being pointed at (%x/%t).
Loc:
Display nearest mark:
Displays nearest mark.
Delete nearest mark:
Deletes nearest mark.
Mark current location:
Marks current location.
Mark with previous name:
Marks current location with the name of the previous mark.
%r/%b -> enemy/own|red/blue
Toggles whether %r and %b in location name will be replaced
with red/blue or enemy/own.
Autoload locs:
Toggles automatic .loc loading on levelchange.
Include automarks:
Toggles inclusion of automatic marks (weapons, armors,
powerups, megahealths).
Flush current marks:
Clears all marks from memory. (.loc file isn't affected)
Reload marks from .loc:
Loads marks from .loc
Marking allows you to place a beacon on a spot where you are standing. You
can then, using one of the report commands %l, tell your teammates which
beacon you are currently closest to. This is useful in Team Games to allow
increased teamwork and also better level coverage. The beacon is stored in
a .loc file located in the directory where the proxy is located. The naming
convention of it is related to the actual map name of the current map you
are on:
i.e DM6 would be DM6.LOC
E1M4 would be E1M4.LOC
PUNISH.BSP an external map would be PUNISH.LOC
Way:
Waypoints behave exactly like location marks, but they also save
the direction you are looking at. You can use %z/%Z in messages
for nearest waypoint.
Point:
Items that can be pointed to (%x). (red = yes, white = no)
Pick:
Items that will be reported by %i, %k or %m. (red = yes, white = no)
Names:
Here you can redefine all the item names used by Qizmo.
Need:
Need levels for %u report command.
Observer mode
Observer mode:
new = puts you in spectator mode, you can fly around the level
freely or use qw's chasecam/trackcam, BUT you will still only be
able to see the entities that the persion you are observing is
seeing, so you must track the person you are observering (or
whatever he is tracking if spectator)
old = old spectator mode, puts you in player mode. For best results,
connect through a qizmo running on the same machine as qwcl.
Autotracking: (new mode)
Automagically tracks the right player.
Smoothing value:
Higher number gives smoother action but more lag.
Setangle threshold:
Set lower if view seems jumpy.
Angle correction speed:
If the view seems jumpy try lowering this.
Yaw offset:
Yaw offset in degress.
Pitch offset:
Pitch offset in degress.
Set/Reset cl-variables.
If you are observing this will set cl_ variables for observing.
If you are not observing this will set cl_ variables for playing.
Max centerprint lines:
Cuts too long centerprints (if observee is using higher vid_mode).
(QWCL will crash if you give it longer centerprints than fit on
the screen.)
Stop observing:
Guess what?
FPS settings
Everyone knows that fps matters as much as ping in net games.
Qizmo can boost your fps a lot by removing some "useless" effects
or replacing them with others that are not that slow.
Explosions: [normal|tarbaby|teleport|blood|off]
The biggest fps hog with explosions is the dynamic lighting,
even 'tarbaby' (no light effect) mode will give you +10 fps
whenever an explosion happens. (Using 'teleport' or 'blood'
mode will actually take more bandwidth, so use them only on
a local proxy.)
Powerup glow: [on|off]
This will disable the dynamic lighting glow from your _own_
powerups. May help as much as 20 fps.
Muzzleflashes: [on|own off|all off]
Removes the dynamic light effect caused by weapon fire.
Gib filter: [on|off]
If you have ever played DM6 DMM3 with >10 players you will
appreciate this feature. :) Removes all gibs and dead bodies.
Also saves bandwidth.
Rockets: [normal|grenade]
If in 'grenade' mode, will display rockets with the grenade
model, which does not have a dynamic light effect.
Userinfo filter: [on|off]
Usually when someone changes their userinfo the new settings
are broadcast to every player on the server. This filter
drops all 'noaim' (some people change noaim all the time
for different weapons) or 'rate' (Qizmo spams these when
'autodrop rate' is on) setinfos.
Nail filter: [off|1/2|2/3|3/4]
Filters off given amount of nails to save bandwidth. Nails
don't usually compress very well, so you should be able to
use higher rate with this filter.
Damage filter: [on|off]
Removes red flashes when getting hit. (GL users can achieve
the same effect by setting gl_polyblend 0.) Also saves some
bandwidth.
Ambient sounds: [on|off]
You know what this does.
Pickup flashes: [on|off]
Removes palette flashes when picking up items.
Powerup blend: [on|off]
Removes palette change when powerup active.
Misc Stuff
Weapon impulses
Are you using one of those 'alias best_weapon "impulse 2;wait;
impulse 3;wait;imp...etcetcetc..;wait;impulse 8"' things? Qizmo
can do that for you without going through all weapons to figure
out which is the best weapon you have ammo for. Just go to weapon
select impulses menu, and choose one of the 4 possible setups,
and Qizmo will ask you for "number and list". For example, you
can say "10 2345678", and next time you use impulse 20, Qizmo
will choose the last weapon from that list you have ammo for. So
it would be same as that long impulse2;wait;imp...etc list, but
faster and more reliable..
(This is only usable in mods that use the standard weapons.)
Video mode (320x200|320x240|400x300)
For bigger serverlists and stuff.
(QWCL limits centerprints to 40 characters in width and 1024
characters in total length, so support for higher video modes
is currently impossible.)
HUD clock:
Places a time display on the HUD. You can move it around from
the powerup timer menu.
Floodprotprot
Protects you from triggering floodprot. (Assumes 4msgs/4secs mode.)
Convert CR->LF
A CR (carriage return = 0xD = 13 ascii) in a say message causes qwcl to
erase everything before that CR (including the name of the originator).
Usually used to send fake messages, but it can also be used to save
console space in team messages. When enabled CR will be converted to
standard linefeed.
"Fun" conversion
Flip the switch to see what character sequences are converted.
Allow f_modified (Win version only)
Since model checking takes quite a lot of time you might want to
have it off on public servers.
MP3 (Win version only)
To use the Winamp features, you must have Winamp >2.0 (www.winamp.com).
If you want to hear game sounds while playing mp3's, you must select
DirectSound as output plugin in Winamp, start qwcl with -nosound and
use Qizmo's sound system to play sounds. Qizmo does not start Winamp
automatically, you must start it before using mp3 commands. If sound
quality is poor, try changing compatibility mode in the sound system
menu to "Hi-Fi".
Notice the cool "show name" mode that allows you to spam the server
with the song names you are playing. :)
Lag settings
Qizmo makes it possible to increase your lag to compete fairly
against someone with higher ping. There has been lots of talk about
how LPB's can use this to "cheat" by "masking" that low ping. This
happens because most people don't know how to use this feature properly,
so I'm gonna teach you now.
Constant lag: Using only this increases your ping, but still gives you
constant ping, no matter how much data the server is sending to you,
so this is _not_ enough itself to simulate modem connection. You
should only use this to fine tune your ping, after other changes.
Bandwidth: This is important. To simulate 28800 modem connection, you
should set this to 28800. This tells Qizmo to increase lag more for
big packets, just like when using modem.
Packet loss: This will drop given percentage of packets randomly, but
isn't necessary to simulate slow connections.
So, to simulate 28800 modem connection, first you have to set your
"bandwidth" to 28800, then fine tune your ping with "constant lag",
and after that (this is very important!), set your rate (not Qizmo
command. You can change it from quake console with command 'rate') to
whatever you would use with connection you want to simulate! In this
case it would probably be 2500.
We understand of course that this system might not work perfectly.
You could easily make your ping high, and still have a better
connection than a modem player with same ping. This could be done by
using only "Constant lag", and still keeping your high rate within
quake. This is why we have made some easy ways to control or disable
lag features in Qizmo from the server. If you say "f_lagreport" in
server, every player using Qizmo is forced to say their lag settings
on the server. You can also set server variables so that every player
who changes their lag settings is forced to report them, or you can
disable use of lag features on a server completely. For more info
about this, see "Disabling Qizmo features" below.
Admin setup
Quake dir:
You must set this if using voice stuff.
Hostname:
Name of the Qizmo as seen by a server browser.
Qizmo name:
The short name of the Qizmo. For use with say name: commands.
Also visible in all the menus.
Public:
Toggle whether this Qizmo is public (listed on the public
Qizmos master) or not.
Qizmo priority level: (only in windows version)
The default is 13, which is the only setting that QWSV priority
control works with when in 'auto' mode under 95/98. Under NT you
should set this to 16 or higher to avoid lag.
QWSV priority control: (only in windows version)
When you connect to localhost, Qizmo searches for QWSV, and if
found starts controlling its priority level (to get rid of the
usual packet loss). Qizmo gives QWSV time only after it has been
sent a packet, so this might work a little better than the
original QWSV priority control program.
QWSV time slice: (only in windows version)
The amount of processor time QWSV is given after it is sent
a packet. 'auto' mode works only if Qizmo's priority level
is 13.
PS/2 mouse sampling rate (win 95 and 98 only!)
Sets the mouse sampling rate. 10,20,40,60,80,100 and 200
seem to work with logitech mice. Needs ps2rate.vxd in the
Qizmo dir.
Dynamic IP mask:
255 = must match
0 = can change
Maximum s2c repeats:
Repeating packets can cause unwanted network traffic.
Save config:
Saves current admin config.
Console commands
These are the console commands for Qizmo for those who don't want to use
the menu. Commands are given like this:
say .[command] [arguments]
That command will be executed by the first Qizmo to receive it. If you
are connected through more than one Qizmo, and you want to give commands
to some later Qizmo in the chain, you have to do this:
say [Qizmo name]:[command] [arguments]
You can set the name with -n command line option, and you can see the
name from top right corner of the menu. Qizmo uses your computer name
as the default name.
For the last Qizmo in the chain you can also use:
say ,[command] [arguments]
As you can see, there isn't much explanations for those commands.
Everything can be controlled from the menu anyway. There are helps
available for some of those commands with "help" command. Just type:
say proxy:help [command]
background
browser
browser_a
connect
clients
c2spps
clock
color
who
weaponimpulse
hostname
help
record
recordmode
report
reconnect
disconnect
dropextra
talk
time
tcpconnect
teamplay
voice
voffset
vidmode
follow
feedback
fps
flood
fake
fun
observing
observe
observers
quakedir
qwsv
kick
lag
menu
mmode
mark
mixahead
mp3
name
soundsystem
smooth
soundtrigger
stopobs
stuff
skins
showfps
initcapture
password
packc2s
packs2c
playsounds
part
play
public
priority
ps2
join
Aliases.
(These are set when you connect to qizmo)
f_report = "say_team %Aa:%a h:%h %b %p%n"
Useful for reporting your health/armor/ammo status.
f_reset = "-left;-lookdown;cl_yawspeed 140;cl_pitchspeed 150"
Resets some qwcl variables if observer mode left them messed up.
f_fps = "say .showfps"
Toggles other players' framerate display.
f_ queries
Sometimes you might want to check what proxies/features other players
are using. Qizmo supports the following queries (said on a server in
mm1). (will only answer if >20 seconds since previous reply to avoid
spamming) (the f_ prefix comes from faq-proxy :) (usually crc means
cyclic redundancy check(sum), in the following it means cryptographic
checksum :)
f_version [x]
Reports Qizmo version number. If notimers is on, appends "notimers"
after version number (v2.55 always notimers). If x is specified, calculates
crc from x + memory image and appends it after version number. Useful for
checking that the proxy has not been modified (for use with f_modified).
Reports different crc's for different Qizmo versions, different x's and
different OS's. The character after the crc identifies the OS:
W - windoze
L - linux
G - linux glibc
S - solaris
B - bsd
A - alpha linux
O - osf/1
f_lagreport
Reports current lag settings.
f_modified [x]
Checks all model and sound files that could be used for cheating.
Replies with a list of modified files. If nothing modified, reports
the crc over all files. If x specified, adds x to crc calculations.
Needs path to qwcl on qizmo commandline.
(checks pak*.pak and progs dir from qw/ id1/ and gamedir/)
f_modified2 [x]
Like f_modified, but doesn't care about missile.mdl or grenade.mdl.
f_modified3 [x]
Like f_modified2, but doesn't care about bolt2.mdl (shaft) either.
f_skins
Reports percentage of fullbright pixels in team and enemy skins
(disables 'allskins' and 'baseskin' commands in qwcl, use -o
commandline option if you wish to use those commands (disables f_skins))
f_server
Each qizmo responds with 'x->y', where x is a crc of the ip
address of the proxy and y crc of the address where the player is
connected to. So you should get either:
player1: x->y
player1: y->z
or
player2: x->z
where x and z should be same for everyone on the server and y changes
for different server side proxies. If this is not the case, someone
might be using a bot.
f_cmdline
QWCL commandline options. Can be used to detect -lm_4 cheat.
f_speed
Running speed in percents. >100% = win qwcl 2.3 speed cheat.
f_system
Info about the host system.
You can also use f_query serverinfo key to automatically request
info about players upon connect. The bits for f_query are:
1 - f_version
2 - f_lagreport
4 - f_modified
8 - f_skins
16 - f_server
32 - f_cmdline
64 - f_speed
128 - f_system
Disabling Qizmo features
There are some features in Qizmo that some people consider cheating,
so we made a way to disable these features from the server. There is
a server variable, which can be used to do that. The variable is called
fpd and is set by typing at the console:
serverinfo fpd X
or if you have rcon for a server and do not have access directly to
the console :
rcon rcon_password serverinfo fpd X
Where X is a number created by a bitmask field. Bits are:
1 = Disable %-reporting
2 = Disable use of powerup timer
4 = Disable use of soundtrigger
8 = Disable use of lag features
16 = Make Qizmo report any changes in lag settins
32 = Silent %e enemy vicinity reporting (reporter doesn't see the message)
(always on in v2.55)
64 = Spectators can't talk to players and vice versa (voice)
128 = Silent %x and %y (reporter doesn't see the message)
256 = Disable skin forcing
512 = Disable color forcing
For example, if you want to disable powerup timer, you would type at
server console: serverinfo fpd 2. Or if you want to disable powerup timer
and lag features, you would use: serverinfo fpd 10, because bits for timer
and for lag features combined (2+8) is 10..
On Team Fortress servers, %e and %x use bottomcolor to determine
team and %x won't report own players at all. Also skin forcing is
disabled. So detecting spies is impossible.
Contacting
Any questions/bugreports/problems can be mailed to <zibbo@udpsoft.com>.
Qizmo registrations are handled by a company called ShareIt <www.shareit.com>
Actually ShareIt is just collecting payments and user info from people who
register, and sending it to us. So if you have problems with that part of the
registration process you should first read <www.shareit.com/information.html>,
where you can find some of your questions answered, and if that doesn't
help, you can mail <register@shareit.com>. For other questions concerning the
registration process, mail <zibbo@udpsoft.com>.
Authors
Juha Kujala <jmkujala@udpsoft.com>
Ilkka Rajala <zibbo@udpsoft.com>
QUAKEŽ and QUAKEWORLDŽ are registered trademarks of Id Software, Inc.
QUAKEŽ, the stylized Q in QUAKEŽ, and the images depicted in QUAKEŽ
are the copyrighted, property of Id Software, Inc.