Call of Duty 4 Edition




Last updated November 8, 2010

For the most up-to-date online version of this publication, please visit our website.

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.


Even Balance, Inc.


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.







This publication is for Server Administrators 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: Call of Duty 4 by Infinity Ward.  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.

Since this manual is for Server Administrators, we will assume for the most part that the reader is familar with the Game Console, entering commands, and configuration files.

If you wish to learn about using the PunkBuster Client software for use with playing the game, please see our related publication entitled 'PunkBuster for Players'.




In September of 2000, a handful of online computer game playing enthusiasts became concerned with the increased activity of cheating in online multiplayer gaming.  We decided to do something about the problem.  We were aware that a few attempts had been made in the past by others (including the makers of the games themselves) and that they were all generally considered to have failed for the most part.  We had a vision of a new way to approach the problem and decided to develop an experimental software system to see if our new approach would work.  We believed that once we had submitted and maintained a product for open use that the response from affected online communities would tell us whether or not the experiment was a success.  After several months of growth, much hard work, acceptance, and the appreciated beta testing and support of hundreds of thousands of users, we believe that we have a viable solution to fighting the problem of cheating in online multiplayer games: PunkBuster.

PunkBuster is an automatically self-updating client/server Anti-Cheat software system.  That means that players run the PunkBuster Client software while they are playing online games and also, PunkBuster Server software is running on the game server that players connect to for gameplay.  The PunkBuster system is designed to hold all participants accountable by scanning the game computers looking for known cheats, game hacks, and exploits similar to the way Anti-Virus software would scan a computer looking for a virus.  PunkBuster does not modify any files or settings on your computer even if it detects some type of violation, it reports what it finds and, in some cases, will remove offending players from the current game.  PunkBuster is optional.  A Server Admin who decides to run PunkBuster on his or her Game Server is simply choosing to limit players on said Game Server to players who have chosen to enable PunkBuster on their playing computers.  You do not have to enable PunkBuster if you are uncomfortable with the idea of such software.  However, PunkBuster is not "spyware" nor is it a trojan - it is designed for groups of honest people to use together in an effort to keep out players who are unwilling to subject their system to an objective third-party software system scanning their computer during gameplay.  The activities performed by PunkBuster are generally described on our website and we have also developed and published a Privacy Policy Statement.  We take the privacy and security of our users and their computers very seriously and there is no featured provision (documented nor undocumented) whatsoever in our software whereby anyone outside of your computer can gain control of your computer or view / change your private information with or without your knowledge.  Additionally, PunkBuster does not transmit your private data files to any other computer nor keep any type of centralized database that tracks any information about your personal files.  PunkBuster basically just looks for known cheats and game-hacks while you are playing a PunkBuster enabled game in an effort to authenticate your installation as "clean" for the purpose of consentual multiplayer online gaming.

In mid-2001, a privately funded corporation, Even Balance, Inc. was formed to handle the commercial application of the PunkBuster system.  We plan to offer several types of products and services to online gaming communities that are built up around the games we support.  We are actively seeking relationships with game software developers who would like to have us provide anti-cheat support for their online multiplayer game titles.

There is no cost for a personal, non-commercial license to use PunkBuster software.  Our End User License Agreement must be accepted on-screen before PunkBuster is installed.  If you wish to use PunkBuster in any type of commercial environment or in connection with any commercial event, a separate commercial licensing arrangement must be obtained from Even Balance, Inc.  To find out more about commercial licensing, send an inquiry via email to license@evenbalance.com.

More information about Even Balance, Inc. and the PunkBuster system can be found on our website at evenbalance.com.




If you create a Game Server using the In-Game Browser screen, make sure the PunkBuster setting is set to 'Yes' before proceeding to create the Server.  If running the Game Server strictly in console mode, enter PB_SV_ENABLE to ensure that the PunkBuster Server software is enabled before proceeding.  When PunkBuster is Enabled for the first time, it will begin operation using the default configuration.  This configuration has been designed to work with all types of game servers.  Optimizations can later be made by adjusting the PunkBuster settings described later in this publication to better match the server connection speed, user load, and Admin preferences.  The following are a few options that can greatly enhance server cheat protection with a relatively easy learning curve.

Once PunkBuster has been enabled, automatic screenshot capturing can be turned on by setting PB_SV_AUTOSS to 1.  To make this (and/or most other PunkBuster setting changes) permanent, enter the command PB_SV_WRITECFG.  This will save most current PunkBuster settings to the PunkBuster configuration file "pbsv.cfg".  PunkBuster loads this configuration file every time it is run.  When the automatic screenshot capturing has been turned on, screenshots will begin to be routinely taken of all the servers’ connected players and stored in the "svss" folder.  The default limit to the number of captured screenshot files is 100 which can be changed with the command PB_SV_SSCEILING. Once the limit has been reached, the PunkBuster server will begin to overwrite the current files starting with the lowest numbered file first in an endless cycle.




Although there is code inside the Game to allow PunkBuster to be integrated tightly with the Game, the PunkBuster software is completely separate from the Game software.  It resides in its own folder called "pb" inside the game folder.  When CoD4. is started for the first time, PB will copy its files to the working directory for the game. It will use this new folder from then on, and an admin will need to use this folder for all future work with PB. \

