Punkbuster Screenshot Conversion

The creator of Punkbuster was looking for a software developer to create a program that could be used on Linux servers that hosted Counter-Strike games. Punkbuster would automatically take screenshots of users as they played, which would help catch users who were using colored models, aimbots, or wallhacks. These screenshots were captured in a proprietary .pbc file format.

The program to convert these screenshots into JPEGs already existed on Windows, but most Counter-Strike servers ran Linux. I volunteered to write the PbcToJpg program which would perform this conversion.

PbcToJpg was capable of of converting screenshots to JPEG or PNG and offered several options such as altering the image quality, location of saved screenshots on the server, and doubling the image size. It ran as a binary without requiring any source code compilation, and used the GD Graphics Library to automatically add information to the image like the player name and WON ID (the precursor to Steam IDs) and game server information.

Wallhacker caught in the act

Server admins created scripts that automatically converted these screenshots and placed them on a webpage, and the program was a huge success overall. It caught 1,000s of cheaters, and lasted until Valve created its own anti-cheat program and Punkbuster stopped supporting the game. At that point, Punkbuster started to support other games, and this program's technology lived on in games such as Return to Castle Wolfenstein, America's Army, and Battlefield.


As the popularity of Counter-Strike dramatically increased in the late 1990s, some players started creating cheating programs to gain a competitive advantage. Many of them would use wallhacks or aimbots that colored player models green and red and then automatically aimed at those models.

Punkbuster was a program developed to detect these cheats, both automatically via memory signatures of the installed cheats, or by catching cheaters by taking screenshots while they were playing.

Even Balance, Inc.


Project Dates:
January 1, 2000 - December 31, 2001

My Role(s):

Technologies Used:
C  C++  GD Graphics Library