THE X CLIENT PACK FOR QUAKE III

Instructions for Beta 127M


Table of Contents

Overview What is it?
Quick Start For those who can't handle reading the whole manual.
Installation For those who want to make sure it works.
Configuration How to customize your settings using the menus.
Console Settings For people who prefer to mess with console settings and config files.
Table of Cvars List of all new or modified cvars and their meanings.
Table of Weapon Values A separate table showing to modify weapon preferences.
Timenudge Logic An experimental new feature for high pingers.
Uninstalling How to get rid of it.
Server Notes Some special notes of interest to server admins.
Troubleshooting In case you are having problems.
Contact For those who still can't figure it out (read the manual first!)
Legal Stuff Copyright and License Agreement.
Disclaimer Before sending me angry e-mails read this.


Overview

The X Client Pack is a client-side mod for Quake III. The mod, which will work with any non-pure Quake III server, adds features and functions that can make gameplay more enjoyable. The feature list includes an improved HUD, smart weapon switching, and a lag-free lightning gun.

Contents

Quick Start

The default configuration of the X Client Pack should work fine for most people. If you just want to try the X Client Pack with the default setup and don't want to read the rest of this file, just unzip xclientpack127m.zip into your baseq3 directory and start up Quake III as you usually would. Nothing further is required.

The default configuration has weapon switching logic active, lightning prediction active, X HUD active, and the standard sized smoke trails and plasma balls. If you want to change any of these settings, keep reading.

Contents

Installation

To install the X Client Pack, simply unzip the file xclientpack127m.zip into your baseq3 directory. The baseq3 directory should be immediately under the directory in which you installed Quake III. You should end up with the following new files under the baseq3 directory:

Contents

Configuration

All X Client settings can be changed from the console. And now with the 1.27 maintenance release, they can also be changed in the main menu and the in-game menu. This section shows both menu and console settings for each variable. You can also find a table of console variables in the Console Settings section.

You will find the X Client menu underneath the Setup menu in either the main menu or the in-game menu:

      

Click on X Client, and you will get a menu like this:

Use X HUD [ on | off ]

Turning on Use X HUD will add a weapon and ammo status display to the left side of your screen, similar to the one shown here.

The status display shows icons for each weapon that is present in the level. If you do not yet have a weapon the icon will be covered by a red zero. Whether or not you have the weapon, the current ammo count for that weapon will be displayed next to the icon.

In the screenshot at the right, you can see that this level has the machinegun, shotgun, rocket launcher, railgun, and plasmagun. The player currently has the machine gun with 100 rounds of ammo, and the rocket launcher with 10 rounds of ammo. He has also picked up 10 rounds of ammo for the railgun, but does not yet have the weapon.

The X HUD can also be turned on and off from the console by toggling the value of the variable xcg_xHUD.

Predict Lightning [ on | off ]

Id decided to not use any prediction on the lightning shaft, so that the lightning position on your screen would show you what the server is really seeing. Unfortunately this does not line up with player positions, which are predicted, and the result is that the lightning shaft looks and feels laggy. If you turn on Predict Lightning the position of the shaft will be predicted forward by the same amount as the player position, resulting in a lag free look and feel, but the potential for some prediction errors. Whether or not this is better depends on your playing style. I personally have found it to be a tremendous improvement. In the two screenshots below I am firing the lightning gun while turning rapidly towards the right. The shot on the left does not use prediction, whereas the shot on the right does.

      

The difference is pretty amazing. Try it both ways, and see which you prefer. You can also turn lightning prediction on and off from the console by toggling the value of the variable xcg_predictlightning.

Weapon Autoswitch [ off | standard | smart ]

Setting Weapon Autoswitch to standard gives you the same autoswitching logic as normal Quake III. Setting Weapon Autoswitch to smart turns on the advanced weapon switching features. At a minimum, smart weapon switching will prevent autoswitching to a lesser weapon than the one you are currently using. More complex logic can be enabled with the settings that follow (these settings will be grayed out unless you have Weapon Autoswitch set to smart). Smart weapon switching only affects the automatic weapon switching functions that are built into Quake III, it has no effect on your ability to manually select or scroll through your weapons.

From the console, weapon autoswitching is turned on or off by toggling the value of the id variable cg_autoswitch. With cg_autoswitch turned on, you can turn the smart weapon switching logic on or off by toggling the value of xcg_autoswitch.

Autoswitch When Empty [ on | off ]

