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. |
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.
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.
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:
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:
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.
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.
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.
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.
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.
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.
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.
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.
The allowed values for the variables xcg_weaponPref and xcg_autoswitchMask are shown in the following table:
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
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:
Variable | Value | Meaning |
---|---|---|
xcg_nudgeLogic | 0 | Turn nudge logic off. |
1 | Turn nudge logic on. | |
xcg_nudgeRatio | a negative number | Multiply ping by this amount and nudge backwards (less forward prediction). |
a positive number | Multiply ping by this amount and nudge forwards (more forward prediction). | |
xcg_nudgeMax | 0 | Don't cap nudge amount. |
Non-zero | Sets a maximum nudge amount in milliseconds. | |
xcg_nudgeDebug | 0 | Don't print nudge value. |
1 | Print 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
).
If problem arise, and you want to completely uninstall the X Client Pack, follow these steps:
seta xcg_
".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.
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 |
|
The X Client is not loading |
|
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.
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.
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!
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.