Jump to content

Tweaking rates


strangefamous

Recommended Posts

This was written by the guy that made HLtoolz back for original CS, well he's making a new one for CS:S... Just thought some of you might find these useful/helpful.

 

 

[rate]

 

This is your download speed in bYtes / second.

If you know your advertised speed in kbIps (like a 56k is actually 56kbIps), then all you have to do is divide your speed by 8 and multiply it by 1024.

Like this:

 

 

56 / 8 = 7 kbYtes/sec (1 byte = 8 bits)

7 * 1024 = 7168 bYtes/sec (1 kbyte = 1024 bytes)

 

 

Your rate would be:

 

rate 7168

 

You should know you will never download @7168, because thats the maximum theoretical limit. Instead, you should be realistic and take 90% of the theoretical limit to get the download speed you would get on most servers.

 

90% of 7168 = 7168 * 0.9 = 6451

 

rate 6451

 

That's about right, and should work best if you have a 56k dialup modem.

 

[cl_rate]

 

This is your upload speed in bYtes / second. It's how fast you send the things you do to a server. But your upload speed is usually not as fast as your download speed, so you need to make different calculations for "cl_rate" than for "rate".

 

Let imagine you have DSL, with 128k upload speed.

128k is an advertised speed, so it is in kbIts/sec.

 

128 / 8 = 16 kbYtes/sec

16 * 1024 = 16384 bYtes/sec

 

Again, you wont upload at that speed, instead your max upload speed will be about 90% of the advertised speed.

 

16384 * 0.9 = 14746 bYtes/sec

 

So your cl_rate will be:

 

cl_rate 14746

 

 

[cl_updaterate]

 

This is the amount of times you receive updates from the server per second.

 

In a heavy firefight the largest packets can be up to 180 bytes. (A packet is a bit of information that you receive).

 

If we divide our rate by the largest packet size, we'll get our cl_updaterate.

 

 

6451 / 180 = 36

 

cl_updaterate 36

 

 

We dont need to take 90% of the updaterate, because we've already done that in the rate calculation.

 

[cl_cmdrate]

 

This is like cl_updaterate only that it's the amount of times you send updates to the server. The largest packet size that you (the client) send to the server is something like 30 bytes.

 

So we should divide cl_rate by the largest packet size we send through:

 

 

14746 / 30 = ~491

 

 

Now, you can't send 491 updates per second to the server . It's almost impossible for the server to handle all those packets. What Half-Life has done, is limit cl_cmdrate to 100

So if you calculate cl_cmdrate and its bigger than 100, change it to 100

 

 

cl_cmdrate 100

 

 

That's more than fast enough for most ppl.

 

=============================================

=============================================

 

That was the first part, I think all I said there has been said before, and perhaps better than I explained it.

 

But now comes the bit everyone forgot to mention!

 

 

 

The server you connect to has maximum and minimum rates. What the fu*k does that mean? It means that your specially calculated rates wont work properly and youll get choke and loss.

 

How should you fix this?

 

Well, currently you can only do this by looking up the max rates of the server, and recalculating rates after youve got the servers max rates.

 

Ill explain how:

 

1/ First connect to a server

2/ Open console with "~"

3/ Type: sv_maxrate

4/ Press enter

5/ You should see a message in console displaying sv_maxrate xxxx

 

 

Now that you've got the servers max rate, you know your own max rate aswell, the server limits your rate to his own max rate.

 

So now we have to adjust our own rates.

 

Lets say sv_maxrate was 10000

 

sv_maxrate 10000

 

 

Our rate should then also be 10000 (if your rate is less than sv_maxrate, you dont need to do any more calculations, you have the best rates for your connection). What we need to change is our cl_updaterate to avoid choke.

 

So we need to calculate cl_updaterate based on a rate of 10000

 

10000 / 180 = 56

 

cl_updaterate 56

 

 

That will be our new cl_updaterate.

After you've done that, you have calculated the best possible rates for the server you are on. All you have to do is type "cl_updaterate 56" in console.

 

If you still experience choke or loss, lower your cl_update and cl_cmdrate, not your rate/cl_rate.

Link to comment
Share on other sites

  • 2 months later...
Guest zerodamage
Guest zerodamage
Guest zerodamage
Guests

Pinned. Very useful and will check out as soon as Steam finishes updating.

Link to comment
Share on other sites

  • 1 month later...