This controls whether autoswitching is invoked when you run out of ammo with your current weapon. Normally you will want to leave this variable turned on. Players who prefer to be able to select their own weapon under all circumstances can turn this variable off. Note that if you do turn this off, you will have to select a weapon manually when you run out of ammo, it will not change for you no matter how many times you hit the trigger. Use with care.

From the console you can control this feature by toggling the value of xcg_autoswitchEmpty.

Skip <Weapon Name> [ off | on ]

This optional feature allows you to prevent autoswitching to certain weapons. For example, if you want to make sure that you are never autoswitched to the grenade launcher, you would turn Skip Grenade Launcher on. Any weapon that has this flag turned off will be eligible for autoswitching.

This feature is controlled with a single variable, xcg_autoswitchMask, using bit-mapped flags. It is therefore not very easy to change from the console. You should either use the menu, or preset the value of this variable in a config file. There is a table in the next section showing how to set up the weapon switch mask.

Preferred Weapon [ <weapon name> ]

This setting allows you to select a weapon preference for the auto switching logic. If you have this option enabled, then whenever an autoswitch sequence is started it will first check to see if you have your preferred weapon, and check to see that it has ammo. If both are true, it will switch to your preferred weapon immediately and the rest of the logic will be ignored.

From the console you can select your preferred weapon by setting the value of the variable xcg_weaponPref to the number of the weapon you want, as shown in the table in the next section.

Smoke Trails and Plasma Balls

These two sliders control the size of the smoke trails generated by rockets and grenades, and the energy balls emitted by the plasma gun. Setting the sliders to the far right makes these effects full size. Setting the sliders to the far left turns the effects off completely, which can provide a substantial performance boost. Setting the sliders in between the two extremes will scale the size of the effects accordingly.

Practically speaking, there is no performance improvement for reducing the size of an effect, so if you are trying to improve performance, turn the effect off completely. There is, however, a visibility improvement for reducing the size of the effects. Also note that turning off smoke and plasma balls will give you fewer visual cues about what your opponents are doing. Use these features with care. My personal preference is to turn the smoke off and set the plasma balls to half size.

These features can also be controlled from the console. The variables are xcg_smokeTrails and xcg_plasmaBalls. You can set them to any value in the range from 0 to 1, or you can use the toggle console command to simply turn the effects on and off.

Contents

Console Settings

In addition to the menu interface, you can completely configure the X Client using console settings, config files, binds and aliases. An example xclient.cfg file is included, which you can modify to configure the X Client to your liking. You can also bind keys to toggle the features on and off, or make more complex aliases. The following is a complete list of all the cvars that control the X Client Pack features.

Variable Value Meaning
xcg_xHUD 0 Turn the X HUD off.
1 Turn the X HUD on.
xcg_predictLightning 0 Don't do client-side lightning prediction.
1 Do client-side lightning prediction.
cg_autoswitch (This is an id variable.) 0 Do not autoswitch weapons.
1 Turn autoswitching on.
xcg_autoswitch 0 Use id autoswitch logic if cg_autoswitch is turned on, i.e. don’t use intelligent weapon autoswitching.
1 Use intelligent autoswitch if cg_autoswitch is turned on.
xcg_autoswitchEmpty 0 Never automatically switch weapons when out of ammo.
1 Automatically switch weapons when out of ammo.
xcg_autoswitchMask 0 Do not prevent autoswitching to any weapon.
Non-zero Prevent autoswitching to certain weapons (see table below).
xcg_weaponPref 0 Weapon preferences are in strict numerical order.
Non-zero Select one weapon to be the preferred weapon during autoswitching (see table below).
xcg_smokeTrails
xcg_plasmaBalls
0 Turn the indicated effect off.
Non-zero Scale the indicated effect by the given amount.

The allowed values for the variables xcg_weaponPref and xcg_autoswitchMask are shown in the following table:

Weapon xcg_weaponPref xcg_autoswitchMask
Gauntlet 1 2
Machine Gun 2 4
Shotgun 3 8
Grenade Launcher 4 16
Rocket Launcher 5 32
Lightning Gun 6 64
Rail Gun 7 128
Plasma Gun 8 256
BFG 9 512
Grappling Hook 10 1024

You can only set one preferred weapon, however you can prevent autoswitching to more than one weapon. To prevent autoswitching to more than one weapon, just add together the values for the weapons you don't want. For example, if you don't want to autoswitch to either the grenade launcher or the rail gun, add their values together (16 + 128 = 144) and set xcg_autoswitchMask to this value.

Example: seta xcg_autoswitchMask 144

Contents

Timenudge Logic

