Page 1 of 4

Hitbox detection on bf2/pr servers?

Posted: 2007-03-06 21:07
by Rico11b
Hi everyone,

I just found this on another forum. I'm sure some of you guys may have seen this before, but I figured I'd pass it along anyway. It's interesting what he was saying about the server side settings. Is there anything to it? Are server admins already aware of this? Is it rubbish?

"quote
Code:
rem
rem Settingsfile automatically saved by bf2
rem
SettingsManager.boolSet GSClPunkBuster 1
SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
SettingsManager.boolSet GSExtrapolateFrame 0
SettingsManager.U32Set GSExtrapolationTime 1200
SettingsManager.U32Set GSInterpolationTime 100
SettingsManager.U32Set GSPerfLogAtPlayerCount 30
SettingsManager.stringSet GSPlayerName "[pt] KEIOS"
SettingsManager.boolSet GSShowNetGraph 0
SettingsManager.boolSet GSUseObjectCache 1
Hi there guys, I think I got a goodie for you all...

1. Usersettings.con
Every single setting in usersettings.con is server related and does _absolutely nothing_ on client side. These settings are beeing discussed since early 2006 and nobody realized the 'GS' prefix? GS => GameServer

2. Concerning 'GSDefaultLatencyCompensation'
Someone should've checked bf2.exe or bf2_w32ded.exe - even on serverside, this setting does absolutely nothing until 'GSUseLatencyCompensation' is enabled (default: off).

3. How to fix the hit-detection at least on unranked servers (dunno if allowed on ranked ones)
Hit-detection is handled on client side by default - maybe to take load off of the servers.
Add 'settingsmanager.boolset GSUseClientSidePrediction 0' to your servers usersettings.con, save the file, make the file read-only (otherwise it will get overwritten when shutting down the server) and restart the server.
--->Mark my words: You DO NOT need to enable 'GSUseLatencyCompensation' at all!


Voila... model & hitbox are sync. Try it, you'll definately notice the difference. For all disbelievers: rename your bf2.exe or bf2_w32ded.exe to .txt, open it with a text editor and search for the relevant string(s).


Feel free to spread this information - bf2s.com is only the second board I posted this information.



Greetings,
redilS


//EDIT
Oh come on guys, so many views and no feedback until now? Not even a single harassment? o_O Did this "tweak" work for you?

Last edited by redilS (2007-01-31 15:41:25)
End quote"

Here is the link to the complete thread in case anyone is interested. http://forums.bf2s.com/viewtopic.php?pid=1194909


Later
R

Posted: 2007-03-06 21:17
by eggman
interesting .. worth investigating, but empirical testing on this stuff can be time consuming .. but nonetheless worthwhile.

Posted: 2007-03-06 21:22
by Rico11b
If you go to page 8 of the thread he tells how to add it to a server. Something about creating another usersetting.con file and adding the line in there. I don't know how to contact this guy or I would send him an email about it. I'll check.



Seems like I read somewhere that this problem with hitboxes was resolved in BF2142. If that's true has anyone compared the settings.con and other files to see if the fix is hidden in plain sight. I say that because I've heard the BF2 and BF2142 are for the most part the same game engine. With updates of course. Just a thought.

Posted: 2007-03-06 22:40
by Rico11b
If you do a google search for 'settingsmanager.boolset GSUseClientSidePrediction 0' you can find another forum post about it. It's in German I think, so you will have to translate the page. Unless you can read German.

translated

Posted: 2007-03-07 00:54
by General_J0k3r
rico11b wrote:If you do a google search for 'settingsmanager.boolset GSUseClientSidePrediction 0' you can find another forum post about it. It's in German I think, so you will have to translate the page. Unless you can read German.
I've translated the important parts of the only german post i've found via google and suppose it's the one you meant:

In the first part he talks about having seen a vid about the hitbox problems on youtube.

Then he says that the settings with GS in front are for GameServers. Then he comes to the point:

'GSDefaultLatencyCompensation' und 'GSInterpolationTime' don't do anything on the serverside neither. What he says really does something is setting 'GSUseClientSidePrediction' to '0'.

This is to be done in the 'Usersettings.con' file where one has to add the line 'SettingsManager.boolSet GSUseClientSidePrediction 0' and then set the file to write protected, otherwise it will be overwritten at server shut down. Then restart the server. One can also change the settings via console (no further explanation).

That should do the trick he says.


P.S.: excuse my english. german's my first language :D

Posted: 2007-03-07 01:15
by mainiack205
Im not grate o nthis but recently came across the hit box sync thread on here some palce and im curious to know - If i did this, would it count as "modified content" to punkbuster, etc and chuck me off servers? Is it a case of bish bosh bash, or would it need "fidling" with? :? :

Posted: 2007-03-07 01:40
by Teek
Its server side, and PB is not as omnipresent anymore.

Posted: 2007-03-07 05:54
by Rico11b
According to everything I've found so far PB doesn't care about this issue. You can safely adjust these settings and PB won't kick. If it is a server side setting that can be adjusted that would be much easier.

Posted: 2007-03-07 06:34
by Jaymz
Trying it out on the Warrior Nation server,
If it works I will suck your ****.

Posted: 2007-03-07 06:52
by Rico11b
WNxJaymz wrote:Trying it out on the Warrior Nation server,
If it works I will suck your ****.
That won't be needed as I get plenty of that at home. You can help me wash them sometime. Lol... I hope it works too.




I saw you on the server. I was gonna join to help test, but you must have disconnected before I could finish joining.

Posted: 2007-03-07 07:09
by Jaymz
well, we've tried it and so far no luck. Maybe I did something wrong with adding it into the usersettings.con file but I doubt it.

Posted: 2007-03-07 08:54
by Rico11b
Yeah, that was kinda iffy. I'm still waiting for the guy to email me back with more info on this. I was really hoping this would be the simple fix we needed. I'm wondering if he has modified it since he posted it the first time. Was kinda strange when you would fire and show it as a hit, but it didn't show anything on my end. One thing is for sure. If you are registering the hit and NOT getting the blood/dust at the same time then the hitboxes are lagging the player model.


I don't wanna give up on it completely, cause our test was kinda informal. I have modded my settings in the Usersetting.con file. I'm wondering if that had an effect on our test. Did you mod ours before the test?

Posted: 2007-03-07 08:58
by Rico11b
WNxJaymz wrote:well, we've tried it and so far no luck. Maybe I did something wrong with adding it into the usersettings.con file but I doubt it.

Think he said to make a new usersettings.con file for the dedicated server. I'm not sure. I wish he would email me back already.

Posted: 2007-03-07 08:59
by eggman
We'll try some testing with this during v0.6 development and see if it makes any difference.

Posted: 2007-03-07 09:46
by Rico11b
I posted earlier that I heard this issue was resolved in BF2142. Is that true? If so we should compare all of the settings between the two since they are so similar. Just a thought, did I already say that somewhere. I can't remember, I'm tired. Off to bed. Oh I posted a message on the BF2s forums now I'm waiting to hear back on that. Night all.

R

Posted: 2007-03-07 14:39
by Rico11b
Ok, he got back to me with this.
redilS wrote:Hi there and sorry for replying that late...

Concerning my suggestions, you would not have to create another usersettings.con if it already exists. By default, it should be located in <bf2-folder>\mods\<mod>\settings\

It's unmodified content should look like this:
rem
rem Settingsfile automatically saved by bf2
rem
SettingsManager.boolSet GSClPunkBuster 1
SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
SettingsManager.boolSet GSExtrapolateFrame 0
SettingsManager.U32Set GSExtrapolationTime 1200
SettingsManager.U32Set GSInterpolationTime 100
SettingsManager.U32Set GSPerfLogAtPlayerCount 30
SettingsManager.stringSet GSPlayerName "playername"
SettingsManager.boolSet GSShowNetGraph 0
SettingsManager.boolSet GSUseObjectCache 1
What you have do to disable client side prediction is to add "SettingsManager.boolset GSUseClientSidePrediction 0" (without quotes) as a new line into that file (watch out, those commands are case-sentive!). Also remember to make that file read-only after saving the changes because if you don't, it will get overwritten when shutting down the server thus reverting back to default.