Okay, after gaining some info from my ISP...I find that I only have around 50kbits/s upload speed from my ISP (although they advertise 256k)

 

50/8 *1024 = 6400

6400* 90% = 5760

 

cl_rate = 5760 (what it should be)

 

If I remember correctly, the stock cl_rate was set at 10,000. Also, we can no longer control this rate from the config or the console. This makes a great deal of sense to me because I always get choke....always. And rightly so if I'm trying to send my command packets to the server 2x faster than my connection can handle...hence crammed together and backed up packets into the server resulting in choke at my end.

 

And I have found that the only way my shots will register is if my cl_cmdrate = 10 (at 11 my percentage of shots which which actually make contact with a wall with start to decrease). For the most part I do fairly well with this. One on one I'm still very good...but firefights are like pointing at somone and going BANG!

 

My question...is there any way I can drop my cl_rate below 5000 so I can eliminate my choke problem???

Link to comment
Share on other sites

I got the same thing, Shep but just ignored it and applied the other stuff. Seems to have made a big difference. Everything is smoother and my choke has gone down.

Link to comment
Share on other sites

Okay, find your config file in you counter strike folder this is my path to that folder:

 

C:\Program Files\Valve\Steam\SteamApps\brillow80\counter-strike source\cstrike\cfg

 

Open it up, scroll all the way to the bottom. Paste this into the very bottom.

 

rate = "384000"

cl_updaterate = "2133"

cl_cmdrate = "100"

 

Save the file, then right-click on the file, properties, select read-only, apply...that should make it perm. Is that what you were asking?

Link to comment
Share on other sites

GC Alumni
(edited)

This will do that, but it will also mean any settings you change in game that nromally get saved to the file will never stick, because CS:S can't edit/save the file.

 

I'd recommend going to that folder as Brillow_head mentions and creating a blank/new text file. Rename it to something like "MyCfgSettings.cfg" or something you'll remember/like. Just make sure you make it a .CFG file.

 

 

Then open it in notepad, wordpad or any text editor and add these lines:

rate = "384000"

cl_updaterate = "2133"

cl_cmdrate = "100"

 

Also you can add anything else you'd like to put here, weapon binds, other custom settings, server RCON passwords, etc...

 

 

Additional info... YOu can add comments by putting // before what you want to be comments, just like C++.

 

 

Next open your config.cfg file and at the bottom or top add this line "exec MyCfgSettings.cfg" or the name that you gave the file created above.

 

Now enter CS:S and it should be set. The config.cfg file loads every time you play. Also you can load your custom file yourself in game by typing "exec MyCfgSettings.cfg" in your console.

Edited by Ice_Berge_00
Link to comment
Share on other sites

  • 4 months later...

for you non-readers, a condensed summary:

rate 30000

cl_updaterate 100

cl_cmdrate 100

 

revisiting this, again. this is only relevant if you're a choke/loss victim. if you don't know if you are or are not, type net_graph 3 in console.

 

i went to dsl reports and ran a speed test. these are my results:

 

2005-11-13 16:43:23 EST: 2374 / 409

Your download speed : 2374 kbps or 296.8 KB/sec.

Your upload speed : 409 kbps or 51.1 KB/sec.

 

we want to pay attention to the KBps (smaller number).

 

now the math:

1. rate

[your download speed] x 1024 = your rate

296.8 x 1024 = 303293

CAL legal limit is 30000, most servers limit is 25000. my calculated rate is outside the legal limit. so i'll take the highest legal limit. *NOTE* servers with rates lower than yours will force you to use their lower rate. no adjustment necessary.

my setting:

rate 30000

 

2. cl_updaterate

[your rate] / [largest packet] = cl_updaterate

303293 / 180 = 1688

updaterate sets the amount of info you can get FROM the server. CAL set the legal limit between 20-100, and this is the setting we use on GC servers.

my cl_updaterate:

cl_updaterate 100

 

3. cl_cmdrate

the example was based on a cvar that isn't used by source. for the sake of argument, look at the 56k. most dsl uploads are 512k, or 50kbps. based on the math of the 56k, the rate is far too high. cl_cmdrate should be at 100

cl_cmdrate 100

 

like strange said in the first post, if you still experience choke/loss, adjust your cl_update/cl_cmdrate. adjust both cl_updaterate/cl_cmdrate in the same increments. for example, if 100 isn't working, change it to 95 ON BOTH! take small steps, between 5-10, until you find your sweet spot.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...