PB Screenshot Viewer


PBSViewer is a free php program to view your punkbuster screens. This program ‘PBSViewer’ also known as Punkbuster Screenshot Viewer, will download pb screens. Those downloaded screens are published on your website. Next to this you can search for pb screens by name or guid. For a demo click here.


The latest version is and can be downloaded here:


To see the changelog go to this page.

Latest key features

  • Download pb screens from your gameserver and show them on your website.
  • Shows your pb screens independently to your visitors, without user/admin intervention.
  • Easy search for screens, search supports wildcards. You can search by guid or name.
  • Great image enhancement tools, you can easily make an image darker or brighter.
  • Secure Admin login.
  • PBSViewer has an Admin Control Panel (ACP), here you can easily configure your PBSViewer.
  • Option to make PBSViewer private, only those who know password can use PBSViewer.
  • Automated checking of md5 hashes of screens, it can automatically check if screens have been altered or not.
  • Get aliases of player.
  • Easy installation script included.
  • Reset feature included to delete all screens and logs.


If something is not clear please first check the FAQ page to find your answer. If you can not find your answer please contact me (please use contact form) or leave a comment.

Supported games

This program is tested for the following games:

  • AA: America’s Army 2.8.5
  • AA3: America’s Army 3
  • BF2: Battlefield 2
  • BF2142: Battlefield 2142
  • BFBC2: Battlefield Bad Company 2
  • CoD4: Call of Duty 4

Probably it can also be used for other pb supported games. Please report if this is the case, then I will add it to list. A list of pb supported games can be found here.

System recommendations

  • php version 5.0 or higher, did not tested it for lower versions
  • MySQL version 4.0 or higher.
  • Webhosting that supports .htaccess files.
  • Punkbuster server with ftp access to your pb screens directory.

Help needed

Since I don’t have the time to test all systems, I need your help. If you have installed this tool under another environment, please tell me so I can change this list.

Dev page

If you have found a bug or you have a suggestion please check out this page. This project is also being hosted on google code, more information on development can be found there as well.


PBViewer is free for everyone. I have put a lot of time in this project. If you want to help me, consider donating. Then I know for who I’m doing all this. It also keeps me motivated to bring out new updates for this tool.


PBSViewer is released under the GPL licence ( see ‘licence.txt‘).

System recommendations

