Quake 3 Arena tweak guide
Posted by Thomas McGuire on March 20, 2000

Troubleshooting

Begin by downloading the latest patch for Quake 3; you can find the latest Quake 3 patch from Fileplanet for Linux, Mac & Windows. These contain many fixes/optimizations over the initial retail version. This guide is based on the 1.16n point release patch.

It is highly recommended that after installing the latest patch you start with a clean q3config.cfg. You can do this by simply deleting your current one, next time you load Quake 3 a new config will be built with default settings.

Next download the latest drivers for your video card & soundcard. This may solve (some) display or audio problems you might encounter. This is particularly important for 3dfx card owners. If you own a 3dfx card you might also want to consider downloading WickedGL for better performance. There are links to various manufacturers on the Drivers page.

If you are using an Intellimouse youll also need to install the latest drivers. You can get them from Microsoft.

If you experience any lockups & such they might be caused by overclocking, if so try reducing the clock speed of the overclocked device. Quake 3 can be quite sensitive to overclocking.

Mods

Quake 3 mods will generally have their own sub directory & their own config file. You may need to make changes in these other config files if you want to use them when playing the Mod.

System setup

This guide contains some modified settings from, The Engineering Room. You should check out this site for a complete listing of all console commands & cvars.

First load up Quake 3 & set your Graphics, Display, Sound & Network preferences. NOTE The tweaks below can be either changed in your q3config.cfg or you can use them in your own autoexec.cfg (it doesnt have to be named autoexec, but it must end in .cfg). To load your custom autoexec.cfg load up Quake 3, bring down the console & type /exec autoexec.cfg & press enter.

GL Extensions, set this to On to improve performance.

Video mode, select a lower resolution (800*600 or 640*480) when playing online. Graphics may be slightly less appealing, but it will run better, which is more important.

Color depth, set this to 16bit when playing online to improve performance. In single player you can set it to 32bit for improved visual quality (only if your card supports 32 bit color).

Fullscreen, set this to On.

Lighting, set this to Lightmap for better lighting effects. Set it to Vertex to improve performance at the cost of image quality. GeForce cards reportedly perform better when set to Lightmap.

Geometry detail, the higher the detail the lower the performance. The higher the setting the more curved arches appear in maps.

Texture detail, as above - the higher the detail the lower the performance, the better the image quality, but slower performance.

Texture quality, set this to 32 bit for best image quality & 16 bit for improved performance. Again, your video card must support 32-bit rendering. With Voodoo3 you can enable 32 bit textures for better image quality. Color depth must still be set to 16 bit though.

Texture filter, Trilinear will give the best image quality but take up a few MBs of your graphics card memory. Quake 3 uses a lot of textures; as such Id recommend you set this to Bilinear. This will free up some video memory for all these textures. If you are using a 32MB+ plus graphics card you might be able to set this to Trilinear & enjoy the better image quality. Although even then some maps use over 32MB of texture memory.

Now go into the Game options section.

Simple items, sets whether or not items will be 3dmodels or 2dsprites. Turning it off will improve performance slightly.

Marks on walls, see the seta cg_marks "x" setting.

Eject brass, see the seta cg_brassTime "x" setting for more detailed information.

Dynamic lights, see the seta r_dynamiclight "x" setting for more detailed information.

Identify target, set this to On it will help when playing online.

High quality sky, see the seta r_fastsky "x setting for more detailed information.

Sync every frame, see the seta r_swapInterval "x" setting for more detailed information.

Force player models, see the seta cg_forceModel "x" setting for more detailed information.

Draw team overlay, use this to allow the display of the location of team members if team-based games, which is fairly useful in those type of games.

Automatic downloading, see the seta cl_allowDownload "x" setting for more detailed information.

General config tweaks

Once youve all your basic settings chosen open your q3config.cfg (located in C:\QuakeIII Arena\baseq3\q3config.cfg) using Notepad & add/edit the following lines.

seta com_hunkMegs "x", you can use this to set the amount of memory available to Quake 3. A general guideline to setting this value would be 2/3 RAM. Keep in mind Windows needs about 16MB RAM to run. You should also have closed all other programs before running Quake 3.

seta m_filter x, set this to 1 to enable mouse filtering. This will average out mouse movements resulting in much smoother scrolling. A setting of 0 disables the filter. Id high recommend enabling this.

seta in_joystick "x", you wont be using a joystick to play Quake 3 so set this to 0. If you are, set it to 1. Mouse & keyboard is by far the better way to play though.

seta r_finish x, setting x to 1 may eliminate lag from input devices (such as keyboard/mouse) at the cost of a few FPS. The default is 0 so only change it to 1 if you experience any controller lag. This ensures proper timing.

seta cg_autoswitch "x", set this to 0 to disable auto switching of collected weapons. This setting wont affect performance, but Im sure no-one wants to switch from the Rocket launcher to a shotgun just because they walked over it.

seta cg_drawRewards "x", a value of 1 enables the Announcer awards to be played during the game, e.g. Impressive. A setting of 0 will disable these during the game (they are announced at the end of the map still though). Id recommend setting this to 1, that way you wont feel too bad when eventually get gibed.

bot_fastchat x, a value of 0 turns off the pre-recorded phrases that the bots use. E.g. "Awww yeah!" is used by Anarki.

bot_nochat x, a value of 1 disables the frequent chatting that bots partake in during a game. Performance improvements may be negligible, but you dont really read what they have to say do you?

Graphics

Open your q3config.cfg. This is where most changes will need to be made.

Search for the following lines & edit the x value as appropriate;

seta cg_drawfps x, a value of 1 will display a small counter on the screen showing your current frame rate. This may help you in tweaking your game for the best performance/image quality trade off.

seta cg_gibs "x", set this to 1 to enable the drawing of gibs when you, errrrr, gib someone. Set it to 0 if you want to improve performance a little (only will take effect when someone in your view is gibbed).

seta com_blood "x", much like the above setting 1 enables blood splatter to be drawn. 0 will disable blood being shown in the game.

seta cg_marks "x", set this to 1 to enable marks on the ground/walls being displayed. A setting of 0 may improve performance a little. Although this is somewhat dependant on how bad your aim is. Id recommend setting this to 0 for online play.

seta r_smp x, use a value of 1 to enable support for multiple processors, Quake 3 Arena does have support for multiprocessors (SMP). In order to get the benefits from SMP, you must be running Windows NT 4.0 (or Linux/Windows 2000 I assume) & have a compatible video card and driver combination. Right now, The Detonator drivers for the TNT and GeForce generation of cards are the only ones that are working properly. Leave it at 0 otherwise.

seta r_texturemode "x", valid entries are GL_NEAREST_MIPMAP_NEAREST (worst),

GL_LINEAR_MIPMAP_NEAREST (default),

GL_NEAREST_MIPMAP_LINEAR (second best),

GL_LINEAR_MIPMAP_LINEAR (best).

Setting it to GL_LINEAR_MIPMAP_LINEAR will give best visual quality. Setting it to the other settings will improve performance, but give increasingly worse image quality.

seta r_fastsky "x", a setting of 1 will remove the sky texture & portals wont be seen through. Id recommend leaving this set to 0 unless youre on a really slow system.

seta r_drawSun "x", a setting of 1 enables the sun to be drawn. It wont improve performance much if set to 0 although it will add a little to lighting calculations in areas where the sun shines. I suggest leaving it set to 1 as most maps will be played in-doors or have few areas with sunlight.

seta r_dynamiclight "x", a setting of 1 will enable the dynamic lighting of maps, e.g. the light surrounding an explosion. Improve performance by setting this to 0.

seta r_detailtextures "x", set this to 1 to will improve texture quality when up close. Setting it to 0 will improve performance.

seta r_swapInterval "x", this is the Quake3 equivalent of vsync. Set it to 1 to enable vsync (recommended). Only set it to 0 when you are benchmarking game performance.

seta r_ext_compress_textures "x", set this to 0 to disable texture compression support. This is only for S3TC textures so if you have an S3 card (Savage 3, 4 & 2000) or the 5.08 nVidia drivers for your TNT1\2\GeForce you should set this to 1.

