Tweaking for Newbies

Ever wonder why some people appear to be able to shoot at you through trees before you even see them? Check out what you can do by tweaking various Client VARiableS (aka CVARs). Keep in mind that this screenies shows what is possible if there are NO limits placed on the tweaking. Thanks to Johann for a significant portion of this "how-to" write up which has been heavily edited and paraphrased here and there. If you want more references, check out some of these sites

What is a CVAR and what do they do?

CVARs are variables that affect how your game is viewed and played. Just keep in mind that there are other CVARs such as cg_drawcrosshairs, mp_playertype, or cg_teamchatlines that are totally configurable, but don't necessarily make targets stand out better or eliminate shadows. In this article, we'll only focus on variables which affect frame rates, visuals, and some game action. Here's an example of what you can do with CVARs

Public config vs. a very tweaked configs (Ice)

OK, everyone take a deep breath. As I just mentioned, this is what is possible if there are NO limits placed on what you can tweak. Realistically, all leagues that I have played in (CAL, TWL, STA) have drawn up a list of cvars and the range of values they feel are appropriate. Additionally, just about every server I've played on set some sort of limits on the values they think are "fair" (very subjective term here). Here's an example of 3 configs - pub, match (CAL), and unlimited - to show the vast difference in visual quality between an unlimited config and what CAL lets me do. I should also note that I DO NOT have my CAL config maxed out, but it is still a good example.

Public vs. CAL vs. unlimited configs (Assault)

CVARs, when altered, as you have obviously seen, can limit or increase the visual quality of how textures and models are rendered in the game. When a CVAR is tweaked so as to limit/lower the quality, it usually increases the frame rate (FPS = frames per second) and that means smoother game-play; more snapshots of the map as you see it are drawn. So with a frame rate of 135, there are 135 frames being drawn in one second. Some low end computers with older hardware (ie graphics card, processor, etc.), can be very challenged to generate even minimal FPS. This in turn can make for a very choppy game. Obviously, the higher the FPS, the smoother the game and is easier for the eyes to process info compared to the twitching one's eyes can do with a frame rate of 10 FPS. Tweakers tend to tweak CVARs that greatly affect FPS because their hardware can't reach reasonable FPS with default settings; hence, their lack of capable hardware warrants them to alter the game's default graphics in order to make it playable. But even then, they can't achieve that much of a boost in FPS without taking CVAR values to extreme.

Isn't this considered to be cheating?

Nope, at least not in my opinion. CVAR tweaking is available to anyone who can open a configuration file, copy, and paste - this is simply not rocket science limited to the upper strata of l33t players. Furthermore, in my version of the world, server admins set the rules. They set boundaries around what they consider to be acceptable play (CVAR limits, use of profanity, mods used, mod settings, etc). To enforce their game standards, they have a couple of tools (WAB, RCON, Punkbuster, personal presence etc) with which to "police" and moderate their server, I stress their. As players, we have two obligations: 1) play nice according to their rules and 2) if you don't like the rules, then leave and find another server more to your liking.

So what does this mean to the tweaker? Each server admin will set the range of "acceptable" CVAR values for their server and use Punkbuster to control observation of the limits. Players are allowed to modify CVAR values within those limits, but no more. Tweakers who find the stated limits unacceptable, simply get to find another server. Cheating? Hardly - it's just a matter of knowing the rules and exercising your choice to accept them or not - on a server by server basis.

OK, so what does each CVAR do?

Here's a quick and dirty guide. I've classified a couple of the most common CVARs according to what they do for you:

Increase FPS

CVARs such as the following increase FPS by drawing less of the intended map or less objects (the less you have to draw, the faster your rates). Weaker computers can get a needed boost by eliminating unncessarily drawn items:

Remove Map Elements

Then there are cvars that remove elements from the map. Many of these are restricted by the leagues and most servers simply because they remove elements that were not intended to be removed:

Increase Brightness and Eliminate shadows

these below will increase brightness and help eliminate shadows. Sometime older monitors are very dark and some tweaking of visual CVARs can help make the game playable.


