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 . 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 the 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] 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 Easyrecord Starts recording a properly named demo: tp: playername_ownteamname_vs_enemyteamname_mapname.qwd duel: playername_vs_enemyplayername_mapname.qwd ffa: playername_ffa_mapname.qwd If the file exists, appends _x to the name, where x increases from 2 until a free filename is found. 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 existing file no = skip to demonameX.qwd where X increases from 2 until a free filename is found Record voice: Record voice messages in demo or not. You'll need to use qizmo's demoplayer for demos containing voice messages. Logging: Creates a log file of game events similar to qconsole.log. Demo player: - 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. 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. %N : Hides the message from you. %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. Filter: List of message channels you are listening to. You can send a message to a specific channel by adding #channel_name after after a say_team message. If no channels are selected, you will see all messages. 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. Floodprotprot Protects you from triggering floodprot. (Assumes 4msgs/4secs mode.) Convert CR->LF [off/mm1/all] 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 Since model checking takes quite a lot of time you might want to have it off on public servers. Drop fov changes Ignore server stuffed fov changes. 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 names of the songs 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_sens = "say ,showsens" Toggles other players' mouse sensitivity 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 (obsolete in v2.55) 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) (always on in v2.8) 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 . Qizmo registrations are handled by a company called ShareIt 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 , where you can find some of your questions answered, and if that doesn't help, you can mail . For other questions concerning the registration process, mail . Authors Juha Kujala Ilkka Rajala 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.