Rate Hacking - Come On Put A Stop To It...
Zamma
Join Date: 2004-05-04 Member: 28458Members, Constellation
<div class="IPBDescription">please...</div> Nowadays i go on a server an 1/2 the server have dodgey rates. Even someone in my clan recently has changed his rates to 9999 40 40. He says its "legal" but its wrong. Bullets dont reg on him and i noticed how that one day hes killable the next he can kill 3 rines without dieing. Its stupid.
I wish NS dev team could sort this problem cause to me its ruinign ns.
I wish NS dev team could sort this problem cause to me its ruinign ns.
Comments
but yes it is a problem, i have seen people with high rates actually lower theyre updaterate/cmdrate to the minium when playing alien just so that nothing will hit them, VERY lame.
It automatically sets rates on clients while on your server.
yeah 40 40 9999 is acceptable...
this beta has some hitreg issues though, my choke gus up to 9 on servers it didnt before.
<a href='http://www.foom.net/fortressfiles/netcode.htm' target='_blank'>http://www.foom.net/fortressfiles/netcode.htm</a>
It automatically sets rates on clients while on your server. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Can you PM me with some information on this? Thanks.
so my cl_updaterate of 150 and cl_cmdrate of 150 is unfair, or if I set it to say, 10 and 10, it'd be unfair?
I'm very, very confused now
I am clueless as to what the problem is. I have a DSL connection and have no idea what rates are acceptable and what aren't, or what are best for this connection, so any kind of light that can be shed would be welcome.
Thanks.
cl_cmdrate 30
cl_updaterate 30
should be the absolute minimum
anything that is 512+ should be at rate 20000, cl_cmdrate 80-101, cl_updaterate 50-101 unless you get choke, in which case lower it, it really doesn't make much of a difference
you can see if someone has a **** up set of rates or connection to the server by setting ex_interp to 0, the more they warp, the worse their rates
Lets take this to the extremes. Player A has set a very low cmdrate (cl_cmdrate 10), sending very few updates of his position to the server. Player B has set his updaterate so that he will recieve the maximum amounts of updates from the server cl_cmdrate 100), and client interpolarisation to the minimum (ex_interp = 1/updaterate).
Player A runs in a straight line with celerity as a skulk. He percieves himself moving in a continous line: |----------------|
Player B however, who can only see what A sends to the sever and the server in turn sends to B, sees A only in the positions A happens to be in when he sends his update to the server: |-- -- -- --|.
In this case, just setting client interpolarisation higher would work well, making player B see A moving in a continous line again.
Now imagine player A bunnyhopping, keeping a high interpolarisation will yield inaccurate information to the whereabouts of A, making "reg" worse since what you're aiming at isnt actually where the target is. With the minimum interpolarisation B will see only what he can hit, but this target will be very jumpy (warp speed 30 captn', cant hold her), making tracking almost impossible, yielding the same results.
Now this isnt atually a problem with a person who needs to set a low cmdrate to be able to play well at all, since he'll perform badly anyhow due to a high ping or whtever it might be. The problem occurs when someone with a good connection to the server sets his cmdrate low on purpose to make tracking him harder, while keeping a high updaterate so the information he recieves is plentiful and accurate. This isnt very nice at all.
[Edit]On the point of minimum rates, I implore you to not set any minimum value to cl_updaterate, since this value actually only affects the client himself. This is the value that determines the amounts of updates the client himself recieves from the server, and thus also how accurate this information is. Setting a low updaterate really only hurts that player.
So, could we please get a higher minimum cl_cmdrate? That's if it's possible in a mod because it is netcode so I'm not sure if it's an engine thing or what-not.
It didn't do jack **** so long as everyone was on at LEAST dsl...
I went from cl_rate 20000, cl_cmdrate 150, cl_updaterate 150, cl_cmdbackup 2
all the way to
cl_rate 1000, cl_cmdraqte 10, cl_updaterate 10, cl_cmdbackup 0
and everythign in between...
there was a MINOR difference... nothing to warrent ANYTHING that I've seen...
but again, this was on a GOOD server
but the server itself was a pinger on average between 50-80 for most people on DSL or greater
It automatically sets rates on clients while on your server. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
I hate them things, I'm on 56k, people just do not understand about rates <!--emo&:(--><img src='http://www.unknownworlds.com/forums/html/emoticons/sad-fix.gif' border='0' style='vertical-align:middle' alt='sad-fix.gif' /><!--endemo-->
cl_cmdrate 30
cl_updaterate 30
should be the absolute minimum <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Be careful when making blanket statements like that. You'll find that anybody on 56k or a clogged up cable connection will never be able to actually move since they be stuck in a constant loop of CL_FLUSHENTITYPACKET errors until they are eventually dropped by the server.
All your rate setting does is tell the server how fast you can download in bytes. This means if you normally download files from the internet at 25 Kbps (25600 bytes per second), then you should set your rate to 25600. Simple as that.
Setting it higher means that you are telling the server to send you data faster than you can receive it. This will cause CL_FLUSHENTITYPACKET errors and an eventual drop from the server.
Setting it lower means you are telling the server to send you data slower than you can receive it. The server will start sending you less and less detailed messages to try and keep the bandwidth down, but there is always certain minimum volume of data that needs to be transferred, and if you set your rate below it, then you'll start getting "choke", where the server is starting to que up information to send to you since you can't receive it all at once. If your choke gets too high, you'll keep getting the CL_FLUSHENTITYPACKET error until you finally catch up to all the data being sent to you.
It seems to me that a CL_FLUSHENTITYPACKET just means that you've gotten so far behind on receiving the list of things the server wants to tell you, that it freezes you in place for a while, completely clears out the backlog and starts over again in the hopes that only fell behind due to a particularly rough patch of combat or something, and that you'll be ok once things calm down.
cl_updaterate and cl_cmdrate are the troublemakers. Messing with your rate command itself can only really hurt you, since setting it to something dodgy just makes you freeze in place any time combat starts....
Could some one tell me what i need to set myrates at? I have Broadband connected at 576kb/s.
What rates should i have on?
Why should it be players to decide the 'rate_var_XXX' things?
As long as i remember i never seen a player complain about it's "lowrates"... It's more like: Huh??? i didn't know that... are you sure my rate_var a too low??? It's probably a misconfiguration... or my connexion speed... (hypocrisy to its maximum)
and me to answer:
yeah yeah but you set it to this values... i mean this is not the default value...
Some say that it's legal... It can't be a problem of 'point of vue' if there is no way to modify this anymore. The server is able to do 'ping stat', and probably able to stat other things (choke, loss...).
Dev should be able to make something about that. Like:
*Compute some stats every 10secs.
*Push the 'rate_var_XXX' on the client machine.
Last words:
How can a dev team balance the game if a lot of people use this kind of tricks? I mean: how can it be balanced if the playtesters aren't representative of all players. From the overskilled who has a userconfig.cfg longer than my arm; to the total noob who only configure his keyboard... There is a great propability that some constellation players use this kind of tricks. It'll be stupid not to ask the question.
It's skill to dodge bullets, i mean when there are bullets to dodge...
<span style='font-size:14pt;line-height:100%'>Pls dev team... ensure people can play the game... with the same chance for all.</span>
RATES SHOULD BE AS HIGH AS POSSIBLE WITHOUT GETTING CHOKE/LOSS
for me on a standered 512k broadband connection, i can use
rate 20000
cl_updarerate 101
cl_cmdrate 101
without getting any choke or lose in NS
if your getting choke or loss, it means theres to much information for your connection to handle, and the choke/loss reprsents how many packets of information gets discarded.
the only way i can see the ns team getting involved would be to set minimum rates for each connection class, but i dont know if they can do that
Here is a reply that I posted to a thread a few months ago with the same topic:
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Right guys, now listen up, and listen good. Before you come over here and post your useless information and experience that you have gained by years of gaming, why dont you acually shut up, load up a server, and experiment.
And that is exactly what I have done. Lots of times.
If you dont know a lot about the HL netcode, dont even bother reading this post any further. I will give a brief explanation of some of the commands, and how i understand them to work. And if you dont agree with me, go and join a server with a few friends, and test this out for yourself. I will even on request, upload some demos to an ftp so that you can see what I am talking about.
First off lets start with the most common rate commands, rate, cl_cmdrate, and cl_updaterate.
Rate is the amount of incoming data per packet that you receive from the server. The higher your rate value is set at, the less choke you will get (taking into account that you have a decent connection).
cl_updaterate is the ammount of packets that you receive every second from the server. A decent value for this command would be anything above 30.
now comes the most important one in this discussion, and there has been mass confusion about this command for years in this community (and other HL mods / games as well). cl_cmdrate is THE AMOUNT OF FRAMES PER SECOND THAT YOU SEND TO THE SERVER EVERY SECOND. Why is this so important?
Because if a player assigns a low value to cl_cmdrate, he will be sending a low ammount of frames per second (FPS) to the server, meaning that he will basically be teleporting around.
But how will you notice that someone is using a low value for cl_cmdrate? There is only one way - by using a correct value for interp on your client.
Im sure by now everyone knows that ex_interp sets the timing for prediction inbetween frames received from the server that you are playing on. If you are using the correct interp value for your client, you will see 100% accurate hitboxes. This meaning that if a player is sending low FPS to the server (which is directly determined by cl_cmdrate), you will see him teleporting around on your screen because he is sending a low ammount of FPS to the server. Let me use an example:
NSPlayer uses the following rates: rate 10000, cl_cmdrate 10, cl_updaterate 30. Lets forget about rate for now, it is not that important. what is important though is the last two commands. his cl_updaterate is set to 30, meaning he will receive 30 FPS from the server. His cl_cmdrate is set to 10, which means that he is sending only 10 FPS to the server. This means that the server is receiving updates from the client every 0.1 seconds. This means that if at any time he strafes left or right while running at you, and there hasnt been an update received (server from the client),you will still see him running towards you, but you will not see where his correct hitbox position is, MEANING YOUR BULLETS WILL MISS . This is taking into account that you are using incorrect interp values.
So how do you see what value a player is using for his cl_cmdrate? Simply by using correct ex_interp values for the rates that you are currently using. Your ex_interp value should be your 1/cl_updaterate (1 divided by your cl_updaterate value). And if your not into maths, and you dont know where to turn on your calculator, you can easily set it to the correct value by opening your console, and typing: "ex_interp 0". By setting it to 0 , your client will automatically start using the correct value for ex_interp.
Now most of you have not even bothered looking into this, meaning that you will most probably still be using the default value for ex_interp, which is 0.1 . If this is the case, then i suggest you set your cl_updaterate to 50 (or higher) and afterwards you set your ex_interp to 0 (because your interp value is based on your updaterate value). Then connect to a server - i gaurantee you that you will be seeing whats really going on. Yes, some players will teleport, (because of low cl_cmdrate values) but at least you are seeing their correct hitbox positions, and not some illusion.
This my friends, is how ex_interp works. Its not some kind of hack, cheat, exploit etc... You cant change your interp to a value that gives you an advantage, because its not possible, except if you are of opinion that seeing correct hitbox positions is an advantage (in which case i reccomend you use the correct ex_interp value for your rates).
PS: People telling others to change their cl_updaterate because they are "teleporting" should hopefully now see that cl_updaterate has nothing to do with teleporting. cl_cmdrate is the culprit. I seriously suggest that the dev team sets a minimum allowed cl_cmdrate value of no less than 30 in the next version of ns, and that they also lock cl_rate to 9999.
Please pm me on irc if you want anymore information on this.
edit: just corrected something. (1/cl_updaterate)
This post has been edited by Swirl ! on Feb 19 2005, 01:04 PM
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Basically what it comes down to is that the Half Life netcode is based on the ammount of <b>frames per second</b> sent and received by each individual client connected to the server. The more frames you send, and the more frames you receive, the better your perspective will be about what is going on.
There is a lot of factors to take into consideration before one starts to throw around accusations. First of all, server quality is by far the most important one here. Connection, CPU, RAM, all of those are very important factors. If a server doesnt have sufficient resources to allocate to whats going on ingame, things will get laggy, and registry on the server should be bad.
So if someone has bad registry:
-First of all check server stability by checking out the scoreboard for a few seconds. If the pings are acting erratic, ie: jumping around from high values to low values, then the server is suffering from instability issues. (which, yet again, can be broken down to a variety of factors). This is what is causing bad registry on the player hitboxes.
If the pings seem stable, and its only certain players that are effected, then they are using low cmdrate or cl_rate values (refer to my quoted post for more details).
To summarize:
cl_cmdrate determines the ammount of frames that the client sends to the server per second. low cmdrate = low fps, meaning the player will teleport around (if he is viewed with correct interp) or he will have bad registry (if he is viewed with incorrect interp). Make sure your cl_cmdrate <b>is set to a value of 30 or more !!!</b> and that your cl_rate is set to the default of <b>9999</b>
cl_updaterate is the ammount of updates you receive from the server every second. Make sure this value is set to at least 30.
rate is the size of the packet that the client <b>receives</b> from the server.
cl_rate is the size of the packet that the client is <b>sending</b> to the server.
I <i>seriously suggest</i> that the devs <b>lock cl_rate at 9999</b> and cl_cmdrate to a <b>minimum of 30</b> for the next version.
It automatically sets rates on clients while on your server. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Can you PM me with some information on this? Thanks. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
You could just talk to the CAL-DoD division <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
rate = [download speed in bytes/s]
cl_rate = 0
cl_updaterate = rate / 360
cl_cmdrate = [upload speed in bytes/s] / 180
(8bits=1byte, 1024bytes=1kbyte)
but given no connection is ever perfect its best to use a BB speed tester to get your connections speed.
<a href='http://www.broadbandonlinesite.com/broadband-speed-tester/' target='_blank'>http://www.broadbandonlinesite.com/broadband-speed-tester/</a>
Given the fact im on 56k my rates are 4400, cl_updaterate of 12 and cl_cmdrate of 14, anything higher and i would be pretty much unable to play the game without a serious ping disadvantage.
cl_rate is allready locked, as is ex_interp in CS, locking cl_cmdrate to 30 would be a bad idea in pubs and for any 56k players in clan matchs
This is one of the major problems regarding rates. DONT MIX UPDATERATE AND CMDRATE TOGETHER.
The two commands that I know of that could be used to exploit the netcode is cl_cmdrate and cl_rate. Cl_updaterate is completely harmless.
The two commands that I know of that could be used to exploit the netcode is cl_cmdrate and cl_rate. Cl_updaterate is completely harmless.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Em Cl_rate was locked a few versions back for everyone to 9999 regardless of what you set it to it always goes back to 9999. Someone please correct me if im wrong.