We tried this on my dedicated server located in a datacenter (not LAN, so there was a latency of at least 60-65ms) and proofed it by strafing side-by-side while one player shot the other (just like in a video shown at youtube). Without that tweak, one had to aim slightly behind the other player's model to get a hit detected. Afterwards, one could aim directly at the model and the hits were detected.

Free free to spread this information - i do not want any credit if you do so :)


Greetings,
redilS
Hope that helps some. I can ask more question is you let me know what to ask. Or you can join BF2s.com forums and ask yourself if ya want.

Later
R

Posted: 2007-03-07 15:15
by El_Vikingo
If you have an average ping of a 100ms, then the thing shoud be like this; GSDefaultLatencyCompensation 0.100000

Of 50ms ;GSDefaultLatencyCompensation 0.050000

And so on, I can't remember the source (maybe tweakguides).

Posted: 2007-03-07 15:31
by Rico11b
El_Vikingo wrote:If you have an average ping of a 100ms, then the thing shoud be like this; GSDefaultLatencyCompensation 0.100000

Of 50ms ;GSDefaultLatencyCompensation 0.050000

And so on, I can't remember the source (maybe tweakguides).

Yes it is tweakguides. I have an average ping of 26 when I play on about 3 or 4 servers so ping times aren't an issue for me. Yes I've adjusted and played with those settings and there doesn't seem to be much help with that. I've used from 0.0260000 all the way up to 0.050000 He is a copy of what I was using last night on Warrior Nation while testing. I had a ping of 26 on that server as well.

rem
rem Settingsfile automatically saved by bf2
rem
SettingsManager.boolSet GSClPunkBuster 1
SettingsManager.floatSet GSDefaultLatencyCompensation 0.035000
SettingsManager.boolSet GSExtrapolateFrame 1
SettingsManager.U32Set GSExtrapolationTime 400
SettingsManager.U32Set GSInterpolationTime 35
SettingsManager.U32Set GSPerfLogAtPlayerCount 30
SettingsManager.stringSet GSPlayerName "Rico11b."
SettingsManager.boolSet GSShowNetGraph 0
SettingsManager.boolSet GSUseObjectCache 1

I rounded up to 30 and added 5 just to make sure I wasn't under what my ping might go to while testing. My ping never got about 32. Still didn't seem to have much affect. YES IT DID HAVE AN EFFECT, JUST NOT A VERY NOTICABLE ONE. All this still needs more solid testing in a controlled enviroment to actually calculate the best settings based on ping times and current lag issues. I also adjusted GSExtrapolationTime from 250 all the way up to 1200 (default), and I have no idea what effect that is supposed to have. If it has an effect I must have missed it. Help me I'm drowning :)

Posted: 2007-03-07 16:19
by Rico11b
I asked how he found out about this kind of stuff. He's what he had to say.
redilS wrote: I found that setting while crawling through the plain-text strings inside bf2w32_ded.exe and bf2.exe and remembered those tweaking sites reporting about anti-lag/hitbox tweaks. By that time i realized what the 'GS' prefix means and tried a few of the settings i gathered from crawling through the executeables, whereas messing around with GSUseClientSidePrediction gave me the best (and noticeable) result.

Ah and yes, i am admin on my servers. I do have full root access so i am able to try whatever i want :)


Greetings,
redilS
Hope this may help some admins if they wanna test this out.

Posted: 2007-03-07 16:31
by eggman
Thanks for the research!

We'll try the disableclientside stuff during v0.6 development and see how it goes.