This release of the X Client includes a new, experimental algorithm for modifying the amount of player prediction being used. It allows you to automatically nudge the prediction either forward or backward, by an amount that is proportional to your ping. The amount is continually adjusted for every frame, and is based on your average ping for the last 5 server snapshots. Frankly, most people are unlikely to need this, therefore it is off by default. For those who want to try it, the following table of cvars shows how to set it up:

VariableValueMeaning
xcg_nudgeLogic0Turn nudge logic off.
1Turn nudge logic on.
xcg_nudgeRatioa negative numberMultiply ping by this amount and nudge backwards (less forward prediction).
a positive numberMultiply ping by this amount and nudge forwards (more forward prediction).
xcg_nudgeMax0Don't cap nudge amount.
Non-zeroSets a maximum nudge amount in milliseconds.
xcg_nudgeDebug0Don't print nudge value.
1Print nudge value to the screen on every frame.

The default values are xcg_nudgeRatio = 0.2 and xcg_nudgeMax = 500. These are intended for high ping modem players, and cause the X Client to nudge player prediction forward by 20% of your ping, up to a maximum of 500 milliseconds. This will increase prediction errors at close range, but will also give a much more responsive feel on high ping servers. Some high ping players think that it is worth the trade-off. If you fall into this category, just turn the nudge logic on by entering this at the console:

seta xcg_nudgeLogic 1

If on the other hand you are a low ping player who thinks that Quake III normally predicts too far ahead, causing too many prediction errors, you could try nudging prediction slightly backwards by using the following settings:

seta xcg_nudgeLogic 1
seta xcg_nudgeRatio -0.2
seta xcg_nudgeMax 50

If you are not sure whether it is working or not, bind a key to toggle the feature on and off, as follows:

bind f12 "toggle xcg_nudgeLogic"

Pressing F12 will then toggle the nudge logic on or off, allowing you to quickly and easily evaluate the difference.

Note that this feature is similar in effect to Quake III's cl_timenudge variable, with the differences being that the nudge logic automatically adjusts to your ping, and also that the sign is different (i.e. to predict farther forward you would have used a negative cl_timenudge, now instead you use a positive xcg_nudgeRatio).

Contents

Uninstalling

If problem arise, and you want to completely uninstall the X Client Pack, follow these steps:

  1. Delete the files listed in the section above titled "Installation".
  2. Edit your q3config.cfg file and remove any lines that begin with "seta xcg_".
Contents

Server Notes

I can understand how a server admin might be a little uneasy about the X Client Pack. In anticipation of this, I have attempted to make the X Client Pack somewhat server-friendly.

Keep in mind that if you want to prevent the use of the X Client Pack entirely, all you have to do is run a pure server.

If on the other hand you are running a pure server but would like your clients to be able to run the X Client Pack, you will have to have the X Client Pack installed on the server.

If you want to let your clients run the pack, but want to prevent them from turning off smoke trails and plasma balls ("vis hacks"), put the following command in your server config file:

seta x_noVisHacks 1

The X Client will check for this variable when starting a level, and will disable the vis hacks if it sees that this variable is set.

If you would like to know if someone is using the X Client, all you have to do is check their userinfo. The X Client sets a read only variable called x_clientVer which contains a string representing the version number (currently "Beta 127M").

If you're still not satisfied please skip to the disclaimer.

Contents

Troubleshooting

Most problems can be traced to a failure to follow directions. I'm serious! If you are having a problem the first thing you should do is re-read the manual carefully and make sure you installed and configured the X Client Pack correctly. If you still can't get it to work, here are some possible solutions:

Weapons aren't switching properly In order for the weapon switching logic to work properly, you must have both cg_autoswitch and xcg_autoswitch set to 1.
My settings aren't being saved
  1. A common source of configuration problems is the autoexec.cfg file. If there is an autoexec.cfg file in your baseq3 directory, the settings in that file can override the settings in q3config.cfg, and consequently your previous console and menu settings, whenever you start the game. If Quake III seems to be losing your X Client settings whenever you restart, check your autoexec.cfg file for conflicts. You may even want to add your X Client settings to your autoexec.cfg to make sure that they are always there.
  2. Quake III will only remember variables that you set with the seta command. If you set a variable from the console using set, it will not be stored. Always use seta for permanent variables, and set for temporary variables.
