Overview | What is it? |
Features | What does it do? |
Quick Start | For those who can't read the manual. |
Installation | For those who want to make sure it works. |
Configuration | How to customize your settings. |
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. |
Uninstalling | How to get rid of it. |
More About the Features | Gratuitous technical details for the curious. |
Server Notes | Some special notes of interest to server admins. |
Problems | For those who didn't read the manual. |
Contact | For those who still didn't read the manual. |
Legal Stuff | Copyright and License Agreement. |
Disclaimer | Before sending me angry e-mails read this. |
The X Client Pack is the client side of Mod X, a mod I am working on as a research project. Mod X itself may never see public release; it is primarily just a test bed to see what can be done with the Quake 3 code. However I found that the client side features which I have added work quite well apart from Mod X, so I am releasing them as a separate pack. You can use the X Client Pack to improve your gaming experience on any standard Quake 3 game. This includes bot play and most Internet servers. Some "pure" servers may not allow you to load the X Client Pack, however you will still be able to play without uninstalling the X Client Pack. Best of all, any of the features can be turned on or off on the fly with cvars. There is no reason not to use it!
The X Client Pack currently has the following features, all of which can be turned on or off using cvars:
Since this is a client side pack you should be able to use it on any non-pure server. You can also use it on a pure server if the server has the client pack. You will not ever be prevented from connecting due to the X Client Pack. The worst thing that will happen is that you will simply be forced to run with the default baseq3 client. When this happens the behavior will revert to the standard Quake 3 behavior. You will not ever have to uninstall the X Client Pack in order to connect to a server.
The default configuration of the X Client Pack should work fine for most people. If you just want to try the X Client Pack as is, or have a bad case of A.D.D and can't possibly read the rest of this file, do the following:
You no longer need to initialize any variables. The default configuration has weapon switching logic active, lightning prediction active, X HUD active, and vis hacks disabled. If you want to change any of these, keep reading.
To install the X Client Pack, simply unzip the file modxclientpack.zip into your baseq3 directory. The baseq3 directory should be immediately under the directory in which you installed Quake 3. You should end up with the following new files under the baseq3 directory:
I have not yet provided a menu interface for configuring the X Client. However all variables can be changed from the console, as follows:
The new variable value will be saved in your config file. Also note that case is not important. The case I show in the table below is the way they are entered in the code, however cvars are not actually case-sensitive.
You can also use the included xclient.cfg file to configure the X Client. Open the file in a text editor and change the settings to whatever you like. Then when you are playing Quake 3, pull down the console and type exec xclient.cfg. This only has to be done once each time you make changes to the file, after that the new settings will be stored in your config.cfg file.
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 the grenade launcher or the rail gun, add their values together (16 + 128 = 144) and set xcg_autoswitchMask to this value.
seta xcg_autoswitchMask 144
The values for xcg_smokeTrails and xcg_plasmaBalls are used to proportion the size of these effects. Setting the value to zero disables the effect, setting to 0.5 would cause the effect to be half-size, and setting it to 1 would cause the effect to be full-size. Disabling the effects provides as much as a 10% frame rate boost during heavy fighting, with the obvious drawback that it is harder to tell what your opponent is doing.
If problem arise, and you want to completely uninstall the X Client Pack, follow these steps:
seta xcg_
".Client-side Lightning Prediction - You may have noticed when playing Quake 3 that if you turn while firing the lightning gun, the shaft position lags behind your crosshair. This makes the lightning very difficult to use in practice. Apparently id feels that there are issues with predicting the position of moving beams, as they have also disabled prediction on the grappling hook. The X Client Pack allows you to turn prediction on for the lightning shaft. I have tested this with bots, and on a wide range of Internet servers, and have not experienced any problems. I have also found that my accuracy with the shaft is improved with prediction turned on. I highly recommend trying it.
Weapon Switching - Quake 3 as released only offers two options for automatic weapon switching - on or off. With autoswitch on, you will automatically switch to any weapon you pick up, whether you want to or not. This creates problems in combat, where often times you end up running over a weapon that was dropped by a person who just died. If it is not your current weapon you will be switched to it immediately, even if it is a lower numbered weapon than the one you have. This can get you killed if you are still trying to fight other people. But on the other hand with autoswitch off it will take you a fraction of a second longer to be able to use a weapon you intentionally picked up. Furthermore, autoswitching is used whenever you run out of ammo while firing a weapon. This can result in being switched to an inappropriate weapon in the middle of a fight. With the standard id client, this latter feature cannot be turned off.
I have added optional autoswitching logic, and added new variables to allow you to configure the logic. You can set variables to indicate whether you want autoswitching on or not, whether you want the advanced logic on or not, whether you want autoswitching to happen when you run out of ammo or not, what your preferred weapon is, and to which weapons you would not like to ever be autoswitched.
If you turn on all the functionality, the autoswitch logic works as follows:
When picking up a new weapon:
When you run out of ammo:
Note that the autoswitch mask does not prevent you from switching to the weapons manually. You will still be able to select a masked out weapon either by weapon number directly, or by using the next weapon or previous weapon commands.
Be careful using the xcg_autoswitchEmpty variable, as setting it means that when you run out of ammo you will not be able to shoot until you have manually selected a new weapon. I put this in because I felt that in this particular case Quake 3's autoswitch was actually slower than manual switching. If you are not used to watching your ammo you probably should not activate this feature. However I have to say that the best situation for the hardcore player is to set cg_autoswitch, xcg_autoswitch and xcg_autoswitchEmpty all to 0, and then always pick your weapons manually. This gives you the most control, but it also requires more attention on your part.
When you enable the X HUD a column of icons will appear on the left hand side of your screen. There will be one ammo icon for each ammo or weapon type which is present in the level. If you do not yet have that weapon, the icon will be covered by a red zero. Next to each icon there will be a number which represents your ammo count for that item. No icons will be shown for either the gauntlet or the grappling hook.
The vis hack variables have been added for the many people who are still having problems getting Quake 3 to run smoothly. From the earliest Quake 3 tests all the way up to the current point release, there has been a tremendous frame rate hit whenever there are rocket launchers being fired around you. This is especially problematic in large CTF games on wide open maps, like the center section of Q3CTF3, for example. In previous versions of Quake this could be fixed by turning off particles. Since smoke is no longer particle based, we no longer have that option. I have added the vis hacks primarily to allow you to turn smoke off. While I was at it, I also put in the ability to to turn off plasma balls, which are also lag-inducers, and to alternatively just scale the effects for better visibility. My suggestion is to reduce the plasma balls to one half size, and turn off smoke. This can be done as follows:
seta xcg_plasmaBalls 0.5
seta xcg_smokeTrails 0
No doubt some people will find this offensive. If you are one of them, please read the server notes, and then read the disclaimer.
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.
First, 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 you would like your clients to be able to run the X Client Pack, you can still run a pure server, but 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 the 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 2").
If you're still not satisfied please skip to the disclaimer.
Most problems can be traced to a failure to follow directions. Re-read the manual carefully and make sure you installed and configured the X Client Pack correctly.
Please be aware that in order for the weapon switching logic to work properly, you must have both cg_autoswitch
and xcg_autoswitch
set to 1.
A common source of configuration problems is the autoexec.cfg file. If you or someone else has put an autoexec.cfg file in your baseq3 directory, the settings in that file will override the settings in q3config.cfg, and consequently your previous console and menu settings, whenever you start the game. If Quake 3 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.
Some problems can be caused by the way that Quake 3 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". Client packs contain 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, a client pack 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 cgame.qvm 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.
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, you must also have autodownloading turned on or you will be denied a connection. This has nothing to do with the presence of the X Client, although it might appear that way.
If you 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 modxclientpack.zip and containing the files listed under the section titled "Installation". 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 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 his view bob 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 - no competitive Tribes player would even think of playing without all of his custom scripts, HUDs, etc. 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 previous versions of Quake they gave you the ability to disable particles, which boosted frame rate and also increased visibility. Even in Quake 3 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 3 HUD, however full ammo displays are common in other games and I really don't see why we shouldn't have on too. Besides, doesn't anyone remember the Quakeworld HUD? Again I fall back on tradition.
As for the lightning prediction, let me state my case plainly. Even though I don't actually know if this will help on connections with high packet loss, I also don't know why id didn't give us the ability to turn this on and off. Everything else in the game, with the exception of the mythical Grappling Hook, is client-side predicted. Why not the Lightning Gun? 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. As far as I am concerned, this is a bug fix.
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.