BattleField 2 The following people contributed to this publication: Björn Christoph, Ken Creedon, Stuart Dunsmore, Daniel Ferguson, Tony Ray, Jason Roman, Paul Seale, and Hendrik Thole. This publication is © Copyright 2003-2010 by Even Balance, Inc. All Rights Reserved. PunkBuster™ Software and the PunkBuster Logo are trademarks of Even Balance, Inc. Other trademarks referenced by this publication are the property of their respective owners.

 Introduction What PunkBuster Is All About Quick Start Guide The Basics Enabling and Disabling PunkBuster Finding PunkBuster Enabled Servers Updating PunkBuster Commands and Settings Using PunkBuster to the Fullest Screen Capture Facility PunkBuster Player Power The Name Registry Remote Logging Facility Violations Frequently Asked Questions

 This publication is for Players of online games who are interested in using or finding out more about the PunkBuster Anti-Cheat system.  This publication is meant to document PunkBuster for the following games: Battlefield 2 by EA Games.  PunkBuster editions for other games may vary from the edition described herein. A great effort has been made to make this publication useful for those new to PunkBuster and also for advanced users of PunkBuster.  Any comments or suggestions will be gladly received via email to docs@evenbalance.com. If you wish to learn about using the PunkBuster Server software for running a game server, please see our related publication entitled 'PunkBuster for Server Administrators'.

 From the main game menu, choose Multiplayer then Join Internet to get to the In-Game Server Browser.  On the In-Game Server Browser screen, make sure the 'PunkBuster' button is checked. If not, check it to enable PunkBuster. The In-Game Server Browser You are now ready to join any servers that are running PunkBuster. There is a small PunkBuster logo to the left of the servers that are PunkBuster Enabled.  When PunkBuster needs to give you information, it will appear at the top of your playing screen briefly and then scroll off he top of the screen.  If you wish to review previous messages, press the tilde (~) key to bring down the game console.  From inside the game console, use the 'PageUp' and 'PageDown' keys to scroll the console text up and down if necessary.

 From the game's main screen, clicking 'Multiplayer' moves to the in-game Server Browser and Selection Screen.  In the bottom portion of this screen will be a check box.  Click this button to toggle the current status of PunkBuster.  There is no additional cost involved for using PunkBuster in a personal, non-commercial environment.  If you are playing in a prize tournament or any event (whether over the Internet or in a LAN environment) that charges an entry fee and/or awards prizes to participants, the organizers of that event are required to obtain a commercial license with Even Balance, Inc. if they wish to utilize PunkBuster Software during the event.  More information about this requirement can be obtained by emailing license@evenbalance.com NOTICE: PunkBuster cannot be Disabled immediately during the middle of gameplay.  Choosing to Disable PunkBuster by any methods described above will set PunkBuster into Disabled mode but that does not take effect until the entire game is restarted.  Neither Players nor Server Admins can simply turn PunkBuster off and on during the middle of gameplay.  Once PunkBuster Client and/or Server has been Enabled for a gaming session, it stays Enabled regardless of how many times the Enabled/Disabled mode is toggled.  When the game is exited, the current PunkBuster status is saved and the next time the game is started, PunkBuster will initialize to the mode in which it was last set, either Enabled or Disabled.  That means players can Enable PunkBuster once and then never worry about it again if desired, as it will continue to be enabled from that point on even when the Game is exited unless specifically Disabled at some later point in time.

 Most Players use some type of Game Browser to find Game Servers to join.  The Game itself has a very nice integrated Game Browser built in so that Players can usually find what they are looking for very easily.  Some Players prefer to use external Game Browsers such as the ones produced by GameSpy, Pingtool and Kali. The In-Game Server Browser For Players who use the in-game browser, a column is displayed that specifically shows whether or not each server listed currently has PunkBuster Enabled. For external Game Browsers, some configuration may be required to display and/or filter servers based on whether or not they currently have PunkBuster Enabled.  First, a little background: while a Game Server is running, it sends a "heartbeat" packet of information every few seconds to several Master Game Servers located around the world.  This heartbeat packet tells the Master Game Servers that the Game Server is running, how many players are currently connected, and the current status of all sorts of things such as the Name of the server, the maximum number of players and what is commonly referred to as the "server rules".  One of the server rules returned by Game Servers is called sv_punkbuster.  If sv_punkbuster is set to "1" for a particular Server, then PunkBuster is Enabled on that Server.  Consult the documentation for your chosen external Game Browser to determine how to display and/or filter servers based on the value of sv_punkbuster.

 One of the core aspects of the PunkBuster system is the automatic update feature.  As new versions of PunkBuster files are made available for download from our Internet-based Master PunkBuster Servers, the PunkBuster software running on Players' and Admin's computers will attempt to retrieve those new versions and perform an automatic "self-update" function in the background without interrupting gameplay.  For most users, this occurs automatically and seamlessly.  Since PunkBuster Servers require all connected Players to be running identical versions of all PunkBuster files in order to be authenticated for "clean" online play, the automatic update facility inside PunkBuster is an important component of the overall system.  PunkBuster will retain older versions in case there is ever a need to connect to a Server that is still running old versions of the PunkBuster software. All PunkBuster update files are stored in special compressed HTM files and can be opened with any Internet Web Browser.  We have designed and implemented a robust method for securely delivering updates from our Master PunkBuster Servers to Regular PunkBuster Servers and then on to computers that have Enabled the PunkBuster Client software.  Great care has been taken to design and develop the system such that only authentic PunkBuster files will ever be accepted and used by the PunkBuster System during the auto-update process. There may be times, however, when it is necessary to manually update a PunkBuster System.  For instance, if there is no Internet Access available and multiplayer gameplay is occurring in a LAN environment.  Or perhaps, there is a temporary routing problem causing locally running PunkBuster software to not be able to "find" any Master PunkBuster Servers whereby an update can be obtained.  There may also be times that the PunkBuster Team offers pre-release beta versions of PunkBuster software for manual download so that it can be tested before broad distribution.  For whatever reason that may come up that requires a manual update, we have prepared a separate section, called 'Updating PunkBuster' on our website at Even Balance.

 The use of PunkBuster commands and settings is optional.  This information is provided for advanced users who want to get more out of the PunkBuster software or who want to customize it.  A brief overview of using commands and settings is given, as well as a reference list of all available commands and settings along with explanations of their correct use. The most common way to enter a command or to check / change a setting in PunkBuster is to bring down the Game Console and type away.  However, since PunkBuster is directly integrated into the game, PunkBuster commands and settings can also be treated just like any other game command or setting in that they can be placed into game script files, bound to keystrokes and used in aliases. The easiest way to quickly test that your PunkBuster system is properly installed, Enabled, and working is to type "PB_VER" into the game console.  If PunkBuster is working properly, it will respond by displaying the version number that is currently installed and running.  If there is no response, then PunkBuster is either currently Disabled or there is a problem that may require some troubleshooting.  Consult the FAQ (Frequently Asked Questions) Appendix later in this publication for suggestions on ways to troubleshoot this type of problem. Some commands are standalone and others may require or accept additional parameters.  For example, the command "PB_VER" is standalone, typing in "PB_VER" tells PunkBuster that you would like to know the currently running Version number.  The command "PB_LOAD" takes one parameter (a filename), typing in "PB_LOAD ABC.CFG" tells PunkBuster to load the configuration file called "ABC.CFG". PunkBuster settings, sometimes also called variables, hold numbers or textual information that PunkBuster uses while it is operating.  Changing PunkBuster settings will affect the way PunkBuster runs in specific ways.  All PunkBuster settings start out with default values that are the recommended setting values for most users.  To find out the current value of a setting, simply type in the name of the setting all by itself.  For example, typing "PB_LOGTOFILE" will cause PunkBuster to display the current value.  Also displayed is the allowable range that the value can contain.  This particular setting can be set either to 1 or 0 and 0 is the default.  To set it to 1, type in "PB_LOGTOFILE 1", PunkBuster will then respond by showing the setting name along with its new value.  Trying to set a PunkBuster setting outside of its allowable range will cause PunkBuster to give the setting the closest allowable value to what was originally specified. Listed below (in alphabetical order) is a list of PunkBuster Commands and Settings along with a general description and usage instructions where necessary. PB_GetSs Captures and saves a screen shot based on the parameters found in the PB_SSOPTIONS setting listed below; described more fully in the Screen Capture Facility section PB_Kick [slot #] Requests that a specific player be removed from the game; this command is part of the PB Player Power facility PB_Load [File Name] Loads the specified PunkBuster config file which can contain commands and/or setting changes PB_MyGuid Displays your PunkBuster GUID and your Game CDKey (Note: Cdkey is not shown if currently connected to a server); The GUID is used by PunkBuster to identify players and it is based on the CDKey entered into the game PB_PList Requests that the connected PunkBuster Server display a list of players and their current status to the console PB_Power Requests that the connected PunkBuster Server display a list of players and their current PB Player Power status to the console PB_SsOptions Sets and/or displays the parameters used for taking local PunkBuster Screenshots; used by the Screen Capture Facility PB_Ver Displays the currently running version of the PunkBuster Client software PB_WriteCfg Writes the current values of the PunkBuster settings to the local hard drive (creating or overwriting files called pbcl.cfg and pbcllog.cfg) in such a way that they will be loaded automatically the next time PunkBuster starts; if you make changes to your PunkBuster settings and you want the changes to be permanent, then enter this command after making the changes PB_AutoExec [Filename] Holds the name of a game script file that is to be executed each time a server is joined; This is useful if you need to reset game settings each time you join a server PB_Lan [0=no, 1=yes] Defaults to 0; when set to 1, PB will behave as though it has no Internet access PB_LogAddr [Address / Internet Hostname] Holds the address of the machine to which remote logging is sent (default is empty meaning the feature is not used) PB_LogMD5Tool [0=no, 1=yes] Setting defaults to 0; setting to 1 will cause PB to log all MD5Tool file check query replies sent to connected PB Servers during gameplay PB_LogPort [Port #] Holds the listen port of the machine to which remote logging is sent (default is 0 meaning the feature is not used) PB_LogPw [Password] Holds the password required to send logging output to a listening remote logging machine PB_LogToFile [0=no, 1=yes] When set to 1, PunkBuster will log activity to the pbcl.log file; the default is 0 which meansonly errors are logged PB_LogUser [Username] Holds the username required to send logging output to a listening remote logging machine PB_MsgPrefix [New Prefix] Holds the text that PunkBuster displays in front of every output line displayed; the default is "PunkBuster Client". PB_Security [0=no, 1=yes] When set to 0, PunkBuster will accept all "update" files without verifying that they are authentic; the default is 1 which should not normally be changed except for LAN environments where there is no Internet Access and/or you fully trust the Servers you are connecting to PB_Sleep [Period] Holds the period of time (milliseconds) that PunkBuster "sleeps" between processing cycles; the default is 60; lower numbers will cause PunkBuster to process events more times each second which also has the effect of increasing the bandwidth used by PunkBuster; Players with a modem connection will probably want to set this as high as possible PB_SsLog [0=no, 1=yes] When set to 1 (which is the default), PunkBuster will create an entry in the pbsslog.htm log file every time a PunkBuster Server requests a screenshot to be taken and delivered; this log file is designed to be viewed with a web browser and contains information about the size of the image, when it was taken, and also a digital signature of the image itself PB_SsSave [0=no, 1=yes] When set to 1 (0 is the default), PunkBuster will save all Server-requested Screenshots to the local hard drive so that Players can see the actual screenshots that have been delivered to Game Servers that they were connected to; if this setting and the PB_SsLog setting are both set to 1, then the pbsslog.htm log file will automatically have links created for local viewing directly from the log file PB_System [0/1] PB can conflict with other software on some systems due to vigorous memory scanning; Changing this setting may reduce or eliminate conflicts if you have problems on your system; this setting can only be changed before connecting to a server by editing the pbsys.cfg file in your PB folder. This file is created the first time you run PB.

 PunkBuster issues several types of messages during gameplay.  These will appear at the top of the playing screen for a few seconds before scrolling off.  All messages also are logged to the console and old messages can be reviewed by bringing down the game console.  The game console can be scrolled up or down by using the PageUp or PageDown keys respectively.  During almost every game, there will be periods of inactivity where players are not actively playing the game.  This is a good time to review previous PunkBuster messages to see if you missed any important messages while playing. The most useful PunkBuster command to get acquainted with is the pb_plist command.  By occasionally issuing a pb_plist command, you can view the PunkBuster status of all players in the game.  The status of each player can either be INIT, UPDT or OK.  The INIT status means that the PunkBuster Server is still initializing that player’s connection.  The UPDT status indicates that the PunkBuster Server is updating that player’s PunkBuster installation.  Other information is displayed by the pb_plist command such as the Auth Rate and RecentSS columns.  The Auth Rate of a player is how many times per minute the player’s PunkBuster has successfully authenticated with the PunkBuster Server.  Once each player has reached OK status, then the Auth Rate should never fall below 2.0.  If it does, that would indicate that PunkBuster is not functioning normally for some reason.  The RecentSS column indicates how many screenshots the PunkBuster Server has requested from each player during the past few minutes. After each map ends and a few seconds after the next one is starting, the PunkBuster Server will report some information to connected players about the Server log files.  This information gives players the filenames of the log files and also the Digital Signatures of the log files saved at the Server.  This is useful mostly in organized matches where Server Admins provide logs to administrators after each match.  The Digital Signatures that are reported to players keep the Server Admin or anyone else from being able to change or edit the log files without altering the reported Digital Signatures.  If a log file is changed at all, then its Digital Signature will no longer match what was broadcast to all players in the game. We have for download, on our website at evenbalance.com, a free utility called pbmd5 that will compute the Digital Signature (also known as MD5) of any file.  If you would like to "save" the Digital Signature of log files reported by a Server, we recommend bringing down the game console and then taking a screenshot of your playing screen while that information is displayed.  If desired, the PB_GETSS command can be used to save the screenshot.

 The PunkBuster Screen Capture Facility allows Server Admins to request actual screenshots from players' screens while they are playing.  The screenshots are transferred over the network and saved by the Server Admins either for private use or possibly for publication to a website.  PunkBuster limits the filesize of the screenshots by setting a maximum number of pixels that can be captured.  PunkBuster also limits how many times a PunkBuster Server can request a screenshot within a few minutes to prevent Server Admins from taking screenshots one after another continuously.  All PunkBuster screenshots are saved in the PNG image format and therefore have the ".png" extension.  This format is similar to the JPEG format but does not reduce image quality during compression.  Most newer Web browsers can view PNG files directly.  Programs that convert PNG format images to and from other formats are widely available.  More information about the PNG format can be found at the PNG-Homepage. There are two PunkBuster settings that can be used by players to track the activity of PunkBuster Servers that request screenshots from their system.  The settings are called PB_SSLOG and PB_SSSAVE.  If PB_SSLOG is set to 1 (which is the default), then PunkBuster will keep a log file on your hard drive in the "pb" folder called "pbsslog.htm".  This log can be viewed using any web browser such as Netscape or Internet Explorer.  The log contains information about each screenshot that was requested by a PunkBuster Server.  If PB_SSSAVE is set to 1 (note that 0 is the default), then PunkBuster will save the actual screenshot to your hard drive after the screenshot image has been transmitted to a PunkBuster Server.  Note that screenshot images vary in size usually between 40 and 80 thousand bytes.  If you play frequently, saving Screenshots to your hard drive can consume a lot of disk space after only a few days.  We don't recommend setting PB_SSSAVE to 1 unless you are sure that you will routinely view the screenshot images and remove them if they start to take up too much disk space for your system. If PB_SSSAVE is set to 1, PunkBuster saves the screenshots into the folder called "scrnshot" inside the "pb" folder.  The filename used is based on the date that the screenshot was taken.  For example, the first screenshot taken on March the 15th will have the filename "0315_000.png".  The next one would have "0315_001.png", etc.  If you exit the game and play again later the same day, PunkBuster will start over at 000 and overwrite the images taken in earlier sessions.  Please keep this in mind if you intend to keep all of your screenshot images. When PunkBuster writes log lines to the "pbsslog.htm" file due to a screenshot request from a connected PunkBuster Server, the log lines will have the following format: "

 This facility is not associated with the votekick system that is built into the game itself. Both systems work independently of each other and can be used together or be enabled/disabled separately depending on the desires of each PB Server Admin. PB Player Power allows PB Server Admins to empower their trusted regular players with more weight in a new elective process used to remove an undesirable player from the game server. Frequently, troublemakers who attack teammates, block doorways, or otherwise ruin the gameplay are able to get around other methods of keeping them off of the server. This new facility aims to tackle this issue so that gameplay on good public servers doesn't suffer when troublemaking punks show up. The use of this facility by players requires being comfortable with issuing PB Commands. Please refer to the Commands section of this publication for general information on how to access the game console and enter PunkBuster commands. When connected to a PB Server, use the pb_power command to determine if PB Player Power is enabled or disabled on that server. The first line of output shows this indication. Below that line, a list of all connected players is displayed showing each player's PB slot #, power rating and also the number of power points that have been applied against each player (if any). Once the number of power points applied against a player has reached the limit for the server, then that player is removed from the game and won't be allowed to rejoin until several minutes have passed (the exact amount of time is set by each PB Server Admin). Notice that if any players are shown to have 100 power points, then those players are considered deputies to the PB Server Admin. If one or more deputies are connected, then only deputies are able to use the PB Player Power facility. When no deputies are present, all players on the server may each apply their power points against other players. To apply your power points against a player that you want removed from the game, use the pb_kick command. You must specify the slot # of the player who you wish to have removed. The slot # of each player is shown in the list displayed by the pb_power command described above. For example, if you wish to remove the player in slot #5, then press your tilde key (~) to bring down the game console, then enter "pb_kick 5" (without the quotes), press the Tab key, and then press the Enter key. The PB Server will ignore your pb_kick commands if there are one or more deputies connected or if you enter the command more frequently than once per minute. There is no duration for the pb_kick command. It stays in effect until you leave the server, or the target player leaves the server or until you specify a different player with the pb_kick command. That means that your power points can only be applied against any one other player at a time. Players should be aware that when power points are applied against another player, the event is reported to all players on the server by PunkBuster. The report includes the target player's slot # and name as well as the name of the player who issued the pb_kick command and the associated number of power points applied.

 Even Balance, Inc. offers a premium, optional Name Registry hosting service for Players, Clans, Guilds and other groups who wish to take advantage of our facility for online identity verification.  Registered names are password protected so that only persons knowing the correct password will be designated as *Registered while playing on PunkBuster-Enabled Game Servers.  Subscribers will be able to Register Names either with Partial or Full matching.  Registered Names for Partial matching are designed for groups such as clans, guilds, etc. whose members wear a "tag" (usually at the beginning or end of each member's playing name).  For Partial type Names, the Registered Name can appear anywhere in the player's name to attain *Registered status.  Full matching Registered Names will require an exact match of the playing name to the Name Registration record in order to attain *Registered status. Each Registered Name comes with a descriptive line of text (up to 80 characters) that is provided so that a website, email address, membership requirements, or other information describing the group or person represented by the Registered Name can be displayed to other players during gameplay.  The Name Registry is not exclusive with regards to unique Registered Names.  Different groups / players will be allowed to Register a Name that is already in the Registry.  All Registrations of a unique Name after the first will have a serial number automatically appended to the Name Registration so that different Registrations can be easily distinguished. More information is available on our website at evenbalance.com.

 Even Balance, Inc. will soon be offering a premium, optional hosting service for Players who wish to remotely log screenshot signatures in real time for automatic publication to a fully and openly accessible website.  We will offer a similar service for Server Admins.  Each subscriber gets a separate page and each days' activity is further separated into web pages.  The subscription service is password protected so that players who play on multiple machines can log screenshot signatures from their various playing machines.  When this Service is available, more information will be available on our website at evenbalance.com.