The X Client is not loading
  1. The X Client will not load if you are connected to a pure server, unless the server has the X Client installed also.
  2. Some problems can be caused by the way that Quake III loads your pack (*.pk3) files. Pack files are really just Zip files, and are always loaded in alphabetical order. If the same file name is found inside more than one pack file, only the one loaded last is considered valid. For that reason you need to make sure that the names of all other client packs you are using are lower in the alphabet than "xclientpak". The X Client Pack code is contained inside the pack file in a file called cgame.qvm. If all you are using is the id default installation, you should not have a problem. But if you have, for example, another pack file that starts with the letter 'Z', you need to either make sure that it does not have a cgame.qvm file inside of it, or just change that pack file's name so that it gets loaded before any xclientpak* files. You cannot use more than one qvm module of a given type at a time, only the one loaded last will be used. If you are not sure, use Winzip or a similar program to open up any pack files in question and see what is in them.
I can't connect to pure servers anymore The X Client will not run when you are playing on a pure server, but it will not prevent you from connecting either. The most common reason for being denied a connection to a pure server is that you have disabled autodownloading. If a server has the pure setting turned on, and has custom pack files in use, both you and the server must have autodownloading turned on or you will be denied a connection. This has nothing to do with the X Client, although it might appear that way.

If you still think you are having a problem with the X Client Pack, you can prevent it from loading either by moving it to another directory, or by changing the extension to something other than .pk3. If this solves the problem, please contact me.

Contents

Contact

For problems, or to report bugs, contact haqsau@planetquake.com. Please re-read the manual and carefully check that you have installed and configured everything correctly before contacting me. I will support honest users as best as I can, and constructive criticisms are welcome. However if I have to tell you to read the manual more than twice, or if you flame or spam me, I will block your e-mail address and you will be unable to get any further support from me. Also, if you really feel you must state your objections to the X Client Pack's features, please read the disclaimer before e-mailing me.

Contents

Legal Stuff

The X Client Pack is copyright © 2000 by Hal Raymond. Portions of the code are copyright © 1999 and 2000 by id Software. You may use this mod for free. You may only distribute it for free, and you may only distribute it as a zip archive named xclientpack*.zip and containing the files listed under the section titled "Installation" (* = version number). You may not distribute it in any other form without the explicit written permission of the author, Hal Raymond. You may not decompile or in any other way reverse engineer the code contained herein. You may not modify the code in any way. Other than that, enjoy!

Contents

Disclaimer

It wouldn't surprise me if a few people think that the use of this mod constitutes cheating. If you feel that way, all I have to say to you is, "get a life!" It is an unfortunate characteristic that is unique to the Quake community that anything that gives somebody a competitive edge is immediately denounced as cheating. This is absurd. Client side mods started with Quake. What Quake player hasn't run custom skins? What competitive Quake player hasn't set the "view bob" variables to zero in order to get a steady aim, or turned off particles for a few extra fps? Outside of the Quake community, client mods have become common. The pinnacle of client side mod development is currently Tribes - most competitive Tribes player would not even think of playing without custom scripts and a custom HUD. This is the way the non-Quake gaming community is going, so get used to it. I don't feel that anything I have done with this client pack constitutes cheating.

As an example, the vis hacks are there for people that need them in order to play competitively. On older video cards, the vis hacks can give you an appreciable frame rate boost. And on older systems where people have to run low-res in order to be able to play at all, the visibility enhancements are a necessity in order to be able to see what you are doing. This is nothing new, in fact it is precisely the same logic that id themselves has used in the past. In previous versions of Quake they gave you the ability to disable particles, which boosted frame rate and also increased visibility. Even in Quake III you have the option of turning on vertex lighting if you need a performance boost, despite the fact that it makes the whole level evenly bright. So the graphical effects are not cheats, they are just a logical extension of a philosophy set by id themselves.

The X Client does not play the game for you. It does not in any way fall into the same class as proxy bots, a.k.a. aiming bots. The weapon switching is a convenience feature, mostly of use to people who have not developed a proper keyboard setup. Competitive players probably aren't even going to use it.

The X HUD does give you more info than the standard Quake III HUD, however full ammo displays are common in other games and I really don't see why we shouldn't have one too. Remember the Quakeworld HUD? Same thing.

As for the lightning prediction, let me state my case plainly. I don't actually know if this will help on connections with high packet loss, but I also don't know why id didn't give us the ability to turn this on and off. The lagginess of the Lightning Gun was one of the biggest complaints during the test period, and the fix was simple, yet id never did anything about it. Well, I have. Use it or don't, it doesn't matter to me.

One last thing before I go. No matter what you say, you are not going to convince me that this mod is in any way a cheat. So don't even bother trying. I will block e-mail from anyone who writes to me claiming that this mod is in any way a cheat or dishonest, whether or not that person is asking for assistance. You will achieve nothing. Don't waste my time or yours.

Contents

This document is copyright © 2000 by Hal Raymond.