Advertisement
Guest User

Usersettings.con

a guest
May 24th, 2015
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.65 KB | None | 0 0
  1. Battlefield 2
  2.  
  3. Usersettings.con
  4.  
  5. This file is found under your \Program Files\EA Games\Battlefield 2\mods\bf2\Settings directory. There are two particular settings of interest here which are reported to help reduce the inaccurate feel /hit detection of weapons fire in BF2:
  6.  
  7. SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
  8.  
  9. This setting controls latency (or 'lag') compensation, which involves the game attempting to offset the delay between information being sent from your machine to the server and back again (as measured in milliseconds by your Ping). In games without client-side latency compensation, you have to lead your target by a certain amount, since whenever you fire a weapon your bullets will actually register in the game world with a delay equal to your Ping. In BF2, whenever you fire a weapon, whatever appears in your crosshairs at that particular moment is registered as being hit, regardless of where they actually are at that point in time. This removes the need to predict where your target will be based on ping delay, and makes the game feel more responsive. However it can also introduce quirks like ducking behind a wall and still being hit.
  10.  
  11. In any case, this setting controls the default latency compensation applied, and the normal value is 0.100000 = 100ms. Some people claim that by adjusting this value to match your average ping in the servers you play, it can improve hit detection. For example, if you typically have a 50ms Ping, setting this to 0.050000 should improve the feeling of accuracy in the game. To be honest having experimented with this setting in isolation I didn't notice much difference either way. I believe the latency compensation is actually dynamic, only starting at the default value given in this setting, and adjusting to match your average ping over time. However even if it isn't, in general you can try to match your Ping with this setting to see the results. Note that lowering this setting well below or above your average Ping will only add to lag and may decrease your accuracy at best, so stick with keeping it equal to the Ping you get on most servers.
  12.  
  13. SettingsManager.U32Set GSInterpolationTime 400SettingsManager.U32Set GSInterpolationTime 100
  14.  
  15. Interpolation is a technique used to increase the smoothness of an online game. Basically interpolation is the prediction of where a particular moving object or character is currently located in the game world, based on data received on where they were and where they are. For example if an enemy soldier is running across the screen, interpolation allows their movement to appear fluid, calculating their predicted movement across the screen even though your computer is receiving only periodic updates of where they actually are. So instead of seeing a person jerkily warping from point to point, you see smooth animated motion all the way along. This especially helps to keep things smooth if/when packets are momentarily lost between the server and you; the game knows where the player currently is, where they were a moment ago, and calculates and displays the movements in between.
  16.  
  17. By default, Battlefield 2 appears to have a 100 millisecond buffer for interpolation. The problem with this is that while making things appear smoother, it also means that when firing upon a fast-moving object you may miss where they actually are as you're effectively facing an additional 100ms delay. At least that's the theory, and in general in my experimentation I found slightly improved hit detection results (and no noticeable increase in jerkiness) by using a lower value of 50 or even 30 for this setting. Note however that this variable should not be set too low (and certainly not a value of 0) as it will result in increased warping/jerky movements, and if you generally have a ping higher than 100 you shouldn't lower this setting. For those who do try this, also remember that the improvement from lowering this setting is not dramatic, since we're talking a difference of say 50ms (1/20th of a second). However particularly in situations where your opponent(s) are moving fast and/or erratically your accuracy should be noticeably improved.
  18.  
  19. It is important to understand that the generally inaccurate feel of most weapons in BF2 is intentional, as realism has been sacrificed for the sake of gameplay. Techniques to steady your aim such as going prone and using short bursts can help improve hit rates. Furthermore it appears that much of the time the lack of hit registration is due to lost packets. I've noticed the Battlefield series suffers quite a bit from packet loss, often manifesting as serious warping or jerkiness, getting caught against walls or other barriers, and incidents where you can appear to be firing at an unmoving target at point blank range and still somehow miss with most bullets; information is being lost to/from the server.
  20.  
  21. The key thing to note about both settings above is that unfortunately neither I nor anyone else knows for sure what the real story is - only EA/DICE know the truth about how their netcode works, and they've stated nothing to clarify these settings. What I've written above is based on my own experimentation, understanding and research about these settings. For the most part I haven't found any problems with PunkBuster by using the recommended settings above, though some servers may be very strict and not allow these values to be changed. If altering these values seems to make things worse for you, or you experience more jerkiness, lag or disconnections, reset them to the defaults shown above and leave them be.
  22.  
  23.  
  24.  
  25.  
  26.  
  27. ...So, ping of 30:
  28.  
  29. SettingsManager.floatset GSDefaultLatencyCompensation 0.030
  30.  
  31. ping of 100:
  32.  
  33. 0.1
  34.  
  35. This will affect where you have to aim to hit moving targets. If you tweak this to properly match your ping, you will find that you can actually aim AT moving targets and still hit them.
  36.  
  37.  
  38.  
  39.  
  40. From reading this and trying the same it would appear that if you have a fast CPU your :
  41.  
  42. SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
  43. Should have been variable but it's not. You have to adjust this manually to what your ping is for optimium playing experience. As already noted 0.10 means 100ms ping
  44.  
  45. SettingsManager.U32Set GSInterpolationTime 100
  46. This has something to do with the time it takes to process what is already on the screen. But remember in order to lower it you need a fast CPU and, I'll assume you will need a high end video card along with a low ping, fast ISP for optimium results.
  47.  
  48. SettingsManager.U32Set GSExtrapolationTime 1200
  49. This has something to do with the time it takes to predict (what? I don't know). It appears that 1200 default is to long of a time lapse which causes lag for some. But setting it to low should cause a loss of packets. WHY? Because you are trying to go faster then what is allowed. You have to find a sweet spot. I believe its somewhere between 400-1100.
  50.  
  51. This has been my observation so far and it works.
  52.  
  53.  
  54. * These samples in BF2 terms would be your current x,y,z map co-ordinates. The relevant CVAR may be the frequency at which your client sends your co-ordinates to the server. I.E by default your client sends 10 samples a second to the server (100 milliseconds = 1/10 of a second).
  55.  
  56. * Now if your average latency is 50 milliseconds (that means that a complete return trip from your machine to the server and back again) your client could on average send two shots per interpolation sample period.
  57. I hope the simple illustration below helps explain my thoughts so far.
  58.  
  59. I Sample I Sample
  60. v v
  61. 0---------10---------20---------30---------40---------50---------60---------70---------80---------90---------100
  62. ^ \/ ^ \/
  63. Shot Fired Server rego Shot Fired Server Rego
  64.  
  65.  
  66. * So when the server receives the "Shot Fired" message from your client it must extrapolate where your target may reasonably be based on the samples it received from your targets Interpolation Samples.
  67.  
  68. Now I just gotta work out how theses algorithms apply to the game.
  69.  
  70.  
  71.  
  72.  
  73. Altering the interpolation setting from 100 to 400 is forcing your pc to draw the enemy you are seeing on your screen where he was 3/10 of a second ago(relative to the default settings),this is allowing the laggy hit boxes to catch up to where they should be.
  74. This should make moving targets easier to hit and have very little effect on stationary targets.
  75. As this is only effecting what you are seeing on your own pc i cant believe that realigning the hit boxes with the drawn target is giving you an unfair advantage.
  76. As im sure you understand interpolation is predicting events in the future from what has happened in the past and is happening in the present and so filling in any gaps caused by packet loss to ensure smooth gameplay.
  77. Now to acheive what seems like realtime gameplay the server runs every client slightly in the past and interpolates more than you would expect (the easiest way to see this is to have 2 PCs next to each other connected to the same public server and watch 2 slightly different games).
  78. According to a programmer friend of mine ,most of the user settings are to do with compensating for the different capabilities and pings of all the different PCs trying to use any given server.
  79. He usually talkes in language that goes right over my head but managed to convey to me that the interpolation setting is altering the position on the client server timeline to compensate for the proccesing ability of slower PC's/Modems(gives extra milliseconds to catch up).
  80. So altering your setting to 400 is moving what you see back in time and the server compensates accordingly,as i said before this lets the hit boxes catch up as your PC is running bf2 in realtime (0 millisecond compensation).
  81.  
  82. Maybecan help with vehicle hit registrations: You can try also GSInterpolationTime400 with ping or GSInterpolationTime40 and see what happens.
  83.  
  84. I hope this helps
  85.  
  86.  
  87.  
  88.  
  89.  
  90. INTERPOLATION is deducing a point between two known points. EXTRAPOLATION is predicting the future by looking at patterns in the past.
  91.  
  92.  
  93.  
  94. SettingsManager.floatSet GSDefaultLatencyCompensation
  95.  
  96. This is set as the players average ping- as such the value varies from ~0.03000 - ~ 0.07000
  97.  
  98. SettingsManager.boolSet GSExtrapolateFrame
  99.  
  100. This maybe tied with "SettingsManager.U32Set GSExtrapolationTime" - Players who set this value as a 0 often have a high ExtrapolationTime, whereas players who set it as a 1 often have a low ExtrapolationTime.
  101.  
  102. SettingsManager.U32Set GSExtrapolationTime
  103.  
  104. Appears to be tied with "SettingsManager.boolSet GSExtrapolateFrame" If you have ExtrapolateFrame as 1, try settings it to a low value less than 100, wheras if you have it as a 0 try settings it to a high value 100-1000.
  105.  
  106. SettingsManager.U32Set GSInterpolationTime
  107.  
  108. This is always set as lower/same value than "SettingsManager.U32Set GSExtrapolationTime" (less than 100) Many players have this as a very small value (less than 30)
  109.  
  110. SettingsManager.U32Set GSPerfLogAtPlayerCount
  111.  
  112. Nearly everyone had this set as a value ~30
  113.  
  114.  
  115.  
  116.  
  117. GSDefaultLatencyCompensation is the key:
  118.  
  119. This helps to match your ping to the ping of the game. For some reason GSDefaultLatencyCompensation is set to 100ms or 0.1 by default. Those who had the lowest ping (5-40) suffered the most lag as it was no where near 100ms. That's why those with pings of 70-100ms didn't have problems because they were close to the 100ms default (something I posted before). Some of you may not want to change this if all your servers come in close to 100ms.
  120.  
  121. However, if they are for example 140 you can change to 0.140 for example. I am not sure if this will work or not but the theory behind it is simple. Low ping is not the key, matching your ping to the ping of the game is key.
  122.  
  123. There is no easy remedy, either:
  124.  
  125. 1. dedicate yourself to only one server and keep the value the same in the usersettings.con
  126. 2. always change it via "~" each time you enter a server (manually).
  127.  
  128. Here is what you do:
  129.  
  130. 1. When in-game bring up the console and type the following command.
  131. 2. "SettingsManager.floatSet GSDefaultLatencyCompensation 0.XX"
  132. 3. It's default is 0.1 means 100ms. Therefore press tab, look at your ping and replace the 0.1 with your ping eg:
  133. * If your ping is 30 then you type 0.03
  134. * If your ping is 140 you type 0.140
  135. * You get the idea. Remember when typing the command, don't include the quotes ("").
  136.  
  137. Example:
  138.  
  139. 1. Entered into BF2 session
  140. 2. Hit the ~ key
  141. 3. Then type SettingsManager.floatSet GSDefaultLatencyCompensation 0.04 (make sure you use the caps as needed) because my ping reads 40
  142. 4. Play the game
  143.  
  144. SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
  145.  
  146. Should have been variable but it's not. You have to adjust this manually to what your ping is for optimum playing experience. As already noted 0.10 means 100ms ping
  147. SettingsManager.U32Set GSExtrapolationTime 100
  148.  
  149. This has something to do with the time it takes to process what is already on the screen. But remember in order to lower it you need a fast CPU and, I'll assume you will need a high end video card along with a low ping, fast ISP for optimum results. Extrapolation: the process of constructing new data points outside a discrete set of "known data points", not sure. This appears to be client side. But this could mean location of your shot when fired (for example).
  150. SettingsManager.U32Set GSInterpolationTime 1200
  151.  
  152. This has something to do with the time it takes to predict (what? I don't know). It appears that 1200 default is to long of a time lapse to predict which causes lag for some. Interpolation: estimation of a value between two known data points. I assume it's the prediction process between you and the server. This seems to predict certain aspects of the game like shot location for example. Some try reducing this value for better results. Be warned, you must have a system that can handle these calculations. This all appears to be client side.
  153. Information gathered:
  154.  
  155. Hit detection improved dramatically on a high end system. Not guarantee on a low end system because the default values appear to accommodate them. Some of you who have a mid-low end system with a decent ISP shouldn't have the same problems as those who have a high end system with a very low (usually between 15-5ms ping) ISP (in theory). Again, I cannot stress this enough, it appears that changing the: SettingsManager.floatSet GSDefaultLatencyCompensation SettingsManager.U32Set GSInterpolationTime & SettingsManager.U32Set GSExtrapolationTime appears to depend on a upper hardware and ISP.
  156.  
  157. However, if you have the recommended requirements here is what I found:
  158.  
  159. * Hit detection improved dramatically. Even if combatant is moving from side to side you still register a hit.
  160.  
  161. * Firing the weapon now appears to be more accurate when you pause between shots in single shot mode. I am not sure if I need to further tweak those commands or not. However, I have a tendency to hit a target each and every time when I pause between shots in single shot mode.
  162.  
  163. PunkBuster Refresh Rate
  164.  
  165. Punkbuster is checking your PC every 20 sec. for cheats etc., which canmake your game lag. You can adjust the time between checks by simply opening the console ingame.
  166.  
  167. 1. Open Console
  168. 2. type pb_sleep(space) 500 and hit enter
  169. 3. type pb_writecfg and hit enter again
  170.  
  171. Now Punkbuster will check your pc every 500 seconds instead of every 20 seconds. Dont go higher then 500 because it wont be excepted.
  172.  
  173.  
  174.  
  175. * SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
  176. is the key:
  177.  
  178.  
  179. This setting controls latency (or 'lag') compensation, which involves the game attempting to offset the delay between information being sent from your machine to the server and back again (as measured in milliseconds by your Ping). In games without client-side latency compensation, you have to lead your target by a certain amount, since whenever you fire a weapon your bullets will actually register in the game world with a delay equal to your Ping. In BF2, whenever you fire a weapon, whatever appears in your crosshairs at that particular moment is registered as being hit, regardless of where they actually are at that point in time. This removes the need to predict where your target will be based on ping delay, and makes the game feel more responsive. However it can also introduce quirks like ducking behind a wall and still being hit.
  180.  
  181. In any case, this setting controls the default latency compensation applied, and the normal value is 0.100000 = 100ms. Some people claim that by adjusting this value to match your average ping in the servers you play, it can improve hit detection. For example, if you typically have a 50ms Ping, setting this to 0.050000 should improve the feeling of accuracy in the game. To be honest having experimented with this setting in isolation I didn't notice much difference either way. I believe the latency compensation is actually dynamic, only starting at the default value given in this setting, and adjusting to match your average ping over time. However even if it isn't, in general you can try to match your Ping with this setting to see the results. Note that lowering this setting well below or above your average Ping will only add to lag and may decrease your accuracy at best, so stick with keeping it equal to the Ping you get on most servers.
  182.  
  183. This helps to match your ping to the ping of the game. For some reason GSDefaultLatencyCompensation is set to 100ms or 0.100000 by default. Those who had the lowest ping (5-40) suffered the most lag as it was no where near 100ms. That's why those with pings of 70-100ms didn't have problems because they were close to the 100ms default (something I posted before). Some of you may not want to change this if all your servers come in close to 100ms.
  184.  
  185. However, if they are for example 140 you can change to 0.140000 for example. I am not sure if this will work or not but the theory behind it is simple. Low ping is not the key, matching your ping to the ping of the game is key.
  186.  
  187. There is no easy remedy, either:
  188.  
  189. 1. dedicate yourself servers where you have almost the same ping every time and keep the value the same in the usersettings.con
  190. 2. always change it via "~" each time you enter a server (manually).
  191.  
  192. Here is what you do if you always play on servers with big ping differences:
  193.  
  194. 1. When in-game bring up the console and type the following command.
  195. 2. "SettingsManager.floatSet GSDefaultLatencyCompensation 0.XX"
  196. 3. It's default is 0.100000 means 100ms. Therefore press tab, look at your ping and replace the 0.100000 with your ping eg:
  197.  
  198. * If your ping is 30 then you type 0.030000
  199. * If your ping is 140 you type 0.140000
  200. * You get the idea. Remember when typing the command, don't include the quotes ("").
  201.  
  202.  
  203. Example:
  204.  
  205. 1. Entered into BF2 session
  206. 2. Hit the ~ key
  207. 3. Then type SettingsManager.floatSet GSDefaultLatencyCompensation 0.040000 (make sure you use the caps as needed) because my ping reads 40
  208. 4. Play the game
  209.  
  210. * SettingsManager.U32Set GSExtrapolationTime 1200
  211.  
  212.  
  213. This has something to do with the time it takes to process what is already on the screen. But remember in order to lower it you need a fast CPU and, I'll assume you will need a high end video card along with a low ping, fast ISP for optimum results. Extrapolation: the process of constructing new data points outside a discrete set of "known data points", not sure. This appears to be client side. But this could mean location of your shot when fired (for example).
  214.  
  215. * SettingsManager.U32Set GSInterpolationTime 100
  216.  
  217.  
  218. This has something to do with the time it takes to predict (what? I don't know). It appears that 100 default is to long of a time lapse to predict which causes lag for some. Interpolation: estimation of a value between two known data points. I assume it's the prediction process between you and the server. This seems to predict certain aspects of the game like shot location for example. Some try reducing this value for better results. Be warned, you must have a system that can handle these calculations. This all appears to be client side.
  219.  
  220. Interpolation is a technique used to increase the smoothness of an online game. Basically interpolation is the prediction of where a particular moving object or character is currently located in the game world, based on data received on where they were and where they are. For example if an enemy soldier is running across the screen, interpolation allows their movement to appear fluid, calculating their predicted movement across the screen even though your computer is receiving only periodic updates of where they actually are. So instead of seeing a person jerkily warping from point to point, you see smooth animated motion all the way along. This especially helps to keep things smooth if/when packets are momentarily lost between the server and you; the game knows where the player currently is, where they were a moment ago, and calculates and displays the movements in between.
  221.  
  222. By default, Battlefield 2 appears to have a 100 millisecond buffer for interpolation. The problem with this is that while making things appear smoother, it also means that when firing upon a fast-moving object you may miss where they actually are as you're effectively facing an additional 100ms delay. At least that's the theory, and in general in my experimentation I found slightly improved hit detection results (and no noticeable increase in jerkiness) by using a lower value of 50 or even 30 for this setting. Note however that this variable should not be set too low (and certainly not a value of 0) as it will result in increased warping/jerky movements, and if you generally have a ping higher than 100 you shouldn't lower this setting. For those who do try this, also remember that the improvement from lowering this setting is not dramatic, since we're talking a difference of say 50ms (1/20th of a second). However particularly in situations where your opponent(s) are moving fast and/or erratically your accuracy should be noticeably improved.
  223.  
  224. It is important to understand that the generally inaccurate feel of most weapons in BF2 is intentional, as realism has been sacrificed for the sake of gameplay. Techniques to steady your aim such as going prone and using short bursts can help improve hit rates. Furthermore it appears that much of the time the lack of hit registration is due to lost packets. I've noticed the Battlefield series suffers quite a bit from packet loss, often manifesting as serious warping or jerkiness, getting caught against walls or other barriers, and incidents where you can appear to be firing at an unmoving target at point blank range and still somehow miss with most bullets; information is being lost to/from the server.
  225.  
  226. The key thing to note about both settings above is that unfortunately neither I nor anyone else knows for sure what the real story is - only EA/DICE know the truth about how their netcode works, and they've stated nothing to clarify these settings. What I've written above is based on my own experimentation, understanding and research about these settings. For the most part I haven't found any problems with PunkBuster by using the recommended settings above, though some servers may be very strict and not allow these values to be changed. If altering these values seems to make things worse for you, or you experience more jerkiness, lag or disconnections, reset them to the defaults shown above and leave them be.
  227.  
  228. * Information gathered:
  229.  
  230.  
  231. Hit detection improved dramatically on a high end system. Not guarantee on a low end system because the default values appear to accommodate them. Some of you who have a mid-low end system with a decent ISP shouldn't have the same problems as those who have a high end system with a very low (usually between 15-5ms ping) ISP (in theory). Again, I cannot stress this enough, it appears that changing the: SettingsManager.floatSet GSDefaultLatencyCompensation SettingsManager.U32Set GSInterpolationTime & SettingsManager.U32Set GSExtrapolationTime appears to depend on a upper hardware and ISP.
  232.  
  233. However, if you have the recommended requirements here is what I found:
  234.  
  235. Hit detection improved dramatically. Even if combatant is moving from side to side you still register a hit.
  236. Firing the weapon now appears to be more accurate when you pause between shots in single shot mode. I am not sure if I need to further tweak those commands or not. However, I have a tendency to hit a target each and every time when I pause between shots in single shot mode.
  237.  
  238. * Other : PunkBuster Refresh Rate
  239.  
  240.  
  241. This has nothing to do with usersettings.con but can help too in improving your hitreg.
  242. Punkbuster is checking your PC every 20 sec. for cheats etc., which can make your game lag. You can adjust the time between checks by simply opening the console ingame.
  243.  
  244. Open Console
  245. type pb_sleep(space) 500 and hit enter
  246. type pb_writecfg and hit enter again
  247. Now Punkbuster will check your pc every 500 seconds instead of every 20 seconds. Dont go higher then 500 because it wont be accepted.
  248.  
  249. * Other : Connection Type
  250.  
  251.  
  252. Some people i know sayed that if they changed their connection type it had differences in hit registration.I dont know if this is true and i havent really tried it.But you can test it out if you want.You can either change it from ingame options or by editing the "General.con" file in your :
  253.  
  254. Docs\Battlefield 2\Profiles\000x(profile number here)\
  255.  
  256. Scroll all the way down and you will see : GeneralSettings.setConnectionType 4
  257.  
  258. Value 4 is for DSL
  259. Value 5 is for Bigger Connections
  260.  
  261.  
  262. Then...
  263.  
  264. SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
  265. Should have been variable but it's not. You have to adjust this manually to what your ping is for optimum playing experience. As already noted 0.10 means 100ms ping
  266.  
  267. SettingsManager.U32Set GSExtrapolationTime 100
  268. This has something to do with the time it takes to process what is already on the screen. But remember in order to lower it you need a fast CPU and, I'll assume you will need a high end video card along with a low ping, fast ISP for optimum results. Extrapolation: the process of constructing new data points outside a discrete set of "known data points", not sure. This appears to be client side. But this could mean location of your shot when fired (for example).
  269.  
  270. SettingsManager.U32Set GSInterpolationTime 1200
  271. This has something to do with the time it takes to predict (what? I don't know). It appears that 1200 default is to long of a time lapse to predict which causes lag for some. Interpolation: estimation of a value between two known data points. I assume it's the prediction process between you and the server. This seems to predict certain aspects of the game like shot location for example. Some try reducing this value for better results. Be warned, you must have a system that can handle these calculations. This all appears to be client side.
  272.  
  273. Information gathered:
  274. Hit detection improved dramatically on a high end system. Not guarantee on a low end system because the default values appear to accommodate them. Some of you who have a mid-low end system with a decent ISP shouldn't have the same problems as those who have a high end system with a very low (usually between 15-5ms ping) ISP (in theory). Again, I cannot stress this enough, it appears that changing the:
  275. SettingsManager.floatSet GSDefaultLatencyCompensation
  276. SettingsManager.U32Set GSInterpolationTime & SettingsManager.U32Set GSExtrapolationTime appears to depend on a upper hardware and ISP.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement