PunkBuster Screenshot Database System

Version alpha-5

Written by Richard A. Begg

Copyright 2001 Richard A. Begg



The PunkBuster Screenshot Database System (or the PBDB as I will refer to it) is a system for managing the PunkBuster (PB) server software. Its main purpose is to retrieve and catalogue screenshots received by the PB server on a web page on a local web server. This document will give an overview of how to setup and use PBDB along with extra information that will be of interest to people wanting to develop their own front-end to the web database.

The PBDB also provides extra functionality to automate the task of taking screenshots. There are currently two modes it can operate in:

This release currently has a very early implementation of a GUI to help view players and take screenshots.

Changes in alpha-5


Changes in alpha-4


Changes in alpha-3

Changes in alpha-2

Getting Started

Before you can run PBDB you need to alter the PBDB configuration file. This file contains the entire configuration PBDB requires to run. An example configuration file is distributed as part of this release, its called pbdb.cfg. Lets go through what each line of this configuration file means:




This sets the port number and address the PunkBuster telnet server is accepting connections on. The port value shouldn’t change really but I provided it incase it does. The password is the remote access password you have configured in your PunkBuster configuration for your top-level access.




These lines set the information required by PBDB to access the Remote CONtrol interface to the Half-Life server. It is currently mandatory that a valid port and password be given but it is planned that in the next release this will be optional configuration.


This line sets the port on which log information will be received from the Half-Life server. To make your server report its logs to this port you need to issue the command ‘logaddress <address> 2000’ where <address> is the IP address of the machine running PBDB. If you don’t want to use the kill screenshot mode then you don’t need to do this.


This line sets the directory in which the PBDB database should be stored. Within this directory two more directories need to exist these are: pbc and jpg. These directories will be used to store the JPG and PBC files captured.


This is should be configured to point to the pbcaps directory in your PB server directory.


This line sets the directory URL where the PBDB web logging pages exist. This release ONLY supports ASP but it is envisaged in the future this system will support most other formats (e.g. PHP, JSP, etc..).


Possible values: true, false

This line says whether the system should support Random screenshot mode.


Possible values: true, false

This line says whether PBDB should announce the fact that a screenshot has been received using an ‘RCON say’ message. Please note that the message will only be sent once the screenshot has been received, announcing the screenshot before could give any cheats the chance to leave the server before the screenshot is delivered.


Possible values: true, false

This line says whether PBDB should acknowledge RCON SS commands using RCON SAY.


Possible values: true, false

This line says whether PBDB should catalogue screenshots received by the PB server. This can be set to true if you only want to use PBDB to grab screenshots at random or due to kills.


This line states the location of the PBCTOJPG.EXE program. This allows you to have PBCTOJPG.EXE installed in any directory.


Possible values: true, false

This line says whether PBDB should announce its existence using the RCON SAY command.


Possible values: true, false

This lines says whether PBDB should take screenshots of ALL authenticated players at random intervals (true) or just single random players (false),



These lines tell PBDB the minimum time it should wait between taking screenshots and the maximum random time to add. Both of these values are in minutes. This value takes affect if TAKE_RANDOM_SHOTS is set to true.

Time between shots = MIN_INTERVAL + ( rand()*RANDOM_TIME )

Once you have updated the information in this configuration file to match your requirements then the PBDB is ready to be run. To run PBDB the following command should be executed:

java -cp ./lib/pbdb.jar org.pbdb.manager.PBManager <configuration file>



Go to the PB-DB forums at DNA games:




Thanks to DNA.Styx at DNA games for his help and assistance.

Thanks to all the people who have offered assistance and given bug reports.