[bf1942] BF2 Autobalance

Forrest Thiessen thiessen at alum.mit.edu
Mon Jun 20 19:56:37 EDT 2005

The only ways I can think of that they can detect changes are:
  (a) the changes affect something that is reported in the GameSpy
status query
  (b) the changes affect a file that is included in some sort of hash
value check

The GameSpy server query protocol includes flags for weapons are
unlocked, and whether ranks are used on the server--so those things will
be visible.  I agree with Brigham that I think it's unlikely that EA
cares about most changes, but in addition to unlocks, I suspect they
will also care about (and delist for) anything that allows ranks to be
used--for example, developing your own stats system is probably ok, but
using it to display ranks in-game is probably not.

PunkBuster checks whether various controlled files have been changed by
checking their hash values; I suspect they're not checking hashes for
Python files right now, but they might in the future.  I recall that
BF1942 and BFV also had an internal hash-checking feature that was put
in before they adopted PunkBuster; I don't know if it still exists in
BF2, but if it does, that might be another thing to worry about, but
again, I'm pretty sure they're not checking hashes on Python files right

I think it's unlikely they will ever add Python-file hash checking in
the future, either: there is presently no way to add any Python
functionality at all, including in mods, without changing the "core"
Python files.  They could conceivably (and I hope they do) add a feature
that, say, scans a "custom" directory and imports any modules it finds
there, so you could add features without messing with the core files. .
. but since Python is a dynamic language, you could always use your
custom files to change methods to objects that they define in the core
files, anyway.  In short, given the nature of Python I don't see how
they can stop people from changing/adding features, even with file hash
checks, unless they want to lock the community out totally.

So, I think Python changes that don't affect information sent back by
the server query protocol are, and will continue to be, safe.


Brigham Stevens wrote:

>There is no way they could detect it, unless they check stuff like that
>with pb or some other type of evil scanner that lived in the server.
>But I'm sure it isn't.
>I'm basically taking the position that EA only cares about weapon
>unlocks for the full game, and I plan on going to town as much as
>possible on any other tweaks such as writing stats, CTF mods, etc.
>[JiF]Mike wrote:
>>So does this tweak fall into the "blacklistable" tweaks?  This is a great
>>idea IMO.  -[JiF]Mike 
>>-----Original Message-----
>>From: Brigham Stevens [mailto:brs at vikingmind.com] 
>>Sent: Saturday, June 18, 2005 2:55 AM
>>To: bf1942 at icculus.org
>>Subject: Re: [bf1942] BF2 Autobalance
>>Yes...I'm pretty sure this worked for me tonight on my server - Nobody on my
>>squad ever got autoswitched. Here is the start of the onPlayerDeath handler.
>>p.getSquadId() returns 0 if they are not in a squad.
>>def onPlayerDeath(p, vehicle):           
>>   if not bf2.serverSettings.getAutoBalanceTeam(): return None   
>>   if p.isCommander(): return None
>>   if p.isSquadLeader(): return None
>>   if p.getSquadId() > 0: return None
>>   # dont use autobalance when its suicide/changes team
>>>Can this be expanded to include Squad member, swapping lone wolf 
>>>players only, or better yet swap unsquaded people first, and if none 
>>>exist, then to swap squad members.  Can be real annoying when your 
>>>playing in a squad and all of a sudden your on the other side.  Quite 

More information about the Bf1942 mailing list