69 thoughts on “PB Screenshot Viewer

  1. Pingback: New version for PBSViewer, version « Pbsviewer &Laquo; Php Projects &Laquo; Projects « BeeSaR

  2. Pingback: New version for PBSViewer « Pbsviewer &Laquo; Php Projects &Laquo; Projects « BeeSaR

  3. Pingback: PBSViewer on google code « News « BeeSaR

  4. Pingback: New version PBSViewer « News « BeeSaR

  5. Pingback: New version PBSViewer « News « BeeSaR

  6. Thx for this! Looking forward to Milti-Server support. Atm I#M running seperate installs for each server. Works also with MoH (i wish evenbalance would fix the AA/DX10 issue)

    • Hi,

      If you are using E107 you should be able to run PBSViewer as well, though you should install it separately. There is no plugin for E107 available if that’s what you mean…



  7. I believe I have found a problem with your reset routine. While using reset, I kept getting the error “seems to be the wrong directory, did not delete any files”. I knew however that the path was correct so I got into your code in functions.inc.php. I found on line 3460, 3469, and 3472 a reference to the var $list. However there is no var $list. Instead it should be referring to $fileList. After changing those three apparent errors, my reset is working perfectly.


  8. What happens when, while trying to list your screenshots, instead of a thumbnail you just get red text with a link showing the player name and when the ss was taken? I’m assuming it got info from the log but didn’t download the image?

    • I am not sure what you mean? Usually it should give some error when a screenshot is missing. If a screenshot is missing it gives a default thumbnail screen which says ‘No Image available’. Could you show me an example or something of your problem?

  9. Hello there,

    First big thanks for this tool, its so great and funcional :D
    I have installed it and it works excelent except logging thing (md5,ip).
    Can you help me make it work???

    In game server is svlogs folder with files inside (00000202.log , 00000203.log , etc…)


    Details after update:

    Connected to: xxx.xxx.xxx.xxx:xx
    Directory changed to: /xxx.xxx.xxx.xxx port 16567/svss
    Downloaded file:pbsvss.htm
    Made a copy of old DB table containing date of pbsvss.htm data
    Data from pbsvss.htm is stored in DB
    No PNG files were downloaded, same PNG files were already located on your website
    Directory changed to: /xxx.xxx.xxx.xxx port 16567/svlogs
    Not able to generate a list of all files
    Available files:
    Something went wrong, not all log files were downloaded. Only downloaded 0 of 1 log files
    Not all log files were parsed correctly, only parsed 0 of 1 log files
    Did not remove the log files of your gameserver, only removed 0 of 1 log files

    • Hi dnroc,

      Unfortunately the logging feature is not working on all servers due to the fact that required function “ftp_nlist” is not always working, it has some PHP related bugs.

      You could try to change the ‘FTP passive mode’ setting in your ACP to passive. What you also could try is to implement the latest fix I have described earlier. This fix is not implemented yet in the latest version. You can download the latest “functions.inc.php” here:

      Once you have opened the file in your browser just go to ‘File’ and click on ‘Save as’, then upload this file to your server. Please let me know if this fix works.

    • Hi dnroc,

      I have made some changes in PBSViewer, you can download the fix here:

      It took me a couple of hours to make this fix. I tried to reduce the amount of ftp connections PBSViewer is currently using. Please try this fix, I really hope it works. The logging feature works on my server with and without this fix, please let me know if this fix works on your server as well.



      • I am very grateful for your help but with this update PBSViewer not download ss at all.. :(

        this two files going to INC folder, right?
        update log:
        Connected to: x.x.x.x:21
        Directory changed to: /x.x.x.x port 16567/svss
        Downloaded file:pbsvss.htm
        Made a copy of old DB table containing date of pbsvss.htm data
        Data from pbsvss.htm is stored in DB
        All PNG files (0) were downloaded succesfully!
        Directory changed to: /x.x.x.x port 16567/svlogs
        Not able to generate a list of all files
        Available files:
        Something went wrong, not all log files were downloaded. Only downloaded 0 of 1 log files
        Not all log files were parsed correctly, only parsed 0 of 1 log files
        Did not remove the log files of your gameserver, only removed 0 of 1 log files

        i restore old functions.inc.php and init.inc.php and update continue work like before (without logging)

        tnx, dnroc

        • Yes the files need to be uploaded to the ‘inc’ directory. It is a pity that the fix is not working, though the fix seems to have an affect on your server. I really want to fix this bug, because you are not the only one having troubles with the logging feature.

          It would be great if I can have access to your webserver for testing my new fixes related to the logging feature, since your server is processing ftp data slightly different than my server. You would not only help me but also many others dealing with the same problem. Please mail me your login credentials of your webserver if you want to help, my mail is brettrijnders@gmail.com.

  10. dnroc :

    Hi Brett,

    all working great now :D
    big thanks for assistance


    You are welcome dnroc, I hope you enjoy my program :) To others who are having the same problems with the logging feature I will release a new version with the latest bug fixes soon.



  11. Hi

    Im trying to set this up for our BF3 server

    At step 2 of the install I get the error:

    ftp_close() expects parameter 1 to be resource, boolean given in /home/pcforums/public_html/PBS/install/install.php on line 1839

    Can you help?

    • Hi Brett (funny hehe),

      Let me give you some explanatory comments regarding your forum posts: http://forums.multiplay.co.uk/battlefield-3/86393-msg-punkbuster-screenshot-viewer-2

      1) You should use double quotes (i.e.: “some value”) to enclose your pb screenshot and log directory values in init.inc.php
      2) All the default variables set in init.inc.php are overwritten automatically by the stored database values unless they are not stored in the database. Therefore you should change those variables in your ACP if they are listed over there.
      3) When entering a path, always try to use forward slash ( / ) instead of backward slash ( \ ). Forward slash in most cases works correctly on all operating systems.
      4) Your ACP settings seems to be correct and it should work…

      If you want I can install PBSViewer for you I think I can fix it, please send me your login credentials through mail (brettrijnders@gmail.com) or twitter.



    • Hi,

      Thank you for your login credentials. I have installed the latest version of PBSViewer and I think it is working now. Could you test it? I am not sure what went wrong during your install, it might be that something in your init.inc.php file was wrong…
      As you can see you can easily change the directory names in the ACP in this new version :) I also have enable logging, that one should work as well when you have valid log files. Currently you don’t have any valid log files for your server id (I used 99621).

      Well have fun with PBSViewer and if you got any questions please let me know.



  12. Hi there.
    Our Gaming Host ist restarting the Server every day and zipping the old screens and htmls. The screenshot folder is empty after zipping and also PBSViewer is emptied after that.

    Is it somehow possible to keep the collected data?

    Thanks for reading


    • Hi Corvin,

      No sorry I don’t think it is possible to keep the collected data, unless you install PBSViewer on a different server on which the data is not deleted automatically.



      • PBSViewer already runs on a different Server and collects the Data thru ftp.

        After the reboot of the Gameserver the screens are still there until they are overwritten, but the DB seems to be cleared.

        A nice feature would be that PBSViewer stores the screens for each Day in a different folder and keeps the Data in the DB.

        We really appreciate your good work.

        Thanks for your reply ;)

        • Strange, currently PBSViewer is already storing all the screenshots that are located on your gameserver. Those screens however are all stored in one single folder ‘download’. PBSViewer is not really used as a back-up program, it is more a synchronisation tool.



  13. Me again.

    Had a slow day at work so Ive had a go at the webpage header.

    You can see it at http:/www.pcforums.co.uk/pbss

    I’ll knock up some buttons to match for update, reset etc soon.

    Feel free to us it as you see fit.

  14. I am getting the following error ” Warning: ftp_chdir() [function.ftp-chdir]: The system cannot find the file specified. in /var/www/vhosts/warrior-knights.com/httpdocs/PBSViewer/inc/functions.inc.php on line 516
    directory change failed ” when i try to run an update. Could anyone help me please.

    Thanks in advance guys

  15. Hi Blackwatch,

    Are you sure the pb directory in your ACP is correct? Did you also try to run FTP in passive mode? You can change this in your ACP, because some servers only work with passive mode. If nothing works could you please set debug mode to true in your ACP and give me your error/debug/warning messages when you try to update?



  16. Fatal error: Call to undefined function ftp_connect() in /srv/www/httpd/phost/t/org/pytalhost/the-asylum/web/pbss/install/install.php on line 1874

    anybody know whats wrong?

    • Hi Manu,

      It seems that your provider does not support FTP. Did you already ask your web hosting company about this? There are a lot of good web hosting companies on the internet. For instance in the Netherlands you have http://www.versio.nl/. I don’t know from which country you are, but I think your country has some good web hosting companies as well.



  17. Hoi Brett;

    Ik had je een dag of 3 geleden via een contact form hier op je side om wat hulp gevraagd.
    Ik denk dat dat mailtje nooit bij je is aangekomen.
    Zou je mij mss kunnen helpen,heb wat problemen met pbsviewer.

    Thanks John

    • Hey John,

      Toon a.u.b. de volgende keer wat meer respect en wat geduld, wees blij dat ik je nu nog wil gaan helpen na je typische goedkope arrogante en platte Hollandse opmerking ;) Ik was op vakantie en je mail was gemarkeerd als spam. Ik zal er dit weekend naar kijken.



  18. I am not able to make pbsviewer work for bf3 on my own (windows) server. It worked perfectly when the website are hosted on a web host (linux).

    Is it related to the OS?

  19. I’m running php in fastcgi mode. When I click the update button, the update page is not able to be loaded. And I get following errors in Apache error log:

    [Sun May 11 12:00:31 2014] [warn] [client] (OS 109) The pipe has been ended. : mod_fcgid: get overlap result error
    [Sun May 11 12:00:31 2014] [error] [client] Premature end of script headers: index.php

    • Hello Jermin,

      Yes, it might be related to windows. I only have tested it on a linux machine. I am not sure where those Apache errors are coming from, it seems like a time-out issue. Usually the execution time of a PHP script is 30 seconds. If you have a lot of screenshots that need to be updated then you might get problems. You can configure the execution time in the ACP. However, running in fastcgi might overwrite or ignore this setting.

      Just to be sure, please make sure you have the following:
      – PHP 5
      – FTP access (with proper firewall settings)
      – Correct CHMOD of files
      – Small initial set of screenshots (<100). Once it has updated it performs incremental updates.

      It seems that you were able to install PBSViewer succesfully. Can you maybe download the latest “functions.inc.php” file and overwrite the old one:

      This file fixes several bugs, see https://code.google.com/p/pbsviewer/issues/detail?id=47

      After overwriting this file can you turn on debug mode in the ACP and provide me the log messages when you click on update? You can also try ftp passive mode, see ACP, it might work.

      Please let me know if you’ve got it working!

  20. Updating the file makes no difference. Sometimes I can open the update page. But the page remains blank until I get a internal server 500 error, disregard of FTP and debugging settings.

    The update script can automatically start at the defined intervals, and pbsvss.htm in /download folder on web ftp can successfully updated. But the screenshots are not downloaded.

    When I was using (with fix) on the same machine, the update page works normally (lines are generated). But I got the same error as dnroc (http://www.brettrijnders.nl/work/php/pb-screenshot-viewer/comment-page-1/#comment-2578).

    • Ok interesting… First of all, sorry for my late reply, I am quite busy lately. The fix I gave you should fix the same error as dnroc. Are you sure you have applied the following correctly:
      – CHMOD of the correct files and directories?
      – Correct path to pb directory
      – Correct pb screenshot directory name
      – Correct web log dir

      Can you also tell me if you get a message during update which says something about a list of png files that have been downloaded? Or do you only get a message like “All PNG files (0) were downloaded succesfully!”?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.