seta r_picmip "x", a setting of 0 gives best image quality. Setting it higher (up to 2) may improve performance but reduce image quality. Id recommend leaving this at either 0 or 1.

seta cg_brassTime "x", this sets the amount of time that ammo casings stay visible, the default is 1250. A setting of 0 disables this & will improve performance a little. Id recommend doing this for online play, unless you like to see spent ammo on the ground for no useful reason.

seta cg_shadows "x", a setting of 0 disables shadows (recommended). 1 enables simple circular shadows. 2 will enable volumetric shadows. Enabling shadows will reduce performance.

seta r_stencilbits "x", if you enabled Volumetric shadows above then youll want to set this to 8. NOTE Your graphics card must have a stencil buffer to do this, e.g. TNT2 or GeForce. Voodoo3 does not.

seta cg_forceModel "x", setting this to 1 forces all players to use the same model. This will improve performance, although therell be no way to distinguish between players. Id recommend leaving this at 0 unless you are desperate for a performance boost.

seta cg_draw3dIcons "x", set this to 1.

seta r_ext_multitexture "x", set it to 1 to enable multi-texturing, this can improve performance. 0 will disable it.

seta cg_thirdperson "x", give it a value of 1 to enable the behind view. This is only recommended if you just want to play around/experiment with it. Stick with first person view mode when youre playing for real.

seta cg_noplayeranims "x", a value of 1 will disable the animation of player models. This will of course improve performance but look extremely weird. I recommend leaving this at 0 unless you want to see stiff models sliding along the ground.

seta cg_draw2D "x", give this a value of 1 to enable 2d items to be drawn. Items such as the HUD would fall into this category so leave this enabled.

seta cg_drawCrosshair "x",  a value of 0 will remove the crosshair, which will make making more difficult. Leave this setting alone.

seta cg_drawCrosshairNames "x", set this to 1 to allow the name of the targeted person to appear. 0 will disable this.

seta r_colorbits "x", use this to set the color depth. Leave it at 16 unless you have a card that supports 32-bit color output. Performance is slower in 32bit than 16bit however. So when you play online be sure to drop this back to 16.

seta r_depthbits "x", this is similar to the setting below.

seta r_texturebits "x", sets the bits per texture. A value of 8 being 256color, 16 for 16bit color & 32 for 32bit color. Set this to 8 if you need a big performance boost. 32 will give best texture quality.

seta r_gamma "x", default is 1. Increase this to make the game brighter. The brighter the visuals the more washed out the textures will look. Adjust this to suit your own needs, performance isnt affected either way.

seta r_overBrightBits "x", default is 1. Increase this to make the game brighter. The brighter the visuals the more washed out the textures will look. Adjust this to suit your own needs, performance isnt affected either way.

seta cg_drawGun "x", set this to 1 to enable weapons to be shown on your screen. A setting of 1 will improve FPS but no weapon will be drawn. Visibility will improve a little with this but youll want to know what weapon you have. Id recommend leaving this set to 1.

seta r_vertexLight "x", set this to 0 if youve enabled Lightmap lighting. Setting it to 1 will enable Vertex lighting, which is faster but uglier.

seta r_nocurves "x", set this to 1 to disable curves & vastly improve performance. You may notice visual faults in maps though as a result. Id recommend setting it to 0.

seta r_lodbias "x", this controls the detail level in maps. Increase the value to improve performance but reduce detail. Lower the value to increase but lower performance. 0 is the lowest it may be set. Id recommend leaving it at the default of 1. 2 is the least detailed but also the fastest.

seta r_subdivisions "x", use this to set how complex (rounded) the curves will be in maps. A setting of 1 gives the most detailed (smooth) curves. A setting of 999 gives the least smooth curves but improved performance. You should play around with this value for yourself until you find a good balance between performance & detail.

seta cg_zoomfov "x", use this to set how much you can zoom in. The default is 22.5. You should play with this setting until you find a suitable level of zoom.