There are only a few files in the "pb" folder when PunkBuster is first installed.  When the game is first launched after PunkBuster has been installed, PunkBuster will copy over to the working directory and add new files and folders for later use.

The "pb" folder normally contains the following file types:

  • Files with a "dll" or "so" extension (example: pbcl.dll) are PunkBuster system files.  Removing any or all of these files may cause your PunkBuster system to stop working.  Modifying any or all of these files is a violation of our End User License Agreement and permanently terminates your license (and legal ability) to use our software.
  • Files with a "db" extension are PunkBuster database files.  The PunkBuster databases are automatically created and maintained by the PunkBuster software.  If you delete one or all of these files, PunkBuster will recreate and re-populate them with information obtained from Master PunkBuster Servers if possible.  Modifying any of these files may cause PunkBuster to act in an unexpected manner.
  • Files with a "dat" extension are PunkBuster data files.  They should not be removed or modified.  The PunkBuster system will maintain them automatically.
  • Files with a "log" extension are files into which PunkBuster logs information during the course of using the software.  By default, the PunkBuster Client only logs severe error information to a log.  The PunkBuster Server logs important activity into log files automatically.
  • Files with an "htm" extension are special log files that are designed to be viewed by a web browser such as Internet Explorer or Netscape.
  • Files with a "cfg" extension are configuration files that contain PunkBuster commands and settings.  You can create and modify your own configuration files and have them loaded either automatically or manually.  Details about PunkBuster commands and settings are given later in this publication.  Two specific "cfg" files: pbsv.cfg and pbsvlog.cfg may be used and overwritten by the PunkBuster system under some circumstances.  Each time PunkBuster starts, the pbsv.cfg and pbsvuser.cfg configuration files are loaded automatically. Note that 'File Not Found' messages related to either of these files does not point to a problem or an error. Using the pb_sv_writecfg command will create a pbsv.cfg and overwrite anything that was previously in that file. Admins should create (with any text editor) and use pbsvuser.cfg for PB settings and commands that they don't want to get overwritten with a pb_sv_writecfg command.

PunkBuster also creates subfolders inside the "pb" folder to organize information; the following is a list of these folders and what they contain:

  • The "htm" folder contains htm files that are used during PunkBuster's auto-update system.  Over time and after many updates, this folder may contain old files that may be deleted to recover disk space if desired.
  • The "dll" folder contains various PunkBuster system files obtained during the auto-update process from prior version installations of PunkBuster.  As with the "htm" files described above, old files in this folder may be deleted to recover disk space if desired.
  • The "svlogs" folder contains PunkBuster Server logs.  Log files are named in sequence using an 8 digit number and the ".log" file extension.
  • The "svss" folder contains screenshots (PNG files) and "helper" HTM files that have been captured from Players connected to the Server - the file pbsvss.htm located in this subdirectory is a sequential index (log) that can be used to quickly and easily view captured screenshots.

All interaction with PunkBuster is performed inside the game itself.  The PunkBuster Server logs information both to the Game Server Console and PB Server Logs located in the "svlogs" folder.  When you need to issue commands and setting changes to PunkBuster, do so by typing directly into the game's interface / console.  Groups of commands and settings can also be placed into “.cfg” files for easy loading. All PunkBuster Server commands and settings start with the same six characters: "PB_SV_".  Specific PunkBuster commands and settings are described in a subsequent section of this publication.  PunkBuster doesn't care if commands and settings are typed in lower case, upper case, or in some combination ENABLE, enable, and EnAbLe are all the same as far as PunkBuster is concerned.  Any time the PunkBuster Server needs to display a message, the message will be preceded by the words "PunkBuster Server:".



In the game console, type PB_SV_Enable to enable PB.

NOTICE: PunkBuster cannot be Disabled immediately during the middle of gameplay.  Choosing to Disable PunkBuster by any method 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.  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.




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 occuring 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 page on our website designed to help with manual updates.




The PunkBuster WebTool provides the means to remotely administer game servers from any connected computer using a web browser (such as Netscape's Navigator or Microsoft's Internet Explorer). The PunkBuster Server software includes a mini web server that takes input from Web-based forms and translates that input into game commands. This type of access is similar to using rcon (remote console) commands, except it is done through an html interface and works even from computers that do not have the game or PunkBuster installed. Just about anything that can be done at a server's console or via rcon can be achieved easily by using the WebTool. By default, the WebTool is deactivated. The remainder of this section explains how to activate and use the WebTool.

There are five PunkBuster settings associated with the WebTool: pb_sv_httpPort, pb_sv_httpAddr, pb_sv_httpKey, and pb_sv_httpRefresh. The pb_sv_httpPort setting defaults to a value of 0 which means that the WebTool is deactivated. To activate the WebTool, pb_sv_httpPort must be set to a port number between 1 and 65535 that is not already in use by another program on the computer running the game server. Most web servers use port 80. If you choose not to use 80, then it is probably best to use a number that is at least 1024 or higher to avoid conflicts with other software. Once pb_sv_httpPort is set, PunkBuster will respond saying either that it is listening on the specified port number or that there was some problem trying to listen on the specified port number which means that a different port number should be specified. After setting pb_sv_httpPort, you should test the WebTool functionality, if possible, by launching a web browser on the same computer as the game server and enter this URL: http://127.0.0.1:. For example, if you chose port number 8000, then you would enter http://127.0.0.1:8000 for the URL. At this point, you should see the opening login screen for the WebTool.