There are also other variables that people will tweak such as:

CVAR Experiments - Comparion of 5 Configs (Ice)

To see what actual effect various CVAR combinations had on my system, I tested 5 configs for comparison sake and also tested two other variables: ui_fullscreen and r_rmse:

  1. Default settings. This is what RTCW looks like out of the box with the one exception of changing screensize from 640 x 480 to 1156 x 864
  2. Max settings allowed within the Setup menu (Lightmap off, brightness slider all the way to the left)
  3. Evenbalance recommended limits. Fairly restrictive. This is my public server config.
  4. CAL cvar limits. (r_subdivisions 999; r_color/texturebits 16; r_picmip 3; r_ignorehwgamma 1; r_gamma 4; r_intensity 2.7; r_mapoverbrightbits 3). These limits have also been adopted by TWL and STA. This is my match config.
  5. Extreme config. picmip, gamma, and intensity jacked way up - not legal in any known league.

If you look at my config settings, you'll see that I really haven't maxed out all of the settings, but I have them set where I like them while still being in compliance with the limits. For pub play, I keep lightmap on, even though vertex lighting isn't a restricted setting.

What do I need to tweak to remove screen elements

Here you go. I experimented around a bit with various screen elements and here's what I came up with. I'm missing a couple, but this should take care of most elements:

What's Punkbuster and what does it have to do with CVARs?

Punkbuster, if told to in the server.cfg, can restrict any cvar. And there are some cvars that don't affect graphics or FPS that people can manipulate so as to avoid bobbing (like when shooting a sniper rifle). Each server admin can config enable Punkbuster to check each player to ensure their settings are within an acceptable" CVAR limit.

The way Punkbuster checks all this, is that each server has it's own settings, or server.cfg (configuration file). And if a server has Punkbuster enabled, then ONLY clients with Punkbuster enabled also on their end can join that server. Otherwise, if Punkbuster were not enabled on client-side, then they would be rejected by the server so long as it has Punkbuster enabled.

Within the configuration files are code that tells Punkbuster what settings to check each client for. If a client doesn't meet the ranges, then punkbuster might at best warn before kicking the client. If the client does not change the values in error (which usually requires a video restart - type /vid_restart in console to do so), then Punkbuster will kick the client for unaccepted settings.

Not all servers run same settings. That's why it's important to find out if 1) the server you are playing on has Punkbuster enabled (a good thing IMO), 2) What are the restrictions listed for that particular server, and 3) are those restrictions acceptable to you.

So with every server running their own cvar limits, how do you find out if your settings are compliant? The command you want is pb_cvarlist. You can either drop the console and type in pb_cvarlist or you can bind a key like this (bind x "pb_cvarlist"). Once you enter the command, you should see the following in the console:

You can see that it tells me that I have no violations. If there are problems, you will see the following:

In this case, it tells me that three of my cvar settings are in violation and specifies each one with (violation) after the name of the cvar (take a look at r_gamma, r_mapoverbrightbits, and r_overbrightbits). It also tells me what my current setting is and the range that it must be inside or outside of.

You can always look at server configs, when posted, to view the CVAR limits set on each server. Hopefully, you'll see something like this (taken from the CAL-Open server config link):

You'll see that each line is formatted like:

What it's telling you is that that [name of CVAR] must be either INside of X to Y or OUTside of X to Y. Failure to comply with these limits will result in you being kicked.

A good rule of thumb, if you are hopping on an unknown server, is to ensure that more restrictive settings (I use the Evenbalance config limits) would load no matter what so as to avoid punkbuster warnings before I could check the restrictions. Then, check the punkbuster limits of that server, using the pb_cvarlist command and then if you can use higher settings, press a key that would toggle between my pub and competition settings (look at my scripting section to see how you can set this up as a script and a bind). Each time I changed settings, the game would do a vid_restart (video restart) to make them take effect.


Here are a couple more links:

Back to the RTCW 4 Newbies Page