seta com_introplayed "x", a value of 1 means that the Intro (with Sarge) is played everytime you load up Quake3. Give it a value of 0 to disable it being played.

seta cg_bobup "0.00x", this setting determines how much you bob up while moving. Leave it at the default value or 0 to remove the movement.

seta cg_bobpitch "0.00x", this setting determines your pitch up while moving. Leave it at the default value or 0 to remove the movement.

seta cg_bobroll "0.00x", this setting determines how much you roll back & forth while moving. Leave it at the default value or 0 to remove the movement.

seta cg_runpitch "0.00x", this setting determines your pitch while running. Leave it at the default value or 0 to remove the movement.

seta cg_runroll "0.00x", this setting determines how much you roll back & forth while running. Leave it at the default value or 0 to remove the movement.

The above 5 settings may help those of you that get motion sick (like myself). It will also make aiming/shooting a target while you are moving a little bit easier.

Make sure to take a look at the TNT\GeForce tweaking guide or Voodoo3 tweaking guide for information on how to optimize the performance of those cards. That may help you improve image quality/performance even further than the q3config.cfg tweaks.

Audio

Open your q3config.cfg. Search for the following lines & add/edit the x values as appropriate:

seta s_khz "x", set to 22 for best sound quality. Set it to 11 for better performance, you should only change it to this if you have an old soundcard (ISA).

s_loadas8bit x, set this to 0 to improve audio quality. A setting of 1 may improve performance a little but reduce audio quality.

seta s_musicvolume "x", set to 0 to disable playing music in Quake3. This will of course improve performance & Id highly recommend doing that. Especially when youre going to play online.

seta s_volume "x", use values from 0 to 1 to increase/decrease in-game volume. Use your own discretion for this of course. 1 is the maximum, 0 will mute the game.

seta s_doppler "x", leave this at the default setting, which is 1.

seta s_occfactor "x", leave this setting at the default setting, which is 0.5.

If you have a SoundBlaster Live Platinum card (as I do) or other non-A3D2+ capable card then you in order to get A3D support youll need to download the A2D drivers from Aureal. You can now enable A3D support in Quake 3s audio menu. NOTE I dont recommend doing this as it is currently very erratic in how it works & most soundcards will be best off not trying this. Enabling A3D sound (even with an A3D card) will result in a performance drop, so disable it when you play online.

You can further improve your audio experience in Quake 3 by taking a look at the Soundcard/speaker tweaking guide to setup your soundcard/speakers properly.

Netplay

You can choose your type of connection in the Quake3 multiplayer menu, e.g. 33.6K, 56K, etc. You will most likely have to play around to find the right settings for you. So do some testing with them. Open your q3config.cfg & edit the following settings as appropriate.

seta cg_lagometer "x", give x a value of 1. This will enable the Lagometer, which will aid you in diagnosing & improving your online gameplay. The lagometer is displayed in the bottom right of your screen & looks like this.

The lagometer is effectively split into 2 sections, top & bottom. Ill deal with the top section first. The top section shows world updates. Yellow is bad indicating dropped frames; blue is good & indicates no frames are being dropped. Information on this line should be used to tweak your snaps setting.

The bottom indicates packets received. The green indicates packets received, which is good. Red indicates lost packets, which is bad. Yellow indicates incomplete packets. Information on this line should be used to tweak your rate setting.

Pictured below is that of a bad connection to a server.

As you can see there are a lot of dropped frames & that indicates my snaps setting is not right for the server Im on. The ping is also very high with some damaged/lost packets; this is a server to get off.

Pictured below is a good connection to a server.

As you can see the top line consists of almost entirely blue & the bottom is all green. If you find a server like this, stay on it.

The settings below will help you tweak your settings to improve connections to Quake 3 servers.

seta com_maxfps "x", use x to set your maximum frame rate. In Quake 2 this was used to stabilize online connection. This is no longer the case; instead the seta cl_maxpackets "x" & seta snaps x is used. Id recommend setting this to 30 when playing online.

This will help keep the frame rate constant (no dropping from 60FPS to 30FPS) & will aid in distinguishing between graphics card lag & lag in your connection to a server.

