Setting Counter Strike Rates : Getting Optimal Registry With Minimal Lag

   Counter Strike is a modification of the popular game , Half Life. Since this modification was done not by the
   Half Life developers but rather by 3rd party developers (Jesse Cliff and Minh Lee), Counter Strike ended up
   being highly customisable. All aspects of CS can be configured using CVARS/Commands. Two of the most
   common problems encountered by CS gamers are lag and bad registry. This guide will act as a mean to
   eliminate both lag and registry problems by setting a guideline on how to correctly configure the netcode
   settings which directly effect your bullet registry and lag issues.


   What Causes Bad Registry and Lag?
   There are many factors that could contribute to lag and bad registry. Issues such as; a poor connection ,
   ISP problems , Graphic card problems etc. However most of the times , its a result of wrongly configured
   rates/netcode settings. Most gamers tend to stick with the default settings not realising they are playing at
   dialup rates and getting horrible registry. Netcode setting/rates need to be configured in accordance to the
   speed and type of connection you have.


   What Does Not Cause Bad Registry and Lag?
   One of the most evident misconceptions expressed by gamers on public servers it that of a higher ping
   player lagging the whole server. This is not true at all. A single person cannot lag a server. A server will
   only lag when there are alot of clients present/dowloading maps etc, 3rd party plugins using too much
   of the servers processing power and problems related to the server host network. A high ping does not
   necessarily mean lag. Ping is simply a measure of how long it takes data from your computer to reach the
   server. A person can have 250 ping and play as well as a person with 20 ping but sometimes a person with
   20 ping will lag without any increase in his ping. A person with lag can distinguised by the choppiness of
   his movement. Blaming the server for bad registry is also a common mistake. Not all servers have the
   same server rates. Therefore it is upon the gamer himself to adjust his rates according to the server. Most
   servers cap off some rates and therefor the need arises for the gamers in that server to adjust their rates.



   Configuring Netcode Settings/Rates: What file to edit?

   All of the Counter Strike settings are saved in a file called config.cfg. This file is usually found in:

   C:/Valve/Steam/Steamapps/your account name/Counter Strike/cstrike

   or

   C:/programfiles/Valve/Steam/Steamapps/your account name/Counter Strike/cstrike

   Any text editor can be used to open and edit .cfg files , notepad is most commonly used. Once you open up
   your config.cfg you will see a long list of commands. All commands/cvars are placed on different lines, one
   line can have only a single command. The format for a command is: command [x] (where x is the variable)
   example: rate 25000. You have the option of changing/adding settings to the config.cfg file or you can
   make a new .cfg file and add new settings/rates in there. If you do choose to make new a new .cfg file
   (you can name it whatever you want), you have to make sure that Counter Strike loads it up everytime
   you start CS. There are two ways of doing this:

   Method 1:
   Simply add a line at the end of either config.cfg or autoexec.cfg .
   The line should read exec urNewConfigFilename, for example if ur new .cfg file is called rates.cfg you will
   add this to the end of either your config.cfg or autoexec.cfg : exec rates.cfg

   Method 2:
   Once CS has loaded, type into the console (press `):exec urNewConfigFilename example: exec rates.cfg



   Netcode Settings / CVARS

   The following commands are related to the CS netcode. The cl commands are client sided. The sv commands
   are server sided , you should only use these if your running a server and they are supposed to goto into the
   server.cfg file. At the end of the guide i have put up a sample rates.cfg , so you have a fair idea of what to
   modfiy to improve the registry.



   cl_cmdrate: This command sets the amount of packets you (the client) sends to the server per second.
   Theoretically it would be assumed that the more data/packets you send to the server , the quicker the
   response from the server. However if your sending more data/packets than the server can recieve,
   obviously those extra packets will be dropped by the server and thus you would be wasting your bandwidth.
   The proper value for cl_cmdrate should be equal to your FPS or a bit higher. If setting cl_cmdrate to your
   fps value makes you lag, then try setting your cl_cmdrate to the maximum you can without getting any
   lag.
   Recommended Setting : cl_cmdrate equal to your FPS or slightly higher (+5)
   Ideal Setting : cl_cmdrate 101
   Usage : All gamers


   cl_updaterate: This command sets the amount of packets/data you can recieve per second from the server.
   To be in sync with the server , a high value is recommended.The proper value for cl_updaterate should be
   equal to the servers sv_maxupdaterate.

   Recommended Setting : cl_updaterate should be equal to the servers sv_maxupdaterate
   Ideal Setting : cl_updaterate 101
   Usage : All gamers


   ex_interp : Interpolate means to estimate the value of something and this is exactly what this command
   does. Since you cannot be fully synced with the server at every instance, the CS engine has to interpolate
   between 2 'true' packets. For example, a server updates your information every second, now suppose you
   are at de_dust2 Bombsite A originally and after a second you reach Bombsite B( lets just assume you have
   speed haxx), now since the server sends you data/packets every second , the position you see on your
   screen at A and B will be accurate but since you do not recieve any data/packets between the 1 second gap
   (while you are between bombsite A & B), the CS Engine has to estimate (interpolate) your positions
   between A & B. ex_interp is the value in seconds it takes to interpolate in between each successive
   update. The correct value for ex_interp should be 1/cl_updaterate since there is a 1 second gap between
   each update. For example if your cl_updaterate is 100 then 1/100=0.01. However it is alot easier just to
   type ex_interp 0 into the console and the engine will automatically adjust your ex_interp using the
   1/cl_updaterate formula. I have seen alot of gamers on different forums saying "this interp is better", "that
   interp has better registry". Do not listen to other people and try to adjust your rates according to their
   rates! What maybe working for them may not work for you since you probably have different rates. If you
   want to be able to hit what you shoot(ie your shots registering on where your crosshair is) use the proper
   formula i.e ex_interp=1/cl_updaterate or better yet simply use ex_interp 0.
   Recommended Setting : ex_interp = 1/cl_updaterate or ex_interp 0
   Ideal Setting : ex_interp 0
   Usage : All gamers



   rate : Sets the amount of data (in bytes) the client sends to the server per second. Typical starting values
   for different connections are as follows: dialup/modem 1000-4000, ISDN 5000-7000, Cable/DSL
   6000-10000, T1 7000-20000, LAN 20000+ . For best results set rate to the servers sv_maxrate (slightly
   below sv_maxrate is fine but make sure not to set it over the sv_maxrate)
   Recommended Setting : rate 20000 (for those with very good connection) otherwise set to servers
   sv_maxrate or lower

   Ideal Setting : rate 20000
   Usage : All gamers



   sv_maxupdaterate : Sets the maximum number of packets the server can send per second to a client. Now
   the correct setting for this is totally dependant on the servers bandwidth. If the server is on a really good
   network then use sv_maxupdaterate 101 otherwise use the default which is sv_maxupdaterate 60.
   Recommended Setting : Set according to available server bandwidth
   Ideal Setting : sv_maxupdaterate 101
   Usage : Server Operators / Server Admins



   sys_ticrate : Sets the maximum FPS per second the server can calculate. This command defines how
   smooth or choppy the server will operate. The greater the FPS the better the experiance for the gamers on
   the server. Now if you have an average server (with regards to hardware) and you set this command really
   high , lets say sys_ticrate 999, what will happen is that since your server cannot handle that much FPS,
   there would be FPS spikes, that is the FPS will be really high one second and then drop really low. This will
   be a very bad experiance for the gamers on your server. The best option would be to set a value that is low
   but at the same time quite playable. Something like 100-150 is quite a reasonable value. However always
   set it slightly higher than the value you want. For example if you want 100FPS set the sys_ticrate 130 (set
   it 20-50+)
   Recommended Setting : sys_ticrate 100-200 (totally dependant on your server)
   Ideal Setting : The highest value your server can handle (ideally anything over 100FPS is pretty good)
   Usage : Server Operators / Server Admins



   sv_maxrate : Sets the maximum amount of data the server can send per second to a client. If sv_maxrate
   is set to 0, then the server will take into consideration all the players 'rate' value and then send the data
   according to everyones different 'rate' values. Now although this may seem a good idea, it actually may lead
   to wastage of the servers bandwith.Take for instance if the server can only handle sending
   15000 bytes/sec and one of the players has a rate of 20000, the server will try to fulfil the clients request
   of 20000 bytes/sec thus leading to more load on the server and waste of bandwidth.
   Recommended Setting : sv_maxrate 20000
   Ideal Setting : sv_maxrate 20000
   Usage : Server Operators / Server Admins



   Sample rates.cfg

   // i used these rates on a 1.5mb DSL connection and had no registry/lag problems
   //these are also called LAN rates , use only if u have a good connection
  
   rate 20000
   cl_updaterate 101
   cl_cmdrate 101
   ex_interp 0
   fps_max 101




   Notes and Tips:
  
   cl_showfps 1 : Use this command in the console to view your FPS
   net_graph 1 : Shows the gamer his/her latency, FPS and also shows the netcode activities in the form
   of a graph. This is a great tool for troubleshooting any rates problem. If you notice that you are getting
   spikes or execessive dots in the graph then you certainly are having problems such as choke or loss. If you
   notice execessive red dots at the bottom of the graph then try setting your cl_updaterate higher than your
   FPS. The red dots should disappear now. If you are getting alot of yellow/orange dots in the middle of the
   graph, it means that you are dropping packetss/extrapolating, in other words your cl_updaterate is higher
   than the servers sv_maxupdaterate. You should start lowering your cl_updaterate until the yellow/orange
   dots disappear.

   net_graph 3 : Similiar to net_graph 1 but shows choke and loss as numeric values.
   choke : Choke happens when the server cannot respond to your requests fast enough. This maybe due
   to you requesting alot of information from the server (for instance your rate is set higher than the servers
   sv_maxrate eg your rate is 20000 , sv_maxrate is 15000) or simply the server maybe under quite a load.
   You could try lowering your rates or simply find another server.

   loss : Happens when your computer cannot handle the servers request and is simply too slow. Try lowering
   rates which relate to sending requests to the server eg cl_cmdrate .

   Read-Only : Always keeps your config.cfg read only. Server admins can always mess up your settings, there
   have been countless incidents posted on the Steam Forums about immature admins slowhaxxing clients,
   binding kill to mouse1, messing up the config.cfg and what not. This could have been prevented if the
   players had made their config.cfg read only. Although even with a read-only config admins can mess with
   your setting, those settings will not get saved and when you restart CS, you will have your original settings
   back. To make your config.cfg read only do this: right click config.cfg file>select Properties>check the box
   that says Read-Only






   guide by .:{EK}:. Squall 2006