PunkBuster ScreenShot Enforcer 1.4.1.1

PBSSE - PunkBuster ScreenShot Enforcer

Description
This plugin monitors the requested and the successfully received Punkbuster screenshots (automatic and manual).
This is neccessary since the Punkbuster Screen Capture Facility (http://www.evenbalance.com/publicati...tm#screenshots) as nice as it is, allows all screenshots to fail.
For a coder it is very easy to block Punkbuster screenshots. Therefore I have created this plugin.
Note that Punkbuster Screenshots can also fail other reasons, like the video driver (this rarely happens). Minimized games or games on loading screens usually return successful black screens.

Since this plugin only monitors, you need to set these values in your pbsv.cfg like this:

Plugin (recommended) Settings
1. Check
How much requests do you want to send until kick/notify: 4
Exclude players that have the same ip from check: Players in the same LAN will have the same ip to the pb server. Punkbuster screenshots may fail for this reason. (Yes)
Exclude players that have less than X score from check: Idle Players. (500)
TempBan/Ban by name: Not recommended. A Player can easily change their name and join again. (No)
TempBan/Ban by EA GUID: Recommended. This ID is linked to the player's EA account. Works best with Metabans (Yes)
TempBan/Ban by PB GUID: Recommended. This ID is linked to the player's cd key (No)
Whitelist: List of players (ingame-names without clantag) not to check
Sync ReservedSlots/ServerVIPs: Automatically syncronize the Whitelist with the ReservedSlots list (Yes)

2. Kick
Enable Kick on no PB Screenshots: No
Message to be displayed to the kicked player: %maxreqs% will be replaced with the number of screenshot requests. (%maxreqs% screenshots requested, 0 received)

3. TBan
Enable Temp Ban on no PB Screenshots: If temp ban is enabled, no kick will happen (Yes)
Message to be displayed to the temp banned player: %maxreqs% will be replaced with the number of screenshot requests. (%maxreqs% screenshots requested, 0 received)
Length of Temp Ban (min): Length of temp ban in minutes (15)

4. Ban
Enable ban on no PB Screenshots: If permanent ban is enabled, no temp ban or kick will happen (No)
Message to be displayed to the banned player: %maxreqs% will be replaced with the number of screenshot requests. (%maxreqs% screenshots requested, 0 received)

5. Notify
Enable ingame notification: Yell a message to an admin (or any other player) when a player is kicked/banned by this plugin (Yes)
Ingame username: player to receive the ingame notification via pyell
Time to display (sec): Time to display the ingame notification in seconds (30)

6. Debug
Debug Level (0-5): Debug level adjusting how many debug messages you will see in the plugin console log (1)
0 - no messages at all (quiet)
1 - only kicks/bans will be displayed
2 - statistics about requested, successfully received screenshots and resets will be displayed
3 - individual requests and receives will be displayed
4 - adding and removing to the lists of requests and receives will be displayed
5 - just for development and testing

Log to file: Log plugin output to a file (PBSSELogFile.txt) in the Plugin/BF3 directory. Not recommended, this file may get very big and slow your procon down. Only use it to log errors and only use it local (No)
Filename/Path: Filename and path of the logfile relative to the Procon executable (Plugins/PBSSELogFile.txt)

1.2.2
-NEW: Option to log all debug output to a file (PBSSELogFile.txt) in the Plugins/BF3 directory (use with caution)
-NEW: Filter to drop PBScreenshots request if requested too fast after each other (3 minutes)
-FIX: Whitelist was updating too slow under certain circumstances

1.2.1
-FIX: Some successfully received screenshots were not counted properly under certain circumstances

1.2
-NEW: Option to automatically exclude players with the same ip (same LAN) from check

1.1.1
-FIX: statistics (maybe check routine too) where not showing when they should show. this is now fixed

Known IssuesPunkbuster Screenshots
Like mentioned above Punkbuster screenshots can fail for several reasons (drivers, minimized games (idle players), same ip/port (yes its true, this happens when you get your pc to a friend and you both play at the same time on the same server. the nat/pat settings on your router may help. google it :-)))
Workaround: add them to your whitelist

Whitelist
If you add a player to your ReservedSlots/ServerVIP List they might not show up in the whitelist setting immediately. However you can be sure they are added and processed. I think this is because Procon GUI does not reload the setting when its not changed in the GUI. Just reopen the Plugins Tab and they should be displayed. Or restart Procon on your PC (NOT the layer server, just the exe on your PC) and they will show up.
Workaround: Not really needed, however if someone knows a solution i would like to know it too :-)

Logfile
This file may get very big and slow your procon down. Only use it to log errors and only use it local. The directory must also exist and be writeable by your procon.

As a way to debug this and judge how many folks really are blocking screenshots, enable a LOGGING only feature which would write to the default log folder.
The idea of a white list sounds great. Especially if it's as EB said and idle accounts (those who are at the desktop) do not return screenshots. Currently all of our 'idler' account are added to the VIP/Reserved list. If you could pull the VIP list and add all VIP members to the ignore / whitelist (like truebalancer) it would solve a problem we face of having to keep multiple lists up-to-date.

Thanks! Looking forward to giving this a try. Always interested to see new tools to catch potential cheaters. Now with PBScreens running at full speed (And catching cheaters!) it would great to see who the individuals who never return a screenshot.

Got a request though: a whitelist for players.
As it seems my idle soldiers never get a screenshot. Don't want to see them get banned

added. thx for your feedback :-)

Originally Posted by dyn

As a way to debug this and judge how many folks really are blocking screenshots, enable a LOGGING only feature which would write to the default log folder.

thx for your idea. i will eventually add this. for now you can disable kick/tempban/ban and set debug level to 1. this way you will only find red flag (no screenshots) in your log but nothing will happen to the players. you can still use ingane notify

Originally Posted by dyn

The idea of a white list sounds great. Especially if it's as EB said and idle accounts (those who are at the desktop) do not return screenshots. Currently all of our 'idler' account are added to the VIP/Reserved list. If you could pull the VIP list and add all VIP members to the ignore / whitelist (like truebalancer) it would solve a problem we face of having to keep multiple lists up-to-date.

players at the desktop (game minimized) or loading screens should (quoting punkbuster docs here) return successful screenshots that are black. still you have that option in the plugin now :-)

Originally Posted by Legate.

Good idea but could give a lot of false positives if is an Admin takes PBSS on manual mode or the console is using a plugin as Insane Limits:

true. but you really have to force this false positive :-)
i increased the default number of requests to 4. punkbuster wont request more than 3 screenshots within 10 minutes. this should fix it

I'm guessing something isn't working correctly. Went and checked some of the players who were not returning screenshots and found that a majority of them had screenshots on file. 2 of them didn't have any all though.