seta snaps "x", use this to increase/decrease the amount of snaps (world updates) sent to the client. You should try setting this close to the setting below if possible. As shown earlier youll want to change this according to the how your lagometer is displaying. Try lowering the amount if there is a lot of yellow. 30 is a good value to begin with for this setting.

Open your q3config.cfg file search for seta snap xxxx. The default value for this may not be correct for you. Depending on your connection, try changing the value depending on your connection. You can also change this variable during gameplay to suit your needs. If your world updates are bad (lots of yellow in the top of the graph) you should lower your snaps. Try adding/editing the following to your autoexec.cfg or config.cfg file.

bind END "seta snaps xx"

bind KP_PGDN "seta snaps xx"

You can substitute in your own keys & rate values, I use 26 & 30. Set one low in case your ping starts to rise, this is a sign you may have set it to high for the current server, try increasing it for better results whenever possible.

seta cl_maxpackets "x", this sets the maximum amount of packets that get sent to the server. The default setting is 30, which is fine for V90/56K connections. If you are on a 33.6K modem you should lower this value a little (say to 25). Those on ISDN or faster can set this higher than 30. You may need to experiment a little with it.

seta cg_deferPlayers "x", set this to 1 to defer loading of new models for people that join games until you get killed. Then the new player model will be loaded. Dont set this to 0 unless you want to lag a little when new players join & their model gets loaded.

cl_timenudge x, similar to push latency in Half-life, you can use this to set fake lag when playing in single player, & more importantly in online games you can give this a negative value. A general rule of thumb would be to set this to half your average ping (negative value of course, or else youd be adding lag). E.g. If you normally have a ping of 200 you should set this to 100. This may help smooth your online gameplay out.

seta cl_packetdup "x", set this to 1. If you are experiencing packet loss this will allow retransmission of lost packets. Only set this to 0 if you are playing on a LAN (as there will be no packet loss).

seta cg_predictItems "x", set this to 0. This controls whether the Client or Server decides if an item has been collected. When set to 1 you may be incorrectly led to believe you collected an item when you did not.

cl_nodelta x, a setting of 1 will disable Delta compression. Dont do this for any reason.

seta net_noipx "x", set this to 1 to enable the use of the IPX/SPX protocol. You must have IPX/SPX installed to use this so set it to 0 if you dont. Most Internet servers use UDP (part of the TCP/IP protocol). Id recommend setting it to 0.

seta cl_allowDownload "x", a setting of 0 disables auto-downloading of maps/models. Set this to 1 to enable it.

Open your q3config.cfg file search for seta rate xxxx. The default value for this may not be correct for you. Depending on your connection, try changing the value depending on your connection. You can also change this variable during gameplay to suit your needs. If your ping is high you may want to lower your rate. Try adding/editing the following to your autoexec.cfg or config.cfg file.

bind KP_INS "seta rate xxxx"

bind KP_PGUP "seta rate xxxx"

You can substitute in your own keys & rate values, I use 2600 & 3000. Set one low in case your ping starts to rise, this is a sign you may have set it to high for the current server, try increasing it for better results whenever possible.

You should also take a look at the Modem tweaking guide for tips on optimizing your Internet connection & reducing ping times in online games. If you play on a LAN then check out the LAN tweaking guide as well.

Optimized dlls

You can download optimised Win32 dll files from Stomped. These are Quake 3 1.16n DLLs compiled for Win32 x86 processor machines. These should offer a speed improvement over using the qvm code with the 1.16n Quake 3 patch. You must have the 1.16n patch already installed. The speed improvement is about 5-10%, however, before you install them you should make backup copies of the files that will be overwritten as it may cause problems with mods & such.

Adding this line to your q3config.cfg (or other executed config) may fix some issues with it. seta com_blindlyLoadDLLS "1".

Conclusion

You Quake 3 gaming experience should now be greatly improved with better visuals & audio & minimal performance loss. Netplay should also be a lot better. This guide will be updated when new patches/point releases become available.

 

Go to 3D Spotlight !