Along with Doom, Quake is one of the most famous names in the gaming world. When Quake first came out in 1996, it wasn't the single player aspect of the game which captured gamers' imaginations - it was the multiplayer component of the game which really took off in a big way. Despite the laggy gameplay - when it sometimes felt you can fire a shot, go make a cup of coffee, and come back 10 minutes later to see it miss the target - the game picked up fans left, right and centre.
Within a few years, the Quake engine had been refined to the point that when Unreal Tournament came out in 1999, a few months later Quake III was available to compete with this pretender to the throne. By this point both Quake and UT had made online multiplayer gaming a very polished and fun exercise. Of course I'd love to say I was a big Quake III fan, but the truth is I cut my teeth on online gaming in Unreal Tournament. To me Quake looked and sounded funny. I guess at that point the gaming world split into UT fans and Q3 fans, and a fierce rivalry began. To top it off, both the Unreal and Quake 3 game engines have powered a variety of games like Jedi Outcast (Q3), America's Army (U), Call of Duty (Q3) and Splinter Cell (U) - a testament to the inherent quality of both these engines.
Fast forward to 2005 and Quake 4 has finally been released, a long time between drinks for Quake fans. And in a neat twist, it combines two great id game franchises in a special way: Quake 4 is based on the amazing Doom 3 engine, and seems to be quite solid and bug-free. It also returns a genuine single player component to the game, something which Quake III Arena didn't have. However as with Quake games before it, the single player component - which is highly reminiscent of Doom 3 - is not really the highlight of Quake 4. So is it worth buying? Well I'm personally not a Quake veteran, and my brief forays into Quake 4 multiplayer are embarrassing to say the least. However I get the impression that traditional Quake fans will not be disappointed.
Despite the fact that tweaking the game is extremely similar to tweaking Doom 3, I decided that given the large fan base for Quake 4, the game deserved a tweak guide of its own. This Quake 4 Tweak Guide covers all the in-game settings in detail, including screenshot comparisons of image quality differences, and contains a wealth of links to important Quake 4 resources. The guide is rounded out with advanced tweaks which have been tested and work on Quake 4, since some of the Doom 3 commands are different for this game. All in all, the guide is a central resource for Quake fans and should help new and experienced Quakers alike.
Note: This guide refers to the latest version of Quake 4 Version 1.4.2. Make sure to check back regularly for updates.
Before getting into any game-specific settings and tweaks, this section covers the obligatory system optimization information I include in all my guides. If you've followed this advice recently, you can skip this section.
Many people report problems with this game and in almost all cases these are due to general system issues and not the game itself. With that in mind I strongly urge you to take some time and follow the advice below if you truly want this game, and indeed every other game you own, to run at its fastest and most trouble-free.
The place to start is my free TweakGuides Tweaking Companion. It is the complete system optimization guide for Windows users. Designed for novice and advanced users alike, it is written in plain English to help you genuinely understand all aspects of Windows and your PC. The guide covers every major topic, from the correct installation of Windows and critical drivers and software, through to recommendations for every significant setting and feature, all the major performance and convenience tweaks and customizations, as well as detailed troubleshooting advice. There are also links to a range of reliable free applications for optimizing and maintaining your system, as well as to important resources for finding out even more about Windows and your PC. There are two separate versions: one for Vista and one for XP.
If you've ever wondered what common graphics and display settings like FPS, VSync, Refresh Rate, Antialiasing and Anisotropic Filtering are, and how they really work, then check out my Gamer's Graphics & Display Settings Guide for all the details in an easy to understand format. The guide also gives you a rundown on exactly how a game goes from a being a set of files on your hard drive to a 3D image on your screen, including relevant performance tips.
Finally, if you run an ATI or Nvidia graphics card, I have written two comprehensive guides which you should check out: the ATI Catalyst Tweak Guide and the Nvidia Forceware Tweak Guide. These guides cover absolutely everything about the latest graphics drivers, how to set them up correctly, as well as advanced tweaking, overclocking and benchmarking tips. They're a must-read for configuring your graphics card correctly.
The above information really will serve you well in the long run, not just in this game. If you don't optimize your system and keep everything updated and maintained correctly you will keep running into "mysterious" problems time and time again. Do yourself a favor and when you get a chance spend an afternoon or two optimizing your machine the right way with the guides above.
The next section goes into more detail about specific troubleshooting tips which address common performance issues with the game.
This section contains specific troubleshooting tips which address many of the common problems experienced by Quake 4 players. I can't stress enough the importance of taking the time to go through the checklist of advice below if you're having a problem with the game.
Official Support: The first place to look for official support details is in the Readme.txt file in your \Program Files\id Software\Quake 4\Docs\ directory. Importantly, check out the minimum system requirements in that file, as well as the supported hardware list, since if any of your hardware is not supported or doesn't meet the requirements then you will experience problems with the game, or quite simply won't be able to run it. Read through the list of compatibility issues and suggested fixes as well. If you want to read the game's manual online, run the manual.htm file in the same directory. If you're still having problems you should visit the Official Quake 4 Forums to look for solutions or post a question.
If you want unofficial support, try dropping into any of the dozens of forums discussing Quake 4 right now, such as the PlanetQuake Forums. Remember however that people on these forums expect you to have done some researching and reading of guides like this one before asking simple questions like "how do I show my FPS in the game".
Windows Vista Users: If you're having problems running this game under Windows Vista, first make sure that you're using the latest Vista graphics and audio drivers for your hardware, and the latest version of this game (see page 4 for patch details). Next, make sure you don't change your UAC settings after the game has been installed, as due to Virtualization this can change the location of the game files and settings. If you can't launch the game successfully when UAC is enabled, you will need to run the game with full Admin privileges. To do this either right-click on the launch icon and select 'Run as Administrator', or right-click on the launch icon, select Properties and under the Compatibility tab tick 'Run this program as an administrator' then click OK. I strongly recommend that you refer to the TweakGuides Tweaking Companion for Windows Vista for more information - in particular check the 'Gaming in Vista' section of the Graphics & Interface chapter; the UAC section of the PC Security chapter; and the 'Personal Folders' and 'Directory Junctions & Symbolic Links' sections of the Windows Explorer chapter. These will tell you how you can fix game-related issues and also explain the relevant differences of Vista.
Lag vs. Graphical Slowdowns: This is a common issue in most multiplayer FPSes. Check the Multiplayer Commands on page 9 of this guide for methods of troubleshooting ping problems, however also make sure to adjust your settings to get a consistently smooth average FPS (25FPS or higher is recommended), otherwise when your FPS dips down to the low double or single digits you will experience lag which you may mistake for connection or server problems when online. Display your FPS counter in the top right corner of the game while playing online, and if it shows a good framerate but you still experience laggy gameplay, then you can really start experimenting with the various net_ command variables.
The Latest Graphic Drivers: Since Quake 4 is so dependent on your graphics card (see articles at the top of the In-Game Settings section on page 5), make absolutely certain you have updated to the latest graphics card drivers. See my ATI Catalyst Tweak Guide or Nvidia Forceware Tweak Guide for details on where to download the latest drivers and how to install them cleanly.
In-Game Lag/Freezes/Stuttering: To reduce any stuttering/loading pauses in Quake 4, make sure you have set the appropriate Video Quality level based on the information on page 5 of this guide. Because that setting controls textures, and because texture loading is the most common cause of regular stuttering in most games, you need to experiment to have the right balance of image quality and performance. Don't just choose High or Ultra quality if your system can't handle it. And of course, make absolutely sure that you have run the Windows Defragmenter after installing Quake 4, as the game is 2.5GB in size and if its files are fragmented this can greatly increase your stuttering and in-game loading pauses.
Antialiasing and Anisotropic Filtering: To make sure Antialiasing and Anisotropic Filtering work properly in Quake 4 it is recommended that you, first go to your graphics card's control panel, and for Nvidia cards under the Performance & Quality Settings in the Global Driver Settings section select 'Application Controlled' for Antialiasing and Anisotropic Filtering. For ATI cards go to the 3D section of the Control Panel/Control Center and select 'Application Preference' for Antialiasing and Anisotropic Filtering. Now go into Quake 4 and set the level of Antialiasing under the Settings>Advanced Options area, and to set Anisotropic Filtering see the image_anisotropy command under the Advanced Tweaking section. If you are unfamiliar with what Antialiasing or Anisotropic Filtering do, see my Gamer's Graphics & Display Settings Guide. Keep in mind that any Antialiasing can noticeably reduce performance, and also keep in mind that by default, if you se a Video Quality level of High or Ultra, Quake 4 automatically applies 8x Anisotropic Filtering - which of course you can change by seeing the Advanced Tweaking section.
Virus Scan: Do a full scan of all your files using the following excellent (and free) tools: AVG Virus Cleaner for viruses, A-Squared for trojans, and Ad-Aware SE for spyware/adware. Viruses, trojans and spyware can cause unexplained behavior, general file corruption and system slowdown, and can also steal your CD Key. It's best to make sure your system isn't infected before moving on to any other optimization measures. However make sure to disable any background scanning programs once you're done (See below).
Background Programs: The game's developers recommend that you disable all background applications - especially virus, trojan and spyware scanners and messaging utilities. These applications can and do use up valuable CPU resources, take up precious RAM, cause memory conflicts and crashes to desktop, but most importantly they interfere with read/writes to your hard drive effectively slowing it down and causing even more in-game freezes and stuttering. Full instructions on how to identify your startup programs and services and how to correctly disable unnecessary ones are in my TweakGuides Tweaking Companion. This is an important step you should not miss.
Overclocking: While Quake 4 is not overly sensitive to overclocking, if you are experiencing graphical glitches or crashing in the game, set everything back to its default speeds and see if this impacts on the problem. If you don't experience the same problems at default speed, or they're reduced in severity, then your overclock is the primary culprit. Either permanently reduce your overclock and/or increase cooling to regain stability. Don't assume that because other games run with stability at a particular speed that Quake 4 will do the same.
These are just a few of the common problems people are having with Quake 4. However if you follow the advice in this guide, you should be able to play the game more smoothly. Just be realistic about balancing eye candy with performance, and focus on tightening up your system as much as possible. Read the guides I link to under Essential Optimization above for more details on how to do that. The Quake 4/Doom 3 engine is quite solid and is virtually bug-free, so chances are the problem is with something on your end.
Read the remainder of this guide for specific settings and tweaks which can help improve your performance and resolve any problems. The next section looks at patches, maps and mods.
Official Patch
Although Quake 4 is quite polished and not in dire need of a patch, several patches have already been released for the game. The latest is the 1.4.2 Patch, weighing in at 267MB in full form, containing a range of singleplayer and multiplayer fixes, with the focus on multiplayer. The patch also incorporates all previous patch changes/fixes (including the beta patches), including Dual Core/HyperThreading optimizations and a wide range of bug fixes, new multiplayer maps, new game modes, and new features. All in all the patch is a must-install for all players of the game.
To make sure that you're running the latest version of Quake 4 at any time, make sure you have an active Internet connection and click on the Updates item at the bottom of the game's main menu screen on a regular basis. If an update is found, you will be told and you can install it to keep your game up to date. Alternatively, you can download patches from the Quake 4 sections of FileShack or FilePlanet among the other usual places for patch and file downloads.
Note: To enable dual core/HT optimizations available in the latest patch for a performance boost, once the patch is installed, go to the in-game settings, and under System>Advanced Options, set the 'Multiple CPU/Core' setting to Yes. Alternatively, you can use the r_useSMP 1 setting in the console - see pages 6 and 8 of this guide for more details on this option.
Note 2: Patch 1.3 adds a new r_forceambient variable which can force ambient lighting throughout each level to make things less dark. As of the 1.4.2 patch it can now also be changed in the game's main settings, so see the 'Force Ambient Light' option in the In-Game Settings section.
Note 3: Patch 1.4.2 adds several new commands including: si_fps, s_earSeperationAlgo, s_mp_minVolume, s_mp_maxWindow, g_weaponFovEffect, g_playerLean, g_nailTrail, g_grenadeTrail, g_rocketTrail, g_railTrail, g_napalmTrail, pm_slidevelocity, and pm_powerslide. The most significant of these are covered in more detail in the Advanced Tweaking section of the guide, and some, such as r_skipSky ('Enable Detailed Sky') have been added to the main in-game GUI, so see the In-Game Settings section for new details.
I will provide further details of any new patches here as soon as they come out, so keep an eye on this section.
No-CD Patch
Quake 4 has a protection system based primarily on a CD Key check - you must have a valid CD Key to install and play Quake 4 online. Quake 4 also checks to make sure you don't have certain drive emulation or CD copying software installed. Software like Alcohol, Daemon Tools and CloneCD can and will cause problems when attempting to install/run Quake 4, so if necessary uninstall/disable this software to ensure Quake 4 runs without any problems.
Finally, Quake 4 also has a CD check, whereby you must have the game CD in your CD/DVD drive to launch the game. I really find this objectionable, given the game relies on a CD Key to protect the game from illegal users playing online, which is where the bulk of Quake 4's playability comes from. However while there are No-CD patches, and methods like the use of virtual images which can circumvent this, I can't cover these here as usual for legal reasons. Please don't email me asking for these. Just be aware they exist, and they work, and hopefully Raven will remove the CD check in a future patch.
Update: As of the 1.04 Patch the CD/DVD check has been officially removed by Activision. You don't need any form of 'No-CD' or 'Fixed Image' any longer, the patch removes all such requirements, so install the latest patch and enjoy the game. Thanks go to Activision for removing it so quickly after the game's release.
Maps and Mods
It is absolutely guaranteed that Quake 4 will have a range of user-made maps and mods created for it in the fine tradition of both the earlier Quake series, and the highly modifiable Doom 3 engine upon which it is based. The full Quake 4 Editing Tools have been released and you can download them from the Quake4 SDK Site, which also provides a range of links to guides for creating and editing Quake 4 material. You can also use the Editor, EditFX and ModView console commands (See the Advanced Tweaking section) to load up the Quake 4 Level Editor, FX Editor and Model Viewer respectively.
The Quakemas Q4 Map Pack weighs in at 24MB and contains three new multiplayer maps for Quake 4 - well worth downloading. Note that it is also now included in the latest patch for the game.
To find more maps and mods, check out the following:
Quake 4 Mods
Quake 4 MP Maps
RavenGames
Quake 4 Editing Forums
Quake4X Mod
Q4Max Competition Mod
These sites and many others provide you with links to user-made maps and mods. In particular, an interesting mod to try is this Quake 4 Parallax Mapping Mod, which can greatly improve the appearance and realism of surfaces in Quake 4.
Keep in mind that the Quake series has spawned so many mods and maps, and has so much fan interest, that there will be literally hundreds of user-made maps and mods out eventually. I will try to post the most prominent ones here as I become aware of them.
The next section of the guide covers In-Game Settings for Quake 4.
This section contains full descriptions and recommendations for Quake 4's in-game settings. You can use these to get a good balance between image quality and performance, however I can't give you specific instructions on what to turn on and what to turn off. It all depends on your particular hardware combination, and more importantly your personal taste for the trade-off between performance and image quality.
To get a good idea of the type of performance to expect with Quake 4 on your particular system, and to also see which hardware components have the greatest influence on Quake 4's performance, have a look through these articles: Quake 4: AMD vs. Intel CPUs, Quake 4 High-End Graphics Card Shootout, Quake 4: ATI vs. Nvidia, and Quake 4 Performance Review.
To access the in-game settings, start Quake 4 and under the Main Menu click the Settings option, and there you will see the following settings which are explained in detail below:
Controls
This section has four separate categories for player control options you can change: Movement, Weapons, Attack/Look and Other. The procedure to change any of the control bindings is simple: left-click on the key/button currently assigned to a control, then press the relevant mouse button or key you wish to assign to that control setting. Go through all four sections and set the controls according to your taste, none of them have any performance impacts (except perhaps Smooth Mouse).
Also see the Advanced Tweaking section for more details of how to use the bind command to create your own custom control bindings.
Game Options
Free Look: When set to Yes, this allows you to use the mouse around to change your character's view direction. If set to No, moving the mouse back and forward will not make your character look up or down, it will make him walk back or forward. Has no performance impact, set to your personal taste.
Auto Weapon Reload: If set to Yes, whenever your current weapon has fired its last bullet/charge your character will automatically reload it. Has no impact on performance.
Auto Weapon Switch: Setting this option to Yes means that if your player runs over a higher-powered weapon than the one he is currently holding, he will automatically switch to it.
Show Decals: Decals are the marks left on surfaces such as bullet holes and energy scorch marks. Setting this option to No removes all such decals which can reduce realism, but will improve performance, particularly during combat scenes.
Show Gun Model: If set to Yes, you will be able to see the weapon you are holding in front of you. If set to No, your weapon will not be displayed on screen, although it will function exactly the same as normal. Setting this to No can improve framerate due to a reduction in what has to be drawn on screen (the gun model is a complex object) however not having your gun displayed may cause you confusion as to what you are currently holding.
Gun Position: Determines whether your currently equipped weapon is shown to the Right (the default), Lower Right, or Centered. It is up to you, however some people prefer lower right or centered gun positions both because it suits their gameplay style, and because it obscures less of the screen.
Simple Items: If enabled, this option turns all item pickups into icon representations rather than the full model, which can improve framerates and make them easier to identify.
Force Pro Skins: If set to Yes, in multiplayer this option forces all enemy characters to appear to you as using the same single bright skin. This makes it easier to spot them, and is generally preferred for professional gameplay.
Invert Mouse: If you are using a mouse in the game to control your player's view, setting this option to Yes means that pushing your mouse forward will make the character look down, and pulling the mouse backward will make him look up. If set to No, the results are the exact opposite. Has no impact on performance, set to your personal taste.
Smooth Mouse: This slider controls how smooth your mouse movements will be in the game. The further to the right you move the slider, the less jerky your mouse will feel as your mouse movements are averaged out. Unfortunately for most people, increasing mouse smoothness also results in quite noticeable mouse lag, whereby there will be a slight delay between your mouse movements and how that's translated to what appears on your screen. I recommend you move the slider to the far left to disable mouse smoothing if you want to minimize any mouse lag.
Mouse Sensitivity: This slider determines how sensitive your mouse is in the game. The further to the right the slider, the more sensitive your mouse is to being moved. Adjust this setting until you can turn around rapidly, yet also make small changes in your aim without excessive jumpiness. Has no impact on performance. Note, if your mouse is "lagging" in the game, aside from mouse smoothing (see above), this is primarily due to low FPS. You must adjust your settings to improve your average FPS (particularly in detailed scenes and during heavy combat) and you should then notice an improvement in mouse lag.
Crosshair: This option allows you to choose the type of crosshair displayed on screen - whether Custom, or Weapon Default. Selecting Custom allows you choose a user-specified crosshair type which is then displayed for all weapons, and you can set this under 'Set Crosshair' (See below). Alternatively, you can select the 'Weapon Default' option here, and each weapon will show its own unique crosshair type when being used. This has no impact on performance so set according to your tastes.
Set Crosshair: If Custom is chosen under Crosshair (See above), you can select a specific crosshair type displayed for all weapons, simply by cycling through the crosshair types under this setting. Click on the crosshair image to cycle through and select the crosshair which suits you.
Crosshair Size: This setting allows you to choose the size of the weapon crosshair. The options here are Small, Medium, Default, Large and Extra Large. Set it to suit your tastes, and note that you can set a custom crosshair size even when the Crosshair setting is at 'Weapon Default'.
Crosshair Color: These options allow you to customize your crosshair's color. The default is white, however you can choose a different color from the palette shown. Note that you can set a custom crosshair color even if the Crosshair setting is set to 'Weapon Default'. See the g_crosshairColor variable under the Advanced Tweaking section if you want to set a color not shown here.
Once you're done changing these settings click 'Apply Changes'.
System
[Video Settings]
Video Quality: This setting controls the overall image quality of the graphics in the game, in particular the way in which textures (the 2D images covering the surface of all 3D objects in the game) appear. This setting has a major impact on your performance and visual quality, so it's very important that you decide on the right one for your system and tastes. There are four levels of quality: Low, Medium, High and Ultra Quality, and each is covered below:
Low Quality: This mode is designed for a graphics card with 64MB of Video RAM. It uses compressed textures (textures are the 2D images used on the surfaces of all 3D objects) and light maps, and texture resolution is also quite low. The reason for this is that high resolution uncompressed textures quickly fill up your Video RAM and cause a lot of swapping into and out of the Video RAM, creating small pauses and freezes. Texture compression and reducing the resolution of textures keeps the Video RAM overhead low, with the down side being some "compression artifacts" (i.e. blurriness, some pixelation and most noticeably a purplish tinge to textures) and generally quite blurry, low res textures at this setting level.
Medium Quality: This mode is designed for a graphics card with 128MB of Video RAM. There is still compression used for textures, and light and render maps. Texture sizes are not automatically reduced however, so all textures will appear at their full resolution. There will still be compression artifacts however, but once again this must be done to keep Video RAM demand low. This mode is the one recommended for most people as it is a good balance of image quality and performance.
High Quality: This mode is designed for a graphics card with 256MB of Video RAM. In this mode there is no texture compression (which greatly increases Video RAM usage), however light maps are compressed still. It is important to note that in this mode, Anisotropic Filtering is automatically enabled and set to 8x, which is quite high. This helps noticeably sharpen textures as they fade into the distance, however it has a pronounced impact on performance. Essentially in High Quality mode texture quality is improved over Medium Quality due to removal of compression and through use of high level Anisotropic Filtering, but at the cost of a significant performance hit on cards with lower Video RAM and processing power.
Ultra Quality: This mode is the highest possible for Quake 4 and was originally designed for a graphics card with 512MB of Video RAM. No compression is used for anything, hence while graphics quality is at the best it can possibly be (not including Antialiasing, which you can also enable separately), there is a major performance hit for many current systems. Due to the lack of compression loadup times are theoretically reduced, however in exchange for this most systems will notice a lot more freezes and small loading pauses as video information is constantly being swapped into and out of your Video RAM. For the most part the difference between High and Ultra Quality modes is difficult to tell, and thus Ultra mode is not recommended for all but the highest level machines.
A screenshot comparison of the Video Quality settings is shown below (click to enlarge). You can view this comparison as a single animated slideshow here: Q4VidQual_TG.gif (1.1MB) - the animation makes it easier to spot the differences.
Note the more obvious differences - pay particular attention to the armor, the grills on the ground, your own gun and the door on the far right. Medium dramatically improves the image quality from Low, and is the recommended setting for most people. High adds a few imperceptible details and 8x Anisotropic Filtering where are better noticed while playing the game. Ultra looks very crisp when playing in-game (as opposed to the screenshots), however the difference between High and Ultra is very hard to spot. Notably, there are no texture compression artifacts at High and Ultra levels.
Some important things to note about Video Quality:
Screen Size: This setting determines the resolution of the game image. That means how many pixels are displayed on the screen. A resolution of '800x600' means 800 pixels wide by 600 pixels high on your monitor. The higher the resolution, the more pixels shown and the more detailed and clearer the game image, but it takes more graphics card power (and some CPU power) and hence you will see less frames per second. The highest resolution available in this list of resolutions is limited to what your graphics card and monitor are actually capable of rendering. The resolution has an important impact on your framerate in Quake 4 in conjunction with the Video Quality settings (see above). If nothing else helps you improve your FPS you will have to reduce the resolution.
Note: To set a custom screen size in Quake 4 see the r_mode, r_customheight and r_customwidth commands in the Advanced Tweaking section, as well as the Aspect Ratio setting below.
Aspect Ratio: This setting determines the ratio of width to height of the onscreen image. Most display devices are 4:3 aspect ratio, which is the traditional TV/monitor aspect ratio. However newer Widescreen HDTV's and LCD monitors have a 16:9 (or even 16:10) aspect ratio. If you run a normal display device, 4:3 is the correct aspect ratio choice. However if you run a widescreen device, or are outputting to an HDTV such as a plasma display panel, select 16:9 to reduce/remove the black bars around the image or any odd stretching. If this doesn't work, or you need to set a custom resolution (e.g. to match the native resolution on your panel), once again refer to the Advanced Tweaking section.
Fullscreen: If set to Yes, this means Quake 4 will run in fullscreen mode. This is recommended, as it provides optimal trouble-free performance. However if you want to run the game in a window instead - and possibly see a performance improvement - select No. This will run Quake 4 in a window with the resolution you specify in the Screen Size setting. Note that if the Screen Size setting is larger than your Windows Desktop resolution, parts of the Quake 4 game window will not be visible. Therefore if you plan on running Quake 4 in windowed mode you should specify a Screen Size of equal to or less than your current Windows Desktop resolution. Note that to reduce the potential for problems in windowed mode, your Windows Desktop should be set to 32-bit color. Also note that running in windowed mode may cause additional problems and instability, due to memory management issues, so bear this in mind if you're troubleshooting.
Brightness: The brightness slider controls the brightness of the game image. The further right you move the slider, the brighter the image. Brightness values which are too high result in washed out and unrealistic images, so don't ramp this setting up. This setting has no impact on performance.
Auto Detect Settings: If you click this option, Quake 4 will attempt to alter the above settings based on what it believes are the best values for the hardware it has detected on your system. Unfortunately, as with all game automatic detection functions, it typically sets values which are quite conservative, and hence I recommend you take the time to manually adjust the appropriate settings for the best balance of image quality and performance.
Note that changing some of the above settings will require you to exit and restart Quake 4 before they come into effect. You may have to do this more than once and recheck your settings to ensure they "stick". Alternatively you can insert your preferred settings into a config file and have it run each time at startup to guarantee your settings remain the same - see the Advanced Tweaking section.
The next page continues the in-game settings by looking at the advanced video and audio settings in detail.
[Advanced Settings]
Clicking this option takes you to a range of settings which allow you to fine tune the graphics in Quake 4. These are each covered below:
High Quality Special Effects: With this setting set to Yes, Quake 4 will use a range of advanced graphical techniques to increase your immersion in the game. For example, looking at a column of fire will produce a highly realistic heat haze effect. These effects take some graphical power to produce, so disabling this option (setting it to No) will improve your performance at the cost of realism and immersion.
Enable Shadows: This setting determines whether you see any real-time shadows cast for objects in the game. If set to Yes you will see most objects casting very realistic shadows, which move with dynamic sources of lighting (such as swinging lamps for example), however your FPS will be lower as your system has to do more calculations to determine where shadows are cast at any point in time. This is particularly noticeable when there are multiple characters/enemies on the screen, as they cast very complex shadows. If set to No, these shadows will disappear, although this doesn't mean all the areas of darkness in the game will be removed. Your performance will improve, but the atmosphere of the game may suffer somewhat. If you feel comfortable turning this option off, then the performance improvement (which is significant on many systems) may be worth it.
Enable Specular: If set to Yes, specular lighting gives the surfaces of objects, ranging from metals to skin, a realistic sheen. When combined with Bump Maps (see below), this option creates a very plausible illusion in Quake 4 that your surroundings are real. However obviously it reduces performance, so if you're after more FPS and don't mind the drop in realism, set this option to No. See the screenshot comparison above, where the difference between enabling and disabling specular is quite obvious.
Enable Bump Maps: Bump mapping is an effect which makes 2D textures appear as though they are 3D, with depth and grain. If set to Yes, surfaces will appear much more realistic, especially when light shines on them, however your performance will be lower. Again, if you need the extra FPS then turn it off. The screenshot comparison above shows that with bump mapping disabled, surfaces appear much less 3D.
Enable Detailed Sky: If set to Yes, shows the sky as normal in outdoor areas. If set to no, the sky is always shown as flat black, with no details. While this can help improve FPS slightly, the main use would be to make it easier to spot the enemy and things like rockets.
Force Ambient Light: If set to Yes, this option forces a single ambient light to be used throughout each level. This can improve FPS in areas with multiple lights, as they will be replaced with the ambien light. You can control the level of ambient brightness using the slider below this setting.
Vertical Sync: Vertical Synchronization (also called Vertical Sync, or simply VSync) is the synchronization of your graphics card and monitor's abilities to redraw the screen a number of times each second (measured in FPS or Hz). If VSync is disabled (set to No), you may see some image "tearing" as your monitor and graphics card go slightly out of synchronization when the refresh rate exceeds the monitor's abilities, however your FPS can now exceed your monitor's refresh rate. There is something important to understand when talking about VSync and Quake 4 though - the Quake 4 engine is specifically capped at 60FPS, so you cannot exceed this framerate regardless of your VSync setting (See com_fixedtic under the Advanced Tweaking section for more details). You can still have a refresh rate higher than 60Hz, it's just that your monitor will simply show some frames more than once. It is always recommended that you have as high a refresh rate as possible to ease eyestrain (See Advanced Tweaking section). Whether VSync should be on or off in Quake 4 is not set in stone - it differs by system. Enabling VSync can result in smoother performance and of course less visible tearing. However enabling VSync doesn't just cap your FPS, it also reduces average FPS. I recommend disabling VSync and then if you find the tearing to be too annoying, enable it. For details, see my Gamer's Graphics & Display Settings Guide.
Update: As of the 1.4.2 patch, the si_fps command can be used by server administrators to set a higher tick rate and hence have up to 90FPS on a server. However this is controlled by the server administrator, so check the server details before joining to see what tick rate it's been set to.
Antialiasing: Antialiasing is a method of smoothing the jaggedness of lines in 3D graphics. For more details again see my Gamer's Graphics & Display Settings Guide. This setting has up to five options depending on your graphics card's capabilities: Off, 2x, 4x, 8x and 16x. When set to Off, there is no additional Antialiasing used, unless you have forced Antialiasing enabled in your Graphics card's control panel. Antialiasing set to Off provides the fastest performance. When set to 2x Antialiasing, this uses your graphics card to smooth out jagged lines at the cost of some FPS. Higher levels of Antialiasing will reduce FPS even more, but smooth out jaggedness considerably, particularly for distant objects. Note that if you have any level of Antialiasing enabled in your graphics card control panel, they will override these settings. If you want to use Antialiasing in Quake 4 I recommend selecting 'Application Preference' in your graphics card's control panel and then setting the AA level in-game here. For most people however I recommend setting Antialiasing to Off since it is a major performance drain.
Multiple CPU/Core: This option enables Dual Core/HyperThreading optimizations to improve Quake 4 performance on systems which have such CPUs. If you have a Intel or AMD Dual/Multi Core CPU, or a Pentium4 with HyperThreading technology enabled, then set this to Yes, otherwise leave it at No. Note you must have the 1.2 Patch or higher for this setting to appear.
Once you're done with these options click 'Close Advanced Options' to go back into the main menu. You may have to restart Quake 4 for some of these settings to come into effect. You may also have to come back and check on these settings if you alter other settings, since Quake 4 can sometimes automatically reduce these to counter other changes you've made.
[Audio Settings]
Volume: This slider controls the game volume for both music and sound affects. Adjust according to your tastes. Has no performance impact. To independently reduce the music volume, see the s_musicVolume command under the Advanced Tweaking section.
[Advanced Audio Settings]
Sound System: This setting lets you choose the audio API (application programming interface) for playing back sound in Quake 4. The Default setting will work on all systems, but the OpenAL system can provide better performance and audio quality. Before setting this option to OpenAL, first you must make absolutely certain you have downloaded and installed the latest audio drivers for your sound device. See the TweakGuides Tweaking Companion for details on how to find out more about your system and how to update its drivers. Next, to find out if your sound device provides full support for OpenAL, go to your \Windows\System32 directory and look for the presence of an OpenAL32.dll file. If the file is there, you should enable OpenAL mode here, and you should experience excellent audio and minimal performance loss. If this file is not present, you can still enable OpenAL mode, however if you experience any problems, set this back to Default.
Sound Device: Select your audio device here. Usually if you have a specific sound card, it will be listed here for you to select. If the device isn't listed first make sure you've installed the latest drivers for the sound device. If it still fails to list, select 'Generic Hardware', and if you have any audio glitches select 'Generic Software'. If you just want the fastest performance and don't care about audio quality, select 'Generic Software', as the other modes may use additional system resources in return for better audio quality.
EAX Advanced HD: Most recent Creative Audigy sound cards, and the full Creative X-Fi range support Advanced HD. This audio standard adds a range of special effects to audio if enabled, at the cost of a slight reduction in performance. You must also have installed the latest Advanced HD drivers for your card which can be downloaded here.
Surround Speakers: If the game detects that you have a surround-sound capable speaker setup, this option can be set to Yes. The game determines your speaker setup based on what you have chosen under the Control Panel>Sound and Audio Devices>Speaker Settings>Advanced section in Windows. Make sure you have the correct speaker setup selected in Windows, as this also affects your audio quality and any audio problems you may experience. If you are unsure of the best speaker settings to precisely match your setup, select 'Desktop Stereo Speakers' in the Control Panel (even for Headphones this proves to be a good choice). Selecting Surround Speaker mode can reduce performance slightly due to extra processing requirements, and may also cause some audio glitching on certain systems. Note, if you can't see this option here it is because the system hasn't detected a surround-capable speaker setup. You can force this setting to appear by setting the 'Sound System' setting to Default. For more details on how to adjust several other important audio settings in more detail see the Advanced Tweaking section.
Once you're done, click the 'Close Advanced Audio' option. Note that certain changes may require you to close and restart Quake 4 before they come into effect. And once again, make sure to check through all your settings one more time after Quake 4 has relaunched, because often some settings will have changed without you having changed them.
The next section looks at advanced tweaking for Quake 4.
Quake 4 is based on the highly advanced Doom 3 engine, which means one thing - lots and lots of tweaking potential. The last section was all about how to change the easily-accessible in-game settings; this section is all about getting into advanced tweaking. You will note that this section bears a remarkable resemblance to the Advanced Tweaking section of my Doom 3 Tweak Guide - that's unavoidable given it's almost the exact same engine which powers both games. There are notable differences however.
Doom 3 vs. Quake 4
Just to be clear, Quake 4 is not identical to Doom 3. Certain Doom 3 commands are different or missing from Quake 4, and vice versa. The aim of this guide is to point out the commands which work in Quake 4, and provide you with a standalone Quake 4 guide so you don't have to refer to my Doom 3 Tweak Guide and work out what the differences are for yourself.
However, the bulk of the tweaks for Doom 3 work exactly the same way for Quake 4, since it's the same basic engine. So if you have a tweaked custom Autoexec.cfg file for Doom 3 for example, you can use that as your starting point for a customized .cfg file for Quake 4 without too much modification.
Using the Advanced Tweaks
The most common mistake made in tweaking Quake 4/Doom 3 is to quickly apply a range of tweaks without knowing what exactly they do, so if you're new to tweaking the Quake 4/Doom 3 engine, read this section carefully and pay close attention to the descriptions of how tweaks are applied and what they do. If you've already done some tweaking for Doom 3, then the methods used are exactly the same, and you can skim through this information.
There are two main ways in which you can access and alter command variables in Quake 4 - through the Console and through .cfg (Config) files. To save time in this guide, I detail all the major commands one by one in the next section, and you can then decide the method to use to implement particular ones. The methods are essentially interchangeable, meaning changing the variable using one method has the same impact as doing it another way - the only difference is which is more convenient for you. Once you're familiar with the various methods, see the 'Which Way is Best' section at the bottom of this page for my opinions of how best to apply tweaks.
The Quake 4 Console
The console is the closest you can get to having direct real-time access to the Doom 3 engine powering Quake 4. Through the console you can enter commands to change engine variables during the game. To open the console, start Quake 4 and then press the CTRL, ALT and ~ keys together. You will see the console come down, and you can enter text at the command prompt. A list of commands you can enter are covered in the next section. To make regular access to the console easier, enter the following line into the console:
seta com_allowconsole 1
This means that you can now open and close the console by simply pressing the '~' key (the key above TAB), and not three keys at once. Note that the best way to make this and many other settings "stick", i.e. remain enabled even after quitting and restarting Quake 4, you will need to insert it into a Config file, or in the game icon's Target line, both of which are covered below.
Quake 4 Config Files
Although you can alter many variables by entering them into the console, most command variables need to be set each and every time you start Quake 4. This is because the game engine resets these variables to their default state as the engine initializes at startup. By default, when the game engine starts, it automatically detects the presence of, and runs the command variables from two specific files: Quake4Config.cfg and AutoExec.cfg. Quake4Config.cfg already exists in your \Program Files\id Software\Quake 4\q4base\ directory, and you can edit it using a text editor like Windows WordPad or Notepad. However changing some of the settings in Quake4Config.cfg will see them reset to default values again the next time you restart Quake 4. So the best thing to do is create a new text file, rename it to AutoExec.cfg and place it in your \Program Files\id Software\Quake 4\q4base\ directory. You can now enter all your custom tweaks and settings into this file, and they will come into effect automatically each and every time you start Quake 4. This makes it easier to keep track of what you have tweaked, and if at any time you want to remove all your tweaks, you can simply delete this AutoExec.cfg file, or see which commands need to have their values manually reset to default.
Note that there is another way of executing a config file, and that is to firstly create a config file with any name you wish, e.g. MyTweaks.cfg, place it in the \Program Files\id Software\Quake 4\q4base\ directory, and then in the Quake 4 console at any time type:
exec MyTweaks.cfg
This will run all the command variables in your new .cfg file, however unless you actually execute this file it will not be automatically run at startup time - only DoomConfig.cfg and AutoExec.cfg are automatically detected and run by Quake 4.
Update: As of the 1.4.2 patch, Quake 4 singleplayer and multiplayer each have their own directories. While singleplayer remains in its original directory, Quake 4 multiplayer can be found under the new \Program Files\id Software\Quake 4\q4mp directory. This means that there are now two sets of .cfg files, one set for singleplayer, the other for multiplayer.
Quake 4 Icon Commands
There is one more way you can run command variables for Quake 4 - enter them as part of the command line for the Quake 4 icon. To do this, first right-click on the icon you use to launch Quake 4, and then select Properties. In the Target box, you will see something similar to this (it varies depending on where you installed the game):
"C:\Program Files\id Software\Quake 4\Quake4.exe"
You can add command variables to the end of this line by using a space and then a '+' sign in front of each command. For example, to allow easy access to the console each time you start Quake 4, change the target line to the following:
"C:\Program Files\id Software\Quake 4\Quake4.exe" +set com_allowconsole 1
Note that there are quotes around the target to the Quake4.exe file, but after that, simply add a space and a plus sign before each command. Another example is provided below with three separate commands:
"C:\Program Files\id Software\Quake 4\Quake4.exe" +set com_allowconsole 1 +set r_gamma 1.3 +disconnect
This means that every time I use this icon to launch Quake 4, it changes my console to one-key access (using the '~' key), changes my gamma from (screen brightness) 1.0 to 1.3, and skips the introductory movies. Note the spacing - none between the plus signs and command, but a single space between each separate command.
So Which Way Is Best?
Now you know the different ways to apply command variables in the Quake 4 engine, as I mentioned before, there is no single "best" way. Each method works, it just depends on what you find more convenient. I personally prefer to place all my tweaks in a single AutoExec.cfg file, because that way I can see at a glance all the settings I've changed, and if need be I can remove the file (e.g. for troubleshooting purposes), or change each setting back to default. I can also easily back up this file so I can quickly reapply the same tweaks if ever I reinstall Quake 4, or if my settings are lost after I patch the game.
However, I suggest that you first use the in-game console to try some commands and see what effect they have on the game, and then you can insert them into your AutoExec.cfg file once you've determined if they're worth using, and which values work best for you. Furthermore, some commands are only really useful if used in the console - for example the "recorddemo" command records a custom demo...not something you want to have in your AutoExec.cfg file. Also note that certain commands don't come into effect until the game is restarted (e.g. or just use the vid_restart command - see the Advanced Tweaking section), so you will have to experiment by placing those in your AutoExec.cfg first, see what they do, and then decide whether to keep them or not.
Importantly, if you are going to edit Quake4Config.cfg, first make a backup of the file so that should something go wrong you can restore the file to its original state. Also, some people recommend that you make changes to Quake4Config.cfg and then make the file read only to prevent the game from erasing/resetting some of the changed settings. I personally don't recommend this, as Quake 4 needs to have write access to Quake4Config.cfg file so that for example when you change one of the in-game settings or a key binding, it can record the change in that file.
The next section provides a list of all the game's most useful commands/command variables (cvars) along with descriptions.
This section lists all the major Quake 4 commands and command variables (cvars) by general function, and provides descriptions and recommendations for the important ones. This list is by no means exhaustive, since there are literally over a thousand different commands and command variables for Quake 4. You can download the full list of Quake 4 commands and cvars from here: Quake4Commands.zip (22Kb) and have a look through it at your leisure.
Usage rules
Config and Console Usage: In the Quake 4 engine, when you want to use a command - whether in a config file or in the console - you can simply type the name of the command, and then any values or parameters (if required), however you must place exactly one space after the command and any following value or parameter. E.g: r_displayrefresh 85. You don't have to use "" (quotes) around the value, nor do you have to use the Set or Seta command in front of them.
Set and Seta In Front of Commands: You will see in certain places, like the Quake4Config.cfg file, that a command is prefaced with the words Set or Seta. You can also insert these in front of your commands in the console or config file, however they aren't absolutely necessary for a command to work. The Set command is used to tell the game engine to set a cvar to a particular value. Seta is more useful in that it tells Quake 4 to set the cvar value, and then archive it (store it). Don't use Seta unless you want a value to "stick", as it will remain there until you either manually change its value again and/or restore a previous Quake4Config.cfg backup.
Current and Default Values: If at any time you want to see the currently used value for a command variable, open the console and type the name of the variable without a value. For example, type "r_displayrefresh" (without quotes) and you will see the current value for this variable on your system, and importantly you will also see the default value. There are different defaults for many of the commands depending on your particular system hardware configuration; that's why I don't provide defaults here - they vary based on each system.
Note: if you can't remember the exact name of a command, type the first letter(s) of it in the console and then press the TAB key - the console will show you all commands beginning with the same letter(s).
The following is a list of all the major commands for Quake 4, grouped by function, and with a detailed description. Note that I have tested all of these and they should work for Quake 4 specifically, and non-working Doom 3 commands have been removed. However if you have any additions or alterations to make based on your own testing or knowledge, please Email Me. Note that settings which can be easily and fully changed in the Main Menu of the game will not be covered here (e.g. ui_showgun) - see the In-Game Settings section for descriptions of those. Also some of the more obscure commands are not very useful to most users (such as a range of developer and debugging commands) and these are not included. Finally, remember that some of these commands are considered cheats, and should not/cannot be used when playing online. This includes commands which dramatically alter the appearance of the game world for example, or alter the movement or weapon characteristics.
Common Commands
com_showFPS [0,1] - If set to 1, shows the current frame rate in Frames Per Second (FPS) at the top right of the screen. If set to 0, disables the counter.
com_allowConsole [-1, 0,1] - If set to 1, allows the command console to be opened by using only the '~' key, rather than CTRL + ALT + ~ (when set to 0). If set to -1, disables the console completely.
bind [keyname, command] - Binds a command to a key. For example:
bind F10 com_showFPS 1
bind F11 com_showFPS 0
Binds the F10 key to the command "com_showfps 1" (which turns on the FPS counter), and the next line binds the F11 key to the command "com_showfps 0" (which turns off the FPS counter). If you want to make a key binding 'toggle', that is pressing the same key turns a command on or off, then use the Toggle command instead, for example:
bind F10 toggle com_showFPS
Now the F10 key alone will turn the FPS counter on and off, which frees up the F11 key.
bindunbindtwo [keyname, command] - Same as bind command, however if the key you want to bind is already being used more than twice, it will unbind it first then bind it to the command you've specified.
unbind [keyname] - Unbinds any existing commands from the single key named.
unbindall - Unbinds any commands from all keys. This command is used most commonly as a starting command before setting bindings, so that you can be sure the keys you are binding are not already in use by another command.
loadGame [savename] - Loads a saved game with the name specified. If no name is specified, loadgame will load the last quicksave.
saveGame [savename] - Saves your current game under the name specified. If no name is specified, saves the game in the first quicksave spot.
editor - Opens the Quake 4 level editor.
editFX - Opens the Quake 4 effects editor.
modView - Opens the Quake 4 model viewer.
echo [text] - Prints the specified text onto the screen.
exec [filename] - Executes the commands in the config filename provided. For example to execute all the commands in a custom configuration file called MyTweaks.cfg, type:
exec MyTweaks.cfg
And all the commands in it will be compiled and run.
screenshot - Takes a screenshot and places it in your \Quake 4\q4base\screenshots\ directory as a .tga file, similar to using the F12 key.
screenshotJpeg - Takes a screenshot and places it in your \Quake 4\q4base\screenshots\ directory as a .jpg file.
conDump [filename.txt] - dumps the entire contents of the console for the current session to the text filename specified and places it in your \Quake 4\q4base\ directory.
clear - Clears the console of all text to date. Useful if you want to clear the console before generating specific text (e.g. listcmds) then condump them cleanly.
promptKey - Opens a dialog box which shows your current Quake 4 CD Key and allows you to edit it or enter a new key.
developer [0,1] - If set to 1, enables Developer mode, which allows certain other console commands to work.
devmap [mapname] - Loads a map in Developer mode.
g_crosshairColor [RGB] - Sets a custom crosshair color. The color value is a four-digit code (default of 1, 1, 1, 1 is white) which I believe is a 3-digit RGB color code (in the range 0.0 to 1.0 instead of the usual 0 to 255) and an Alpha value.
noclip - Toggles clipping on/off. By default clipping is on. When clipping is turned off, you can walk through solid objects, useful for troubleshooting.
god - Enables God mod, useful for troubleshooting or just having fun.
ai_freeze - Freezes all artificial intelligence in the game, useful for stopping monsters.
kill - Kills the player.
killMonsters - Kills all monsters.
exit - Immediately exits Quake 4 to the Windows Desktop.
Performance Commands
[Dual Core/HyperThreading Tweaks]
r_useSMP [0,1] - By default Quake 4 is designed for running on single core CPUs. However if you have a dual core (or multi-core) CPU, or an Intel CPU with HyperThreading, setting this option to 1 will force the game engine to Symmetric MultiProcessing (SMP). This significantly increases the performance of Quake 4 (with the 1.2 patch or higher) for systems with Dual Core/HyperThreading CPUs. Note that if you set this option to 1 on a single core CPU, the game engine will automatically detect the fact that you don't have a dual core system and not enable SMP. It is strongly recommended all dual core/HT users set this option to 1.
[Cache Tweaks]
The following commands control the image cache, which if enabled and set correctly can help smooth FPS and also boost performance:
image_useCache [0,1] - If set to 1, uses background loading to cache image information. This may not necessarily improve framerate performance, but it does assist in smoothing out frame rates and reducing loading pauses. Note that the image_cacheMinK (see below) size must be raised from its default otherwise the game will crash when using this setting. Once this setting is enabled, the actual cache value is set in the image_cacheMegs setting below.
image_cacheMegs [Megabytes] - Determines the maximum amount of system memory to allocate to temporary loading of full-sized precompressed images if the cache is enabled by setting image_useCache to 1. Note that since this caching only applies to precompressed images, using the Ultra Quality setting will render this setting useless, since at Ultra quality no texture compression is used. Since a cache is only a temporary holding area, and not the place where the entire game is meant to reside, do not raise this value to something extremely high as that will simply reduce the available memory for the rest of Quake 4. Try a value of 128MB for those with 512MB of system RAM, and if you have 1GB or more of RAM, you can try a higher value like 196MB or 256MB for example. Do not automatically set this to half your system RAM or some monstrous amount.
image_cacheMinK [KiloBytes] - This setting determines the minimum size in KB for precompressed image files to be loaded into the cache. To make sure most image files can be loaded, and to also prevent a system crash when enabling caching, select a value like 3072 to start with. Raising this setting may improve caching, but it may also hinder caching if most textures are below the size you specify, so don't just raise this value for the hell of it.
[Graphics Tweaks]
r_forceAmbient [0-1.0] - Forces a single ambient light to be used throughout each level, with the intensity of the light based on the value used, from 0 to 1.0. E.g. a value of 0.3 provides a brighter environment by using a soft ambient light.
r_brightness [value] - Determines the overall brightness for the game. You can adjust this using the slider in the main options menu (See In-Game settings), however if you want to fine tune it you can do so here. Has no performance impact.
r_gamma [value] - Determines the gamma level (essentially a form of brightness) for the game. Raising this value too high can make the game image appear washed out. Has no performance impact.
r_displayRefresh [Hz] - Determines the refresh rate used when Quake 4 is launched. You should already be getting the maximum refresh rate possible on your monitor when playing Quake 4 through the use of a refresh rate fix (See my ATI Catalyst Tweak Guide or my Nvidia Forceware Tweak Guide for a link and instructions), however if you want to set this manually, determine the supported maximum refresh rate on your monitor for the resolution you've chosen for Quake 4, and set this variable to that value.
r_multiSamples [0,2,4,8,16] - This setting determines the level of Antialiasing samples used. This can be set using the in-game menus (See In-Game Settings section). The numerical values here are 0 which is no antialiasing, 2, 4, 8 and 16.
image_anisotropy [1,2,4,8] - This setting determines the level of Anisotropic Filtering used in Quake 4. Valid values are 1, 2, 4, and 8. The higher the value, the lower your performance, but the crisper textures will appear in the distance. Note that 1 is the lowest you can set for Anisotropic - 0 will simply default back to 1. Also note that if you have forced Anisotropic Filtering in your graphics card's control panel, it will override this setting, so for optimal performance set the Anisotropic Filtering level in your control panel to 'Application Preference', and adjust the level here. Finally, note that when using High or Ultra Video Quality, this is set to 8 by default, however you can adjust it downwards without affecting the other beneficial aspects of those video quality modes.
image_filter [GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR] - Determines the OpenGL texture filtering method to use on textures by default. GL_LINEAR_MIPMAP_LINEAR is Trilinear Filtering, however if you want a performance boost without any noticeable image quality loss, change this setting to GL_LINEAR_MIPMAP_NEAREST which is Bilinear Filtering.
r_customHeight [pixels] - Sets a custom screen height in pixels. The r_mode command must be set to -1 to allow this to work.
r_customWidth [pixels] - Sets a custom screen width in pixels. The r_mode command must be set to -1 to allow this to work.
r_mode [-1,3,4,5,6,7,8] - This setting determines the resolution, as set in the in-game menus under Screen Size (See In-Game Settings section). The mode values are -1 = Custom (see r_customheight, r_customwidth commands), 3 = 640x480, 4 = 800x600, 5 = 1024x768, 6 = 1152x864, 7 =1280x1024 and 8 = 1600x1200.
com_videoRam [MB] - Shows the detected amount of video memory on your graphics card in MB. If this value is incorrect, set it to the correct value to improve performance.
com_cpuSpeed [GHz] - Shows the detected CPU Speed. If this value is incorrect, set it to the correct value to improve performance.
com_systemRAM [MB] - Shows the detected amount of system RAM. If this value is incorrect, set it to the correct value to improve performance.
cm_backFaceCull [0,1] - If set to 1, removes all polygons behind the direction the player is facing - that is, all the things the player cannot see. This can noticeably improve performance without any image quality loss, but if you experience any visual anomalies or increased loading pauses when entering new areas, set this back to 0. Note it's cm_backFaceCull, not com_backFaceCull.
com_purgeAll [0,1] - If set to 1, discards all data between level loads. Can increase loading times noticeably but may help reduce in-game pauses on systems with less System RAM/Video RAM.
com_fixedTic [-1,0,1] - If set to 0 (the default) Quake 4's ticrate is capped at 60, meaning the game framerate cannot exceed 60FPS, except when running a timedemo. If you want to remove this cap, set com_fixedTic to -1. Setting it to 1 removes the cap, but causes the game physics to go out of sync. Removing the FPS cap doesn't necessarily improve performance, and can lead to more variable framerates. Any frames over 60FPS will typically be duplicates and hence there is no real performance benefit. Note that as of the 1.04 patch that com_fixedtic -1 is no longer accepted, 0 and 1 are the only working options.
com_machineSpec [-1,0,1,2,3] - Shows the currently detected machine specification level, with the choices being -1 - Not detected, 0 - Low quality, 1 - Medium quality, 2 - High quality, and 3 - Ultra quality.
setMachineSpec - Detects your system hardware and sets the value for com_machineSpec.
execMachineSpec - Executes all the relevant config files and sets variables based on the machine specifications provided by the com_machinespec variable. For example, if you raise your machine spec to 3 using com_machinespec 3, then running the command execMachineSpec will change all your settings and config variables to the ones appropriate to a machine suited for Ultra quality performance (i.e high end).
r_orderIndexes [0,1] - If set to 1, reorganises indexes to optimize vertex use. This improves rendering performance.
r_usePortals [0,1] - If set to 1, uses portals to perform area culling, otherwise everything is drawn. Setting this to 1 provides the best performance.
r_useOptimizedShadows [0,1] - When set to 1, uses the dmap generated static shadow volumes, which provides optimal performance.
r_lightScale [value] - All light sources are multiplied by this value. Increasing this value increases the intensity of all visible light sources. Basically it makes light sources brighter the higher the value.
r_skipDiffuse [0,1] - If set to 1, disables diffuse lighting. This improves performance, but also darkens areas where such lighting is used since no lighting is used to replace the removed diffuse lighting.
r_skipUpdates [0,1] - If set to 1, lighting is not updated, meaning all lighting will become static (fixed direction and intensity). This can improve performance significantly, but reduces realism.
r_skipDeforms [0,1] - If set to 1, any material which can be deformed will remain in its original state.
r_skipFogLights [0,1] - If set to 1, disables all fog lights which can improve performance.
r_skipTranslucent [0,1] - If set to 1, disables translucent rendering, which can improve performance (but reduce realism) in such areas.
r_skipInteractions [0,1] - If set to 1, disables all light interactions with surfaces, effectively making almost all surfaces black.
r_skipMegaTexture [0,1] - If set to 1, uses only the lowest level images. This improves performance at the cost of lower image quality for some surfaces.
r_skipGuiShaders [0,1,2,3] - If set to 1, this removes all Graphical User Interfaces (GUIs) in the game (i.e. computer terminals, security screens etc.), if set to 2, GUIs aren't drawn but they can still be interacted with, if set to 3 they will be drawn, but cannot be interacted with. These settings can improve performance but obviously reduce playability.
r_useShadowCulling [0,1] - If set to 1, tries to remove shadows from partially visible lights. This provides optimal performance.
r_useLightCulling [0,1,2,3] - Determines the light culling method. 0 is no culling, 1 is box culling, 2 is the exact clip of polyhedron faces, and 3 also includes areas. This should be set to 3 for optimal performance. Other methods can reduce visual anomalies with lighting but will reduce performance.
r_useCulling [0,1,2] - Determines the object culling method. 0 is no culling, 1 is sphere culling and 2 is sphere and box culling. Setting this to 2 provides optimal performance, but other methods can be tried to reduce visual anomalies.
r_renderer [best, arb, arb2, cg, exp, nv10, nv20, r200] - Determines the rendering path to use. Some renderers can't run on certain hardware - for example cg is an Nvidia rendering language and can't run on ATI cards. You can experiment with these to see which is best on your system, however the best option should be set for most.
r_ignoreGLErrors [0,1] - This setting should be set to 1 to ignore OpenGL errors. Most people will have one or two OpenGL errors throughout the game, and these don't seem to affect gameplay.
r_znear [value] - This setting determines the distance at which z-buffer clipping occurs. The default value is 3, and lower values can result in graphical anomalies for distant objects but improve performance, while higher values may help reduce any z-buffer graphical anomalies, but may reduce performance.
r_useInfiniteFarZ [0,1] - If set to 1, this uses the no-far-clip-plane trick which provides optimal performance.
r_useStateCaching [0,1] - This option should be set to 1 for optimal performance, as it caches OpenGL state changes.
r_useIndexBuffers [0,1] - If set to 1, uses ARB_vertex_buffer_object for indexes. This can actually reduce performance, so set to 0.
r_useVertexBuffers [0,1] - If set to 1, uses ARB_vertex_buffer_object for vertexes, which improves performance.
r_useCachedDynamicModels [0,1] - If set to 1, uses cache snapshots of dynamic models which improves performance.
r_useTwoSidedStencil [0,1] - If set to 1, optimizes the processing of stencil shadows.
r_useTurboShadow [0,1] - If set to 1, uses the infinite projection with W technique for dynamic shadows which improves performance without a noticeable drop in image quality.
r_useShadowVertexProgram [0,1] - If set to 1, does the shadow projection in the vertex program on graphics cards with this capability. If you set this to 1 and experience problems or a crash, it is because your graphics card does not support this functionality.
r_useShadowProjectedCull [0,1] - If set to 1, removes polygons which would fall completely inside shadows, optimizing performance.
r_useTripleTextureARB [0,1] - If set to 1, this allows graphics cards with 3+ texture units do a two pass instead of three pass which improves performance. Set this to 1 and if you experience problems, your graphics card does not support this function.
r_useConstantMaterials [0,1] - If set to 1, this setting uses pre-calculated material registers if possible, improving performance.
r_useNV20MonoLights [0,1] - If set to 1, this option uses optimized rendering for mono lights originally intended for Nvidia NV20 GPUs.
r_useLightPortalFlow [0,1] - If set to 1, this uses a use a more precise area reference determination for lighting. Setting this to 0 improves performance but may result in graphical anomalies.
g_projectileLights [0,1] - If set to 1, allows dynamic lights for projectiles. Setting this to 0 can improve performance in combat.
g_doubleVision [0,1] - If set to 1, shows a blurry "double vision" effect when taking damage. Setting this to 0 removes this effect and can improve performance when taking damage.
g_perfTest_aiNoRagdoll [0,1] - If set to 1, disables the "ragdoll" effect when monsters die, which can slightly improve performance on slower CPUs in heavy combat scenes.
g_perfTest_weaponNoFX [0,1] - If set to 1, disables all weapon effects like muzzle flash, ejecting brass, tracers etc. which can improve performance in heavy combat.
r_jitter [0,1] - If set to 1, creates a jittery effect for everything viewed. Can reduce performance.
g_muzzleFlash [0,1] - If set to 1, shows a flash from the muzzle of weapons that are firing. If set to 0, this effect is disabled, which can improve performance.
g_brassTime [0- ] - Amount of time before visible shells ejected from weapons will disappear. Reducing the time will improve performance in heavy combat. If set to 0, no visible shells will be ejected.
g_showHud [0,1] - If set to 1, this enables the Heads Up Display (HUD). If set to 0, this removes the HUD from view, which may give a minor performance improvement. This command is most useful for taking "clean" screenshots (i.e. without the HUD).
g_showPlayerShadow [0,1] - If set to 1, the player will cast a shadow when standing near lights. If set to 0, the player casts no shadow, which improves performance.
g_skipViewEffects [0,1] - If set to 1, removes various view-related special effects like the damage effects (double vision). This can improve performance.
g_fov [angle] - Specifies the angle for the Field of View (FOV). The wider the angle, the larger the field of vision for the player, giving a "fish eye" view in effect, however performance will be reduced. The smaller the angle, the higher the performance. The default of 90 is recommended, but players can try 85 which is a value used in some other games and will gain a slight boost in FPS.
g_skipFX [0,1] - If set to 1, disables certain special effects (I'm unclear on which). This can improve performance.
g_skipParticles [0,1] - If set to 1, disables certain particle effects (does not include smoke, dust, fog effects etc). This can improve performance, particularly in areas which use these effects to a large extent, but realism will be reduced.
image_usePrecompressedTextures [0,1] - When set to 1, all textures will be precompressed, resulting in less video memory being used and hence smoother performance on most machines. There may be some minor compression artifacts on textures, but these are hardly noticeable. If set to 0, this setting will force realtime compression on textures which results in reduced image quality and performance. Note that if this setting is set to 0 and the image_useCompression setting is also set to 0, uncompressed textures will be used for highest image quality, but performance will suffer and you will get more small pauses depending on the amount of Video RAM on your graphics card, so on balance this should be set to 1.
image_useNormalCompression [0,1,2] - Specifies the compression method used for textures. 0 disables normal map compression for the highest image quality for textures, 1 is 256 color compression (if available), which gives the best performance but provides the most compression artifacts, while 2 is rxgb compression. When combined with the setting above and below, setting this to 0 provides optimal image quality for minimal performance hit.
image_useCompression [0,1] - When set to 1, compression is used - with the method of compression specified in the image_useNormalCompression variable. Compression provides the fastest performance by reducing the size of all textures and light maps, but there are some (minor) compression artifacts. When set to 0, precompressed textures are still used, but realtime compression is not used if image_useNormalCompression and image_usePrecompressedTexures are activated. This results in better image quality, but slower performance particularly during periods when precompressed textures are not used.
image_preload [0,1] - If set to 1, Quake 4 attempts to preload most images in the background, meaning less loading pauses during the game but longer loading times. If set to 0, images are loaded dynamically as needed, meaning more loading pauses during the game. 1 is the recommended setting.
image_lodbias [value] - Determines the Level of Detail (LOD) bias for mipmapped images. The higher the number, the less detail is visible on surrounding objects. This can improve performance, but reduces image quality. The default is 0, and values above 1 reduce detail quite heavily, so experiment with fractional values such as 0.2 or 0.5.
Update: As of the 1.4.2 Patch, the g_nailTrail, g_grenadeTrail, g_rocketTrail, g_railTrail, and g_napalmTrail commands have been added, allowing users to disable the weapons trails left by the relevant weapons.
[Sound Tweaks]
s_force22kHz [0,1] - If set to 1, this forces lower quality (22kHz) audio, which reduces sound quality but can improve performance.
s_numberOfSpeakers [2,4,5,6] - This value shows the number of speakers the game has detected, based on the your general Windows settings and In-Game settings. You can manually alter this value, however make sure it matches your current speaker setup otherwise you will have missing audio channels.
s_volume [0-1] - This is the sound volume level for the game. You should use the in-game menu volume slider to adjust the sound, but if it is too low or too high you can also adjust it here.
s_musicVolume [0-1] - This is the music volume level for the game, which is distinct from the main game volume control. You can disable the in-game music by setting this to 0.
s_maxSoundsPerShader [value] - This setting determines the maximum number of sounds to use per shader, that is how diverse the sounds effects are. Increasing this value increases sound variety but also increases memory usage and can reduce performance.
s_clipVolumes [0,1] - When set to 1, this removes sounds which cannot be heard which provides optimal performance.
s_useOcclusion [0,1] - Occlusion is a basic audio method which muffles sounds which aren't clearly heard, such as those behind walls and objects. If set to 0, this method is disabled reducing realism but it may increase performance.
s_useEAXOcclusion [0,1] - If set to 1, the EAX Occlusion effect is used, which is an improved form of occlusion. However if you want to adjust this aspect of EAX separately from EAX Reverb (see s_useEAXReverb), you can individually enable/disable it here.
s_useEAXReverb [0,1] - If set to 1, uses the EAX Reverberation effect, however it can be disabled separately here while still retaining EAX Occlusion effects (See s_useEAXOcclusion).
s_playDefaultSound [0,1] - When set to 1, if any sounds are missing a beep is played back instead. If you are getting a lot of beeping errors, you can set this to 0 to remove them.
s_noSound [0,1] - If set to 1, disables all sounds.
[Downsizing Tweaks]
The following values control the largest size allowed (in pixels) for textures, lighting and render maps. If downsampling is not enabled, these values make no difference. However if downsampling is enabled, changing the limit values can improve performance by restricting the size of texture, light and render maps. The common values are 256 for 64MB graphics cards, 512 for 128MB graphics cards and 1024 for 256MB graphics cards. You can try lower values for your graphics card to see if loading times and in-game pauses are improved, and judge whether your image quality has fallen or not. Typically smaller sample size limits will result in more pixelated textures and less detailed lighting as textures and lightmaps are resized from their original resolutions to smaller ones.
image_downSizeLimit [pixels] - This setting controls the diffuse light map downsample limit - the largest size in pixels for the diffuse light map. Use 256 for graphics cards with 64MB of Video RAM, 512 for 128MB VRAM and 1024 for 256MB VRAM or above.
image_downSize [0,1] - If set to 1, this puts into effect the downSizeLimit value specified above. If set to 0, textures are displayed at full resolution for highest image quality but lower performance.
image_downSizeBumpLimit [pixels] - This setting controls the bump map texture downsample limit. Use 256 for graphics cards with 64MB of Video RAM, 512 for 128MB VRAM and 1024 for 256MB VRAM or above.
image_downSizeBump [0,1] - If set to 1, this puts into effect the downSizeBumpLimit value specified above. If set to 0, bump mapping on textures are displayed at full resolution for highest image quality but lower performance.
image_downSizeSpecularLimit [pixels] - This setting controls the specular lighting light map downsample limit. Use 256 for graphics cards with 64MB of Video RAM, 512 for 128MB VRAM and 1024 for 256MB VRAM or above.
image_downSizeSpecular [0,1] - If set to 1, this puts into effect the downSizeSpecularLimit value specified above. If set to 0, surface effects on textures are displayed at full resolution for highest image quality but lower performance.
The next page continues the console command listing.
Demo Commands
recordDemo [demoname] - Records a demo of your current (singleplayer) gameplay with the name specified. The demo is placed in your \Quake 4\q4base\demos\ directory by default. This directory doesn't exist by default and is created the first time you record a demo.
stopRecording - Stops recording the current demo.
playDemo [demoname] - Plays back a singleplayer demo with the name specified.
recordNetDemo [demoname] - Records a demo of your current gameplay on a multiplayer server only and saves it to your demo directory, similar to the recordDemo command but is more 'real world' for benchmarking purposes - see this page for more details.
stopNetDemo - Stops recording the current multiplayer demo.
playNetDemo [demoname] - Plays back a multiplayer demo with the name specified.
com_preloadDemos [0,1]- Preloads all demos before playing them. Set to 0 will reduce memory usage, but loading demos will take longer.
com_compressDemos [0,1] - If set to 1 will compress demo files recorded, reducing their size. These files may take longer to load.
demoShot [demoname] - Creates a screenshot for the demo file specified.
avidemo [demoname] - Creates an AVI from an existing demo.
avigame Creates an AVI from your current gameplay.
com_aviDemoHeight [pixels] - Determines the resolution height in pixels for AVI demos generated through the avidemo command. The greater the size, the larger the resulting file.
com_aviDemoWidth [pixels] - Determines the resolution width in pixels for AVI demos generated through the avidemo command. The greater the size, the larger the resulting file.
com_aviDemoSamples [samplerate]- Determines the sample rate for AVI demos generated through the avidemo command. The higher the rate, the larger the resulting file will be, but the smoother it will play.
Benchmarking Commands
benchmark - Runs a benchmarking procedure which uses progressively less pixels (screen size shrinks) and then goes through a variety of effects until a result is provided at the end in the console.
timeDemo [demoname] - Runs a timedemo on the demo name provided. As no default demos exist in Quake 4, you will have to use a custom demo See the Conclusion section for more details of where you can download a good custom demo for use here, and more instructions on its usage.
timeDemoQuit [demoname] - Runs a timedemo, and then exits the game completely when done.
playNetTimeDemo [demoname] - Runs a timedemo using a demo recorded in multiplayer using the recordNetDemo command.
Control/Movement Commands
sensitivity [value] - This value represents your mouse sensitivity, as set by the slider in the in-game menus (See In-Game Settings). Raising the value increases the mouse's sensitivity to movements in the game.
m_accel [value] - This value sets the rate of mouse acceleration for Quake 4. The higher the value the larger your mouse movements will be as you keep moving the mouse in a particular direction. This option is only available in Quake 4 version 1.2 or higher.
The variables below control the slight bobbing movements your player has when moving around, such as when he is running (runroll, runpitch, runbob), walking (walkbob, bobroll, bobpitch, bobup) and crouching (crouchbob). These bobbing, pitching and rolling movements are all quite realistic, but may be annoying to some people. Raising the values increases the bobbing and pitching, while reducing the values lessens the intensity of these movements. Note, bobbing will still occur in multiplayer unless the server admin has allowed bob to be altered.
pm_bobroll [value]
pm_bobpitch [value]
pm_bobup [value]
pm_runroll [value]
pm_runpitch [value]
pm_runbob [value]
pm_walkbob [value]
pm_crouchbob [value]
pm_crouchrate [seconds] - This setting controls the time it takes for the player to switch from standing to crouching. The higher the setting, the longer it takes.
pm_normalviewheight [value] - Determines the height of the player's view when standing.
pm_crouchviewheight [value] - Determines the height of the player's view when crouching.
pm_staminarate [value] - Determines the rate at which the player regains Stamina points. Divide the pm_stamina value by this rate to calculate how long it takes for the player to fully regain all his stamina.
pm_staminathreshold [value] - When stamina falls below this value, the player slows to a walk.
pm_stamina [value] - Determines the length of time a player can run.
pm_speed [value] - This setting determines how fast a player can run. Higher values result in a faster speed.
pm_walkspeed [value] - This setting determines how fast a play can walk. Higher values result in a faster walking speed.
pm_crouchspeed [value] - This setting determines how fast a player can move while crouching. The higher the value, the faster a crouching player can move.
pm_stepsize [value] - This is the maximum height over which a player can step without having to jump. Lower values may result in players not being able to climb stairs without jumping for example.
pm_jumpheight [value] - This setting is the approximate height a player can jump. Higher values will result in a higher jump height.
Update: As of the 1.4.2 Patch, pm_slidevelocity and pm_powerslide have been added, controlling movement speed on angled surfaces. g_playerLean has also been added, controlling the degree to which a player leans in the direction they're moving.
View Commands
pm_thirdPersonDeath [0,1] - If set to 1, enables third person view when the player dies.
pm_thirdPerson [0,1] - If set to 1, shows the player in third person view.
pm_thirdPersonAngle [angle] - If third person view is being used (i.e. pm_thirdPerson is set to 1), this determines the angle of the third person view. 0 is behind the player, while 180 is looking directly at the player's face. Other values view the player from various angles.
pm_thirdPersonHeight [value] - If using third person view, this determines the height of the camera from normal view height. Positive values raise the camera above normal view height, negative values below normal view height.
pm_thirdPersonRange [value] - If using third person view, determines the distance of the camera from the player. 80 is the default, and 0 is right inside the players head.
pm_maxviewpitch [angle] - This setting determines the maximum angle a player can look down. Higher positive values will result in the player overshooting his own feet. Negative angles will result in the player looking up when attempting to view downwards.
pm_minviewpitch [angle] - This setting determines the maximum angle a player can look up. Higher negative values will allow the player to look up and over the back of their own head. Positive values will result in the player looking downward when attempting to look up.
Information/Diagnostic Commands
com_showMemoryUsage [0,1] - If set to 1, shows the amount of memory allocated to the game and various assets.
com_memoryMarker [Megabytes] - This marker shows the approximate amount of memory (in MB) used by Quake 4 in its last run.
game_memory - Displays the amount of game memory allocated, and to how many objects.
showTriSurfMemory - Shows the amount of memory used for polygon surfaces.
com_showSoundDecoders [0,1] - If set to 1, shows all the currently loaded sounds, how large they are and how far through playback (in %) they are.
g_showPVS [0,1] - If set to 1, shows a wireframe border around all portals such as doors and passageways.
r_showSurfaceInfo [0,1] - If set to 1, shows the surface material name when a cursor is pointed at a surface.
r_showTris [0,1] - Enables wireframe mode. If set to 1, shows all visible geometry in wireframe. If set to 2, it only draws front-facing geometry in wireframe. If set to 3, shows all geometry (visible or not) in wireframe. Interesting to see how many polygons are being used for certain effects, like smoke and steam.
r_showLightCount [0,1,2,3] - If set to 1, colors each surface based on the light count, if set to 2 also counts everything through walls, and if set to 3 also prints overdraw.
r_showShadowCount [0,1,2,3,4] - If set to 1, colors the screen based on shadow volume depth complexity, if set to 2 prints overdraw count based on stencil index values, if set to 3 only shows turboshadows, and if set to 4 only shows static shadows.
r_showSilhouette [0,1] - If set to 1, highlights every edge which casts a shadow.
gfxInfo - Displays a dump of graphics information, including graphics card model, driver version, supported paths etc.
listSounds - Lists all sounds currently loaded and the amount of memory they are using.
listImages - Lists all images currently loaded and the amount of memory they are using.
listCvars [-help] - Lists all Quake 4 cvars, and if the -help switch is used, help text is also provided.
listCmds - Lists all Quake 4 commands.
Reload Commands
The following commands all reload particular aspects of the game, such as sounds, images, decals and Graphical User Interfaces (GUIs). Using these commands at any point can help resolve any graphical anomalies or glitches you are experiencing with these particular aspects of the game by reloading them from scratch without having to quit and re-enter the game. Note, some aspects take a while to reload (e.g. reloadImages and reloadEngine can take quite a while), so be careful if using such commands in an online game.
reloadEngine
reloadSounds
reloadModels
reloadImages
reloadSurface
regenerateWorld
reloadGuis
reloadDecls
cvar_restart
vid_restart
Multiplayer Commands
The following are useful multiplayer commands which can be used by clients (players on servers). For more information on server commands and instructions, see the Addendum, section D of the Readme.txt file in your \Quake4\Docs\ directory.
connect [servername] - Connects to a multiplayer server with the given name
disconnect - Closes the current game map. Also used for skipping the introductory movie by appending +disconnect to the Quake 4 icon Target box (See Conclusion section).
reconnect - Reconnects to the last server connected to successfully.
ui_name [string] - This is your character name as set in the in-game menus. The only reason you may want to edit it using this command rather than the in-game menus is if you want to insert special characters in your name, or use color codes in front of letters. The color codes are ^1 Red ^2 Green ^3 Yellow ^4 Blue ^5 Aqua ^6 Purple ^7 White ^8 Grey ^9 Black. E.g. ^3Persian^1Immortal provides the text PersianImmortal when your name is displayed in multiplayer games.
ui_clan [string] - Similar to the ui_name command above, this controls your clan tag.
say [text] - Says the provided text in Global Chat in multiplayer.
sayTeam [text] - Says the provided text in Team Chat in multiplayer.
serverInfo - Shows information about the current server when in multiplayer.
net_clientMaxRate [Bytes] - This setting controls the maximum amount of data in bytes per second you can receive from a server every second. By default, most servers only provide 16000 bytes per second at most (as set in their net_serverMaxClientRate setting), but you can try first lowering this value to see if it reduces and stabilizes your ping when playing Quake 4 online. Try values such as 10000 or 12000. Note that just as values which are too high can cause problems, so too can values which are too low - Quake 4 multiplayer is not designed for dialup speeds (i.e. values of 6000 or less). You can try high values up to 25,000 if you have an extremely fast connection and/or are playing at a LAN.
net_clientLagOMeter [0,1] - If set to 1, a small graphical display is shown at the bottom left of the screen only during multiplayer games. It looks like a set of green, yellow and red blocks, and tells you various things about your connection. In essence however the main thing is for you to note whether it is predominantly green, or if there are lots of yellow and/or red blocks. Yellow and red indicate connection problems. If you switch to another server and these go away, then the problem is likely with the server and/or you may be quite far away from the server. If it happens on all servers however the problem is likely at your end.
net_clientPrediction [milliseconds] - Determines the number of additional milliseconds by which the client (your machine) will try to predict and offset any ping lag. The default is 10ms, but if you're experiencing connection problems and lag and/or a high ping, raising this value may improve things. Remember however that your ping is the round-trip time to a server (e.g. a 250 ping means 125ms taken for your data to get to a server, 125ms for it to get back). So your ping divided by 2 will give you the best prediction value, and usually only if your ping is higher than 150ms.
Update: As of the 1.4.2 Patch, the server command si_fps has been added, allowing server administrators to customize the game tick rate. The default is 60 fps, which is the normal FPS cap for Quake 4. However it can be set higher, up to 90FPS, providing for better input control and higher FPS, in return for higher CPU usage. You can see a server's tick rate by hovering your mouse over it. If you have a slower system, be wary of joining servers which have higher than the default tick rate.
Quake 4 Cheat Commands
A full list of Quake 4 cheat commands can be found here. Some of these are already covered (and described better) in the list above, however obviously almost all of these will only work in singleplayer mode or on multiplayer servers which are cheat-enabled.
That's the current list of the more useful Quake 4 command variables which I know. I need knowledgeable readers to send me better descriptions for any of the above commands which are not completely clear, and also any important additions you feel need to be made. So please, if you genuinely know what something does (no guesses please), Email Me. This section can then serve as a central resource for Quake 4 players to refer to for command tweaking.
The next section has a few neat tips and tweaks and wraps up the entire guide.
That brings this guide almost to its conclusion. Below is some more information which you might find useful, along with my concluding thoughts.
I'm Lazy, Make Quake 4 Better for Me Now!
This guide is long, and yes it is boring at times, but if you're really interested in getting the absolute best performance out of Quake 4 on your system, you really do need to read the guide. Why? So you can understand what the different settings actually do, and how to use them correctly. The most important reasons for this are firstly only you can decide the balance between image quality and performance, and how much to tradeoff for the other; secondly if something goes wrong or there's a graphical glitch, if you don't bother to read through the command variables you've changed you won't know which one is causing the problem. However, I realize that some people still don't care, and want a pre-made configuration file to save them the trouble. Alright, well if you really can't be convinced to take some time to make your own config file and/or apply your own tweaks, you can try the following:
For Nvidia graphics card owners, try Quak4 - a configuration utility for Quake 4 which gives you a nice GUI to select/unselect/edit some of the options covered in this guide. It also comes with pre-made configs for particular Nvidia graphics cards.
For all graphics card owners, the UpsetChaps Quake 4 Guide has customized configurations which you can insert into your autoexec.cfg file based on the amount of graphics memory you have and a rough approximation of FPS vs Visual Quality.
I won't be personally offended if you use the above methods rather than relying on my guide! However I still would recommend you refer to this guide for descriptions of what the various settings do - that way you can at least troubleshoot any problems you have and refine your config file by adding or removing certain settings.
Quake 4 and Dual Core CPUs
Since I have an X2 4400+ Dual Core CPU, I thought once again that I'd do my own basic test to see if Quake 4 is a multi-threaded "dual-core optimized" game. There are already some well-documented Quake 4 single-core vs. dual-core CPU tests such as this one. However to test out whether Quake 4 is multi-threaded I did my usual trick of launching Task Manager, setting it to the Performance tab so that the two CPU usage graphs are visible, and then launching Quake 4 and playing through a bit of combat against some AI in the game to stimulate CPU usage.
The results are a bit surprising: both CPU charts show 70-80% CPU usage each, indicating that the Doom 3 engine is indeed multi-threading. However as the CPU usage comparisons around the web show, the dual core CPUs perform around the same as their similarly-clocked single-core counterparts, except at lower resolutions. Perhaps it is at lower resolutions that the minor benefits of this multi-threading can be seen, because that is where the CPU overtakes the graphics card in the performance stakes.
Regardless, once again we can see that having a dual core CPU is not a necessity or of any real benefit to gaming as such. Not that I regret purchasing my X2, as it has other benefits, and still games faster than most Intel and many AMD single-core CPUs. But it is not yet the era of true dual-core optimizations in games. You might want to save on a dual core CPU and instead spend the money on an SLI configuration for a real boost in FPS.
Update: As of the 1.2 Patch, Quake 4 performance is improved on dual core and HyperThreading-based CPUs. If you have such a system, I recommend installing the latest patch - see page 4 of the guide for more details.
Disable Startup/Menu Movies
If you want to skip the introductory movies each time Quake 4 loads, there is a simple method for doing this. Go to the icon you use for launching Quake 4 (or Quake 4 Multiplayer), right-click on it and select Properties. In the Properties box which opens, find the Target line and add a space then "+disconnect" (without quotes) to the end of it. For example:
""C:\Program Files\id Software\Quake 4\Quake4.exe" +disconnect
Now when you launch the game with this icon, the intro movies are skipped every time.
Quake 4 Benchmark
The Doom 3 engine on which Quake 4 is based is a highly advanced OpenGL based game engine. As such, it is a great tool for benchmarking your system for OpenGL performance, as well as running benchmarks to compare your Quake 4 framerates against other people with similar machines for example. To use Quake 4 as a benchmark, start the game and open the game's console (See Advanced Tweaking section). From here you can launch custom demos (pre-recorded game sequences), at the end of which a set of figures showing your average framerate over the length of the demo.
However unlike Doom 3, Quake 4 doesn't have any built-in demos you can use, so you will have to create your own first before benchmarking, or you can download a good custom demo made by HWSpirit.com from this torrent link (50MB). Note, you'll need BitTorrent to download the file. Once downloaded, place the demo file in the \id Software\Quake 4\q4base\demos directory - create the directory if you have to.
If you want to record your own timedemo, load up a particularly challenging stretch of the game, then open the console and type "recorddemo demoname" (without quotes). E.g: recorddemo trialrun will start recording a demo called trailrun.demo in your \Quake 4\q4base\demos\ directory. Type "stoprecording" (without quotes) to stop recording this demo at any time.
Now, to run your custom demo (or any custom demo), go to your in-game console (See Advanced Tweaking section for details) and type "timedemo demoname" in the console. Wait for the run to finish and note the results, then you can compare them with others online. If you want to run the timedemo in a loop (as a stress test for example), see these instructions.
Note, to record, playback and benchmark demos recorded while on a multiplayer server, see the recordNetDemo, stopNetDemo, playNetDemo and playNetTimeDemo commands on the previous page of this guide using similar instructions as those detailed above. You can download a custom multiplayer demo from here (using Bittorrent) if you haven't made one yourself.
Update: If you want a much easier way of benchmarking Quake 4, try the HardwareOC Quake 4 Benchmark program along with this Registration Utility. It includes a built-in demo, so all you need to do is download it and run it.
Update 2: More details on how to use the netdemo functionality in Quake4 to better benchmark under 'real world' conditions is provided here.
Taking Screenshots
Taking screenshots in Quake 4 is quite easy - simply press the F12 key and a screenshot is placed in your \Quake 4\q4base\screenshots\ directory. However this screenshot is quite large and in .tga format. If you want to use other methods for taking screenshots, try these:
I personally recommend either Fraps or Hypersnap DX if you want to take a lot of Quake 4 screenshots, however the built-in screenshot functionality is fine for most people.
Conclusion
Well here we are, the Quake 4 Tweak Guide has come to a close. I would really appreciate constructive feedback on this guide, so let me know what you think. If you have additional tips, tweaks and resources which you think will help other Quake 4 players, I will gladly add them into the guide so we can all share in them. Please keep in mind that I can't offer any tech support.
Links and Credits
The following sites, guides and articles are useful for further Quake 4 research and reading:
Quake 4 Official Site
RavenGames Quake 4 Site
RavenGames Quake 4 Forums
PlanetQuake
GameSpot Quake 4 Cheat Codes
UpsetChaps Quake 4 Guide
Make sure to check back on this guide regularly as I will keep it updated with the latest information on Quake 4.
Until next time, take care!