If you wish to be able to use the WebTool from another computer connected via network to the game server (even across the Internet if desired), then the pb_sv_httpAddr setting needs to be set to hold the routable IP Address of the game server. Please note that the WebTool does not use a secure protocol (such as https) for performance reasons. That means that any information you send from your web browser to the WebTool is sent in plain text (including the Key/Password).

The game server's rconpassword is used to allow remote console access to the game server. By default, the rconpassword is also used for WebTool access. However, if you wish to use a different password for WebTool access, then the pb_sv_httpKey should be set accordingly.

One of the screens available inside the WebTool is the Player List screen. This screen shows the list of players and allows Admins to kick and/or ban players easily. By default, this screen automatically refreshes inside the web browser every 30 seconds to show when players leave or when new players join the game. To change the auto-refresh rate, set the pb_sv_httpRefresh setting accordingly. Setting pb_sv_httpRefresh to 999 will disable the auto-refresh feature for the Player List page.

One of the features of the WebTool allows the Admin to change to a new map by choosing the map name from a drop down list in the web browser. By default, the pb_sv_httpMaps setting is empty which means the standard "official" maps are listed in the dropdown.The map list can be edited with a text editor on the game server. We supply common map/mode/mod in the pbsvmaps.cfg file in the PB folder. You can edit this file to change the list that the webtool displays. The syntax is "MapName" "Mode" "Mod", with no quotes and any amount of whitespace inbetween names.

The Login Screen is where the Web Key is entered for access to the other screens. Remember that the Web Key is the value of the pb_sv_httpKey setting. The three buttons at the bottom of the page take you to the various screens available inside the WebTool provided that the Web Key is entered correctly. These three buttons appear at the bottom of all screens inside the WebTool to make it easy to navigate to the various areas.

The Command Screen is provided so that commonly used game commands can be issued very easily. The name on each button corresponds to the exact name of the game server command that it represents. This is also the screen with the map list drop down to make changing maps very easy. If you wish to issue a specific game command that is not covered by one of the buttons, enter your desired command into the "To console->" field and then click the "To console->" button to send that command to the game server.

The map list can be edited with a text editor on the game server. We supply common map/mode/mod in the pbsvmaps.cfg file in the PB folder. You can edit this file to change the list that the webtool displays. The syntax is "MapName" "Mode" "Mod", with no quotes and any amount of whitespace inbetween names.

The Player List Screen shows all players and their PunkBuster slot numbers along with the same information displayed by the PunkBuster pb_sv_plist command. The bottom of this screen has buttons to allow you to kick, ban or get a screenshot from a specific player. To perform one of these actions, first click the button corresponding to the slot number of the player you wish to reference. That player's information will then automatically be filled into the Slot # and GUID fields at the bottom of the screen. If you plan to kick or ban that player, you may edit the Reason field and if kicking, the Kick Minutes field which defaults to 2 minutes. Press the appropriate button to take action. Note that pressing the pb_sv_getss button will cause the PB Server to request a screenshot from the referenced player. However, screenshots are not viewable through the WebTool interface at this time.

The PB Settings Screen is used to change PunkBuster settings. Simply change the value of one or more settings and click the "Update" button at the bottom of the screen. Except for the Web Key field, the field tags correspond exactly to the PunkBuster Server's setting names. Please note that the behavior is the same as changing PB Settings from the server console in that they are not saved to the PB config files until/unless you issue a pb_sv_writecfg command after making the change. There is a button for this command on the Commands Screen (described above). If you change a PB Setting and want PunkBuster to "remember" the new value even after the server is exited, then you should issue a pb_sv_writecfg command after making the change. You should also be aware that the WebTool settings can be changed on this page. If you change the Web Key, the Port number and/or the Address values, then that will affect your current WebTool session. In that case, be prepared to retype any new URL into your web browser and start over with the Login process to continue using the WebTool.




Some commands are standalone and others may require or accept additional parameters.  For example, the command "PB_SV_VER" is standalone.  The command "PB_SV_LOAD" takes one parameter (a filename), typing in "PB_SV_LOAD ABC.CFG" tells PunkBuster to load the PB configuration file called "ABC.CFG".

Most Server Admins remotely control their game servers via the admin facility built into the game.  While the PunkBuster Server is also addressed this way, due to limitations of the game engine no PB Server command will display a response.

Note that every PB Server Command and Setting must be entered while logged in as administrator, and "admin" must be in front of every command so that it is executed on the server.

Most Server Admins will not use the PB_SV_LOAD command, but rather will use the game-specific exec command so that configuration files can be loaded that have both Game and PunkBuster commands and settings changes.  Configuration files loaded by the PB_SV_LOAD command may contain only PunkBuster related commands and settings.

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 values for most users.   For example, "PB_SV_AUTOSS" can be set either to 1 or 0.  To set it to 1, type in "rcon PB_SV_AUTOSS 1".  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_SV_AutoUpdBan [0/1]
Set to 1 (defaults to 0) if you want PB to automatically update the permanent ban file (pbbans.dat) after each change to the banlist in memory

PB_SV_BadName [grace_seconds] [text_filter]
Adds a bad name to the list of bad names for the server to disallow in player names

PB_SV_BadNameDel [slot #]
Deletes a bad name from the list of bad names

PB_SV_BadNameList
Displays the current bad name list for the Game Server; see the section dealing with the Player Name Management Facility

PB_SV_Ban [name or slot #] [displayed_reason] | [optional_private_reason]
Removes a player from the game and permanently bans that player from the server based on the player's guid (based on the cdkey); the ban is logged and also written to the pbbans.dat file in the pb folder

PB_SV_BanEmpty
Empties the current ban list stored in memory

PB_SV_BanGuid [guid] [player_name] [IP_Address] [reason]
Adds a guid directly to PB's permanent ban list; if the player_name or IP_Address are not known, we recommend using "???"

PB_SV_BanList [optional_search_text]
Displays the list of bans in the console, including kicks with a temporary ban; if the [optional_search_text] parameter is specified, then only bans/kicks that include the search text are listed (useful for searching for a specific name / guid).

PB_SV_BanLoad [optional filename]
Loads a PB Ban List from the specified file; if no filename specified, then pbbans.dat is loaded

PB_SV_BanMask [IP Address / Subnet Mask]
Permanently bans players from joining the server from the specified IP Address / Subnet Mask; for example: issuing PB_SV_BanMask "12.34." will cause PB to deny access to all players trying to join from an IP Address that begins with "12.34."; These bans are written to the pbbans.dat file just like bans issued with the PB_SV_Ban command

PB_SV_Disable
Disables the PunkBuster Server Software - the disabling does not take effect until the game server is exited and restarted

PB_SV_Enable
Enables the PunkBuster Server Software

PB_SV_GetSs [player_name_or_slot#]
Sends a request to all applicable connected players asking for a screen shot to be captured and sent to the PB Server; to specify a player name or substring (as opposed to slot #), surround the text with double-quote marks

PB_SV_IPGuard [IP Address]
The PunkBuster Server automatically adds suspicious IP Addresses to the IP Guard list when players join with a non-functioning PunkBuster client; Players joining from a guarded IP with an old version of PunkBuster are removed from the server; The PB_SV_IPGuard command allows admins to add their own suspicious IP Addresses to the list

PB_SV_Kick [name or slot #] [minutes] [displayed_reason] | [optional_private_reason]
Removes a player from the game and won't let the player rejoin until specified [minutes] has passed or until the server is restarted, whichever comes first - kicks are not written to the pbbans.dat file but they are logged and will show up in the output from the pb_sv_banlist command

PB_SV_Load [File Name]
Loads the specified PunkBuster configuration file which can contain PunkBuster commands and/or setting changes

PB_SV_NameLock [GUID or partial match] [Name to Lock]
Causes the PunkBuster Server to kick players wearing a locked name unless the player's GUID contains the specified GUID or partial match associated with a locked name; NameLocks are not stored to disk automatically so Admins should add these to the pbsvuser.cfg file in order to have NameLocks extend to future server sessions

PB_SV_NameLockEmpty
Empties the list of NameLocks in memory

PB_SV_NameLockList
Displays the list of NameLocks to the server console

PB_SV_NewLog
Causes PunkBuster to close the current PunkBuster log and open a new one

PB_SV_PList
Displays a list of connected players and their current status

PB_SV_Power [slot #] [power rating]
Adds player in specified slot # to the locally stored PB Player Power database with the specified power rating.

PB_SV_PowerList [filter]
Displays a list of Power Players in the database; if filter is specified, then only entries where the filter is either in the guid and/or name fields are displayed

PB_SV_PowerPoints [power slot #] [points]
Changes the number of Power Points assigned to a Power Player in the database; use the PB_SV_PowerList command to get the power slot #

PB_SV_ProtectName [Unique ID] [Registered Name]
Protects the specified PunkBuster Registered Name on the local server so that players who wear the protected name without having the correct Registration Credentials will be removed from the server

PB_SV_ProtectTag [Unique ID] [Registered Tag]
Protects the specified PunkBuster Registered Tag on the local server so that players who wear the protected tag without having the correct Registration Credentials will be removed from the server

PB_SV_ReBan [slot #]
Rebans a player who has been mistakenly Unbanned with the pb_sv_unban command; use pb_sv_updbanfile to update the permanent ban file after using this command

PB_SV_Task [X] [Y] [command]
Adds a task to PB's Task List; The Task will be executed X seconds after entry and every Y seconds thereafter; use -1 for Y if a one-time task is desired; this can be used to execute game server commands as well as PB commands

PB_SV_TaskDel [task slot #]
Removes the task from PB's Task List that corresponds to the specified task slot #

PB_SV_TaskEmpty
Empties the list of Tasks in memory

PB_SV_TList
Displays a list of PB Tasks along with a task slot # for each task

PB_SV_UnBan [slot #]
Unbans a player from the ban list stored in memory; use pb_sv_updbanfile to update the permanent ban file after using this command

PB_SV_UnBanGuid [guid]
Unbans a guid from the ban list stored in memory; use pb_sv_updbanfile to update the permanent ban file after using this command

PB_SV_Update
Forces the PB Server to attempt a PB software update even if no players are currently connected

PB_SV_UpdBanFile [optional filename]
Updates the specified ban file (pbbans.dat is used if none specified) with regard to recent unbans/rebans

PB_SV_Ver
Displays the currently running version of the PunkBuster Server software

PB_SV_WriteCfg
Writes the current values of the PunkBuster Server settings to the local hard drive (creating or overwriting a file called pbsv.cfg) in such a way that they will be loaded automatically the next time the PunkBuster Server starts; server admins who wish to manage multiple config files for different situations will usually not use this command at all

PB_SV_AutoSs [0/1]
Set to 1 (default is 0) if you want the PB server to regularly retrieve screen shots from connected players

PB_SV_AutoSsFrom [Seconds]
Minimum number of seconds (default is 60) PB will wait before requesting a screen shot after the previous request from each player

PB_SV_AutoSsTo [Seconds]
Maximum number of seconds (default is 1200 = 20 minutes) PB will wait before requesting a screen shot after the previous request from each player

PB_SV_ExtChar [0/1]
The default setting of 0 tells PunkBuster to disallow extended ASCII Characters in player names; for the purposes of this command, characters that cannot be easily entered with simple keystrokes are considered extended

PB_SV_GameAuth [0/1]
The default setting is 1. When set to 0, this tells PB that the server is currently not authorizing players with the central Internet Authorization system; while this setting is 0, the PB Server will not kick players and will display a message to that effect once per minute to all players; once the PB Server sees that players are getting authed, it will set this to 1 automatically; this is useful for times when the auth servers are down and admins don't want to disable PB; when a PB Enabled server is not authing players (including LAN servers), PB will not operate in a normal fashion

PB_SV_HttpAddr [IP Address]
The IP Address of the computer running the PunkBuster WebTool; if this setting is left empty ("" which is the default), then the WebTool will only operate properly when used with a web browser running on the same machine as PunkBuster itself (i.e. using 127.0.0.1 as the IP address)

PB_SV_HttpKey [Key (password) for WebTool use]
The Key or Password used by the WebTool to limit access to its features; if this setting is left empty ("" which is the default), then the game server's admin password will be used instead; if both are empty, then the WebTool will not be usable at all

PB_SV_HttpPort [Port Number]
The TCP port number used by the WebTool's http server; this setting defaults to 0 which means the WebTool is deactivated

PB_SV_HttpRefresh [Number]
The number of seconds between auto-refreshes of the Player List screen inside the WebTool; setting this to 999 means that the page will not auto-refresh at all -->

PB_SV_KickLen [Minutes]
The number of minutes (default is 2) a player will be kept from being able to rejoin after getting kicked by PunkBuster

PB_SV_LanMask [IP Subnet Mask]
This setting is used for Internet Servers that also have local LAN game clients connecting; it should be set to hold the subnet of the LAN; for example, if the LAN IP Addresses are 192.168.1.x, then set pb_sv_lanmask to 192.168.1

PB_SV_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_SV_LogCeiling [Number]
The highest serial number (default is 1000) that PunkBuster will use in numbering its log files before starting over at 1

PB_SV_LogNext [Number]
The next serial number that PB will use to name a PB log file; this setting is automatically maintained by PunkBuster and is incremented after each map change by the Game Server as PB opens a new log file

PB_SV_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_SV_LogPw [Password]
Holds the password required to send logging output to a listening remote logging machine

PB_SV_LogUser [Username]
Holds the username required to send logging output to a listening remote logging machine

PB_SV_MaxConDls [Number]
The maximum number (default is 3) of PB updates that PB will attempt to download at the same time

PB_SV_MaxDlRate [KB/sec]
The (roughly) maximum bandwidth (default is 1 KB/sec) requested per file for PB update downloads

PB_SV_MsgPrefix [New Prefix]
Holds the text that the PunkBuster Server displays in front of every output line displayed; the default is "PunkBuster Server"

PB_SV_NoGuidGrace [Seconds]
Holds the number of seconds PB will wait (default is 1) before kicking players who join without having a GUID; Refusing to enter a CDKey into the game causes the "no guid" condition

PB_SV_PowerDef [power points]
Holds the default number of Player Power points (default is 1) assigned to players who are not in the locally stored PB Player Power database

PB_SV_PowerKickLen [minutes]
The number of minutes (default is 5) a player will be kept from being able to rejoin after being removed via the PB Player Power facility

PB_SV_PowerMin [power points]
A player is removed from the server when the number of power points applied against him/her is equal to or greater than the value of this setting (default is 10)

PB_SV_Sleep [Period]
Holds the period of time (milliseconds) that the PunkBuster Server "sleeps" between processing cycles; lower numbers will cause PunkBuster to process more times each second which also may have the effect of marginally increasing the bandwidth used by PunkBuster

PB_SV_SsCeiling [Number]
The highest serial number (default is 100) that PB will use in numbering Screenshot (PNG) files obtained from players before starting over at the PB_SV_SsFloor value

PB_SV_SsCmd [Filename]
The name of the script file (default is "" empty which means "not used") that PB calls after each screen shot PNG image file is received; this can be used by admins to copy or otherwise process screenshot files that are obtained automatically during gameplay. For security reasons, all path names to the script file must start with "\pb" (windows) or "/pb" (linux) and be located in the working pb folder.

PB_SV_SsDelay [Seconds]
When this is non-zero (default is 0), then each PB client will wait a random number of seconds up to the value of this setting after receiving the request before actually capturing a screen image for sending back to the server

PB_SV_SsFloor [Number]
The lowest serial number (default is 1) that PB will use in numbering Screenshot (PNG) files obtained from players

PB_SV_SsHeight [Pixels]
The requested height (default is 240 pixels) of images captured by PunkBuster Clients for sending to the PB Server

PB_SV_SsNext [Number]
The next serial number that PB will use to name a PNG screen shot image file

PB_SV_SsPath [Path]
If specified (default is "" empty), PB will write captured screen shot images obtained from connected players to this alternate location, this can be a network share or some other location where you would prefer to place screen shot images and the "helper" htm files that go with them

PB_SV_SsSRate [Number]
The sample rate (default is 1) used for capturing screen shots, specifies how many pixels get skipped in the processing of the image to keep file sizes down; if set to 2, then only every 2nd pixel is taken (in both horizontal and vertical directions); if set to 4, then only every 4th pixel is taken

PB_SV_SsWidth [Pixels]
The requested width (default is 320 pixels) of images captured by PunkBuster Clients for sending to the PB Server

PB_SV_SsXPct [Percentage]
The percentage across the screen (default is 50%) where the center of the requested screenshot should be captured from

PB_SV_SsYPct [Percentage]
The percentage down the screen (default is 50%) where the center of the requested screenshot should be captured from

PB_SV_UpdateGrace [Seconds]
Holds the number of seconds (default is 600) that PunkBuster allows for a player to successfully update to the version of PunkBuster currently in use at the server




Some Server Admins wish to try to limit profanity / offensive language on their game servers.  This is an individual preference issue.  For Admins who wish to prevent players from using certain offensive text in their playing names, PunkBuster includes the Player Name Management Facility also known as the BadName Facility.

By default, PunkBuster does not do any checking for BadNames.  If you wish to construct a list of offensive text filters in PunkBuster so that players will not be able to wear names containing the offensive text, use the BadName command.  The format of the BadName command is as follows:

PB_SV_BADNAME [grace_period] [filtered_text]

You can fill up a configuration file with nothing but these types of statements if desired and then issue a PB_SV_LOAD command either manually or inside your pbsv.cfg file to have the whole list executed easily at one time.  If prefered, you can also type them into the console and do a PB_SV_WRITECFG to have the whole list written, along with your other current PB settings, to the pbsv.cfg file which is automatically loaded every time PunkBuster starts.

If PB detects that a player has a name that includes the exact [filtered_text] from any BadName entry (case insensitive), then PunkBuster will send a warning message to the player that the playing name is not allowed on this server and that the player should change the name.  If the name is not changed to an acceptable name within the number of seconds specified by [grace_period] for that text filter, then the player is removed from the game.  Note that setting [grace_period] to 0 has the effect of immediately removing a player before any warning message has time to display.

Note that PB strips player names of color codes before searching for [filtered_text].




The PB RCon Facility allows admins to give specified players something similar to the normal RCon ability of the game. The Facility is based on guids that are generated for each player, so passwords are not used for this feature at all. This will work with anything that would normally be entered at the server console including commands, settings, etc. even specific to whatever mods you are running at your server. This Facility is based on the PunkBuster Player Power system whereby PB Admins can give power points to their regular players and deputy admins. Admins therefore have to assign Power Points to players before they can use this facility.

The PB Server keeps a list of commands for use by the PB rcon facility; by default, that list is empty; use PB_SV_RList to see the current list at any time.

First you need to decide levels of control for your server. Decide which commands you want to make available with this facility and group them by "power points".

An example:

  • 100 power points required to permanently ban players
  • 50 points required to change the map
  • 25 points required to change sv_minping and sv_maxping server cvars.
You now have to use the pb_sv_rcon command to set up your list: PB_SV_RCon [min power points] [command prefix]. PB will automatically update the pbrcon.dat file when the pb_sv_rcon command is issued. That file is loaded every time the PB Server is started and restarted. So for our example, you would enter the following 4 lines:
  • PB_SV_RCon 100 pb_sv_ban
  • PB_SV_RCon 50 map
  • PB_SV_RCon 25 sv_minp
  • PB_SV_RCon 25 sv_maxp
Note that you are entering prefixes - if a player enters a command that "starts with" an exact entry in the list, then it will be considered valid as long as the player has enough points to issue that command. For example, entering PB_SV_RCon 75 PB_SV_ means that any player with 75 or more power points can issue any PB server command (not recommended by the way unless you are the only player with 75 or more power points and you wish to do this for yourself).

The PB server will announce to all players when a command has been executed and say who executed it. If a player tries to use PB_RCON and does not have the requisite power points or tries to issue a command that is not in the list, then the PB server logs that activity but otherwise ignores it. No feedback is sent to players - successful or unsuccessful. There is no "secrets" with this command. Players can't use it to do anything anonymously. Any output associated with an issued command is logged to the server console and log files, but is not returned to the player's console.

This will work with anything that would normally be entered at the server console including commands, settings, etc. even specific to whatever mods you are running at your server.

So basically when you bestow enough power points to a player so that he/she can use one or more PB rcon commands, you should inform/educate that player on the specific commands that are available to him/her. There is no way for a player to "find out" what can be issued with a certain number of points unless the admin or other power players gives the info i.e. there is no client command to list what is available. Players just have to know what they are allowed to do and on which servers with pb_rcon.

If you re-issue the same command with pb_sv_rcon, then PB will update the existing record so that you can change the number of power points required. If you want to "delete" a command, simply set the required points very high so that no players on your server have that many points (or edit pbrcon.dat with a text editor, remove the command(s) you want to delete and then do pb_sv_restart).

One advanced idea that you may want to experiment with is to create short scripts to do various things on your server. You can name the scripts anything you want and just make your list of PB rcon commands to simply call your scripts. So players don't have to know any real commands at all, they would just do 'pb_rcon exec script_name' based on what you tell them they can do and then whatever you have in the script will be exec'd when the rcon is issued.

If you wish to learn how to use PB_RCon as a Client please see our related publication entitled 'PunkBuster for Players'.



PunkBuster allows Server Admins to request and retrieve actual screenshot images being displayed on the gaming monitor of players currently connected to the game server.  It is very easy to request a screenshot from one or more players and also to set up automatic screenshot capturing.  Several advanced features are available for Admins who want to tweak their systems.  The defaults are fine for most Admins and are a good place to start when getting a feel for how the Screen Capture Facility works.

There are two ways to capture screen shots: Manually and Automatically.  Some Admins will do both types.  To Manually request a screenshot from all connected players, simply type "PB_SV_GETSS" into the Game Server console and after a few seconds, you will start seeing messages about where newly retrieved screenshots were written to your hard drive and what their filenames are.  PB names screenshot image files using incrementing sequential serial numbers and they always have the PNG extension.  PNG graphic files are similar to GIF and JPG files - they combine the best of both worlds with respect to the type of images found in most computer games.  Along with each screenshot image (PNG) file, PunkBuster also writes a "helper" HTM file with the same filename so that you can use any web browser, such as Netscape or IE, to easily view your captured screenshots.  Furthermore, all screenshot requests are logged to one specific HTM file called pbsvss.htm so that the list is made available on one scrolling screen as an index for quick and easy viewing.

If you wish to take a manual screenshot of only one or a few connected players, you can specify either the player's slot number directly or you can specify a text substring and PB will request screenshots from all players whose names contain the specified search text.  To find the slot # of a specific player, type PB_SV_PLIST into the console.  Column one contains the slot # for each connected player in the list.  To request screenshots from all players with the text "ABC" in their name, type PB_SV_GETSS "ABC" (note the quotes are necessary when specifying name substrings).

To set up Automatic Screenshot Capturing, set the PB_SV_AUTOSS setting to 1 (the default is 0).  Then you may want to change the values of the PB_SV_AUTOSSFROM and PB_SV_AUTOSSTO settings to specify how often PunkBuster will request screenshots from each connected player.  Both of these settings are measured in seconds and the defaults are 60 and 1200 respectively which means that the PunkBuster Server will request a new screenshot randomly anywhere from 1 to 20 minutes after each previous request for each connected player.

Note that regardless of the combination of manual and automatic screenshot requests submitted during gameplay, the PunkBuster system limits screen shots in two ways.  First, each individual screenshot is limited to 82,000 pixels in an effort to keep image file sizes and transfer bandwidth requirements down.  If you set your parameters (described below) to request images that contain more than 82,000 pixels, then PunkBuster will automatically reduce the image size until the actual capture fits within the limitation.  Also, PunkBuster will not allow more than 3 screenshots to be requested from each player within any 10 minute period, nor allow a screenshot to be requested within 30 seconds of the previous request.  The PB_SV_PLIST command used to display information about connected players has a column called "RecentSS" which shows the number of requests for each player within the last 10 minutes.

Also, Admins should keep in mind that PunkBuster will not take a screenshot from a player who has minimized his local game or who has an application active other than the game itself.  In those cases, an empty black screenshot image is sent with text at the bottom explaining why the Capture failed.  Also, there are a few video display setups that cannot be correctly captured at this time.  These setups also do not allow the game itself to take screenshots using the built-in non-PunkBuster method.

The following settings can be used to customize the Screen Capture Facility:

PB_SV_SSWIDTH and PB_SV_SSHEIGHT are used to request a specific size image in pixels.  The default is 320 x 240.  If a size is requested that is larger than the actual resolution on a player's system, then PB will automatically reduce the appropriate parameter to match the size of the resolution.  For example, if a screenshot of 800x600 resolution is requested from a player running the game in 640x480 resolution, then PB will take the image at 640x480 resolution automatically.

PB_SV_XPCT and PB_SV_YPCT are used to specify where on the full playing screen that the capture is to be centered.  The default is 50 and 50 so that the capture comes from the center of the playing screen.  Using lower numbers moves the captured area toward the left (in the case of XPCT) and upper (in the case of YPCT) portions of the screen and using higher numbers moves the area towards the right and lower portions of the screen respectively.  If XPCT and/or YPCT are set to -1, then a random percentage between 0 and 100 will be used for each individual capture request - this has the effect of capturing different (randomized) portions of the playing screen each time a capture is taken.

PB_SV_SSSRATE sets the sample rate for the capture.  The Sample Rate can be set to take less pixels from a larger area of the screen to, in effect, compact a larger picture into a smaller size by simply skipping pixels.  Sample Rates of 1, 2 and 4 are available.  Using a Sample Rate of 2 will reduce image file sizes to about one fourth of normal (Sample Rate 1) and using 4 will reduce to about one sixteenth.  The reduction in file size does affect the clarity of the image.  It is always best to use Sample Rate of 1 unless you desire to capture large portions of the playing screen and don't mind losing some clarity in the resulting image.  Even with the 82,000 pixel limit, it is possible to capture images at 1280x1024 using a sample rate of 4 for the relatively few players who play in very high resolutions.

PB_SV_SSDELAY causes the PB Client to wait a random number of seconds (up to 60) after receiving the capture request before actually capturing the image.

PB_SV_SSPATH can be configured to hold an alternate location where captured screenshots are to be written.  This can be a network share if desired.  The default is "" (empty) which means the pb/svss subfolder holds captured screen shots and related support files.

PB_SV_SSFLOOR, PB_SV_SSCEILING, and PB_SV_SSNEXT deal with the way captured screenshot images are named as they are saved to files at the PB server.  The PB_SV_SSNEXT setting holds the serial number that PB will use for the next captured filename - for example if PB_SV_SSNEXT is 250, then the next captured image will have a filename of pb000250.png (and it's "helper" file will be named pb000250.htm).  The PB_SV_SSNEXT setting is incremented and maintained automatically by the PB system but can be set manually if desired.  The FLOOR and CEILING settings specify the from and to range for the screenshot filenames captured by this server.  Using the PB_SV_SSPATH command mentioned above, Admins who run multiple servers may want to have all PB Servers send captured screenshots to a central location.  The FLOOR and CEILING settings allow the admin to give each PB Server its own unique range of filenames to use so that there is never any overlap in the central archive.

PB_SV_SSCMD holds the name of a local script (batch) file that PB will execute automatically after each screen shot is retrieved successfully.  The default value of this setting is "" (empty) which means that PB will not run a local script at all after image captures.  PunkBuster passes the full image filename with path as a parameter to the script.  This is for advanced Admins who wish to automate the processing, archiving, and/or publishing of screenshots (such as to a web server).




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.

Basically, every player on PB Servers has a power rating. Each PB Server Admin can add specific players to a locally stored database which stores the power rating for those specific players between playing sessions. Additionally, a "catch all" setting called pb_sv_powerdef holds the default power rating for players who are not in the database. During gameplay, players may apply their power points against a player by requesting to have that player kicked from the server. Each application of power points is reported to all players on the server so that all players will be able to see when a player applies his/her power points against another player. Once enough power points have accumulated against a given player, then that player is removed from the game and forced to wait a number of minutes before being allowed to rejoin.

To add a specific player to the local PB Player Power database, use the pb_sv_power command; this command takes two arguments: the slot # of the player to be added and the desired power rating. The pb_sv_plist command is used to display a slot # for all connected players. The local PB Player Power database is stored in the pbpower.dat file. Each entry is based on the guid of the player.

The power rating assigned to players may range from 0 to 100. Assigning a power of 0 to a player means that the player's vote carries zero weight on the server and any requests by that player to kick other players using this facility are completely ignored. A setting of 0 should normally be reserved for players who have shown themselves to be untrustworthy from the standpoint of voting against their peers. Assigning a power of 100 to a player is further distinguishing that player as a "deputy". There are a couple of additional points of interest involving deputies. When at least one deputy is presently connected to a game server, then only deputies may apply their power points on that server. Other players must appeal to the judgment of any and all deputies presently connected. Also, deputy players cannot be removed from the game server using this facility.

The pb_sv_powerdef setting is used to set the number of power points allocated to players who are not in the local PB Player Power database. Use the pb_sv_powermin setting to specify the number of power points required to be applied to a given player before that player is removed from the game. The pb_sv_powerkicklen setting holds the number of minutes that players must wait before being allowed to rejoin when removed via this facility. To completely disable this facility, set pb_sv_powerkicklen to 0.

More information about how this facility is used from a player's perspective can be found in our related publication: "PunkBuster for Players".




Frequently Asked Questions (FAQs) are available on our website. Choose the appropriate game from the support page.