Over a span of the last 2-3 months, I’ve had the joy of dealing with one of the most controversial anti-cheat softwares to date - Punkbuster.

I had bought Battlefield 3 (or rather my girlfriend bought it for me) when it first came out. Actually, before then. I got the pre-order version which included “Back To Karkand”. Around the same time I had build a new PC to help cope with the demand of the game (plus I was overdue for an upgrade).

For the next few months, I had a blast. I even ranked up to a Colonel Service Star 16 (Rank 61). Needless to say a lot of time was put into ranking up. You can view my battlelog profile here. All was good.

The “What the Hell”

One night (January 20th) I was playing on a server called ”Noobs Hiding In The Bush - [HAI]”. After a few minutes I suddenly saw a message saying “Syntack banned for gamehack”. Immediately I was booted from the game and greeted with a Punkbuster message on the battlelog page saying I was banned for 20 minutes. I was confused, but figured it was by mistake and decided to wait it out. Soon afterwards I tried to rejoin and was immediately given the same message with a longer ban duration. Soon afterwards I started getting a mixture of error messages from any server I would try to join including  ”Something went wrong (NaN NaN)”.

I figured the logical thing to do would be to post on the forums and see if anybody had any insight. I should’ve figured I had high expectations and didn’t realize everybody would immediately assume I was a hacker trying to wiggle my way out of a ban. Despite some of the responses being completely asinine, I must say I laughed at a few of them:

No spread, reduced recoil, infinite hold breath, red triangles without spotting - nice. Appeal probably won't work here ;)

After viewing your battle reports, you got busted, son. All of your recent reports are completely inconsistent with your overall stats. You suddenly became about a 300% better player. Don't let the flag pole hit you in the butt on the way down.


The only real useful response was one containing a link to my PBBans ban report with the ever-so-helpful violation description of “VIOLATION (GAMEHACK) 89241”. Looking at the description for the violation returns the following: #80000s - Gamehack. Very descriptive.

During the time that all of this was occuring, there was a lot of drama surrounding PunkBuster and PBBans involving innocent players being banned. This wasn’t the first time PunkBuster had been exploited either. With GUID spoofing and a code signature scanning proof of concept</a>. I figured there was a good chance that I was one of the many who were caught up in the mess.

The Appeal

Having never dealt with punkbuster/pbbans before, I wasn’t sure where to appeal first.

After reading the appeal documentation, I decided to contact Even Balance (the company behind PunkBuster). After a few days of slow message exchanges, I was finally told “We do not find this violation to be triggered in error, and it will not be removed. It is at the discretion of the third-party ban list administrator to remove any ban given as a result of this violation.”. Time to go back to PBBans.

I went back to my PBBans ban report and filled out the appeal form. After a few days I was a bit peeved to find that my appeal was flat out denied. No insight. No explanation. Nothing. After that point, I gave up for a while.

Return to PBBans

Finally on March 21st, I decided it had been long enough since my last appeal attempt. I had learned that a webform based communication wouldn’t suffice, so I decided to try the #pbbans IRC channel on Quakenet. I requested to speak in private to a PBBans admin and one (who goes by the handle “HSMagnet”) accepted. I explained my situation and expresses some of my thoughts regarding how Even Balance handled the situation. Surprisingly, it seems PBBans admins don’t know any more than I do when it comes to what triggered a particular violation. He told me to try opening up another ticket through Even Balance and if the violation was found to be triggered in error, they would lift it.  I did just that.

Again my wishful thinking got the best of me and no further insight would be shed regarding my “violation” even after pushing for something as simply as stating whether it was a disk file or running process that triggered the violation.

I relayed the message back to HSMagnet and was told it would not be lifted and that I had two options:

  1. Play on servers that do not subscribe to the banlist
  2. Buying a new game

I’ve done option #1, it sucks. Servers are either entirely empty or riddled with aimbots. As for option #2, I would prefer to not have to redo all of my progress. So I questioned buying a new game while being able to keep my stats. His response was that EA should be able to manage that - depending on the support person I get ahold of. It’s a possible option, but only if I would be able to keep my progress. There are still two problems with this. The first being that I shouldn’t have to pay for a game which was already paid for. The second being that I’m not even sure what I was originally banned for, so who’s to say that it won’t just happen again?


I personally have to deal with ban appeals daily within the forumsAce of Spades</a> community pertaining to the  as well as the global blacklist</a> that I operate. Obviously the forums are a bit easier to manage due to it being a bit more structured, plus quick access to evidence for the initial banning. As for the global blacklist, it’s managed by trusted server admins. Bans are issued for those who have been caught in-game, by said administrator(s). Sure there are the cliché appeals including “my brother was the one cheating”, but if I’ve learned anything from this, it’s to give the user a fair shot. If they are persistent, their story is consistent, and they seem to be telling the truth, use your own judgement. Don’t just rely on some sort of software or a possible human error.

I can understand Even Balance keeping some things in secret. But telling somebody what triggered the violation does not seem like very sensitive information (or at the very least, whether it was a disk file or a running process). If somebody was cheating, I’m sure they’re aware of what triggered the violation.

The only sense of rationalism during this whole process was talking to the admin one on one. I think that speaks a lot for itself. Hopefully over time, users will be given the benefit of the doubt at the discretion of the admin, rather than snuffing them out by relying entirely on Evan Balance’s seemingly holy word.

Another thing that still peaks my curioustiy, is why a third-party banlist (such as PBBans) exists in the first place? Don’t get me wrong, I understand the concept behind it. But I mean why doesn’t Even Balance host a federated banlist themselves if third-party associates are going to value their word over the user in the end anyway? I was really hoping talking to a person one on one (and discussing any updates with that same person) would help me bypass some of these roadblocks that many users seem to face, but it seems my attempts were futile.

DICE (the creators of Battlefield 3) seem to be looking for an anti-cheat developer. Who could blame them for all of the drama surrounding third-party anti-cheat tools like PunkBuster?  A native implementation should prove to be a lot more reliable rather than outsourcing it to outdated/easily exploited solutions. More information regarding the DICE job opening here.

Just some advice to server administrators, banlist administrators, PunkBuster officials, and more:

  • Don’t rely on a system that has a smeared track record.
  • Don’t rely on a fully-automated “you’re caught-you’re banned” system.
  • Don’t rely on the honesty and integrity of server admins - or at least not as much as you do currently. Human error is prone, humans can have malicious intent.
  • Look into false positive reports.
  • Stop treating players as some sort of criminals. No software is 100% reliable just as no human is.

Innocent players are constantly banned while there are obvious cheaters running rampent in public, PunkBuster-enabled servers.

No system is perfect, but no user should have to deal with a system as broken as this.


Just released a small patch for Spadille. Fixes some bugs listed below:

  • Fixed serverlist parsing bug (due to updated serverlist format)
  • Fixed bug with not being able to change server log directory
  • Fixed some bugs with third-party game modes
  • Fixed bug with ping filter not properly being applied
  • Fixed bug when refreshing with favorites/recent tab open showing incorrect numbers
  • Fixed bug with sliders not updating interface in game settings

Either re-download from the projects page, or start Spadille and use the included updater.

Wanna know something that makes you feel like a dead-beat?

Feels bad, man. It’s been far too long since the last Spadille update. Let’s change that. This update is long overdue and hopefully the amount of changes/new features will help compensate for it.

Game Updater

One of the most requested additions has been a game updater. Recent versions of Spadille have shown that a new version was available, but only served as a link  to the Ace of Spades homepage. Now updates can be downloaded from within Spadille.

Game Settings + Keybinding

Ace of Spades 0.60 Beta added configurable controls via (rather arcane) scancodes. This utility will make changing controls much easier. Simply find the game action you want to change, and select a key from the drop-down list. Some of the key names may seem a bit cryptic, but every possible key is on there.

A standalone version of the this utility can be found here.


The screenshot functionality got a pretty big overhaul. The screenshot mechanism was re-written from scratch for better reliability. Users reported slow load times when dealing with large quantities (250+) of screenshots. Screenshots are now cached to reduce memory allocation as well as increase load times (not to mention better multi-threading). Last but not least is screenshot uploading. With a single click, you can upload screenshots to Imgur for easy sharing.

Download Spadille 1.5

Complete Change Log

  • Filters are now tri-state (neutral, enforce, ignore)
  • Added support for third-part game modes (TDM, TOW, 1CTF, R1CTF, Kraken, Babel, Arena, IRPG, IPower)
  • Added searching by map name
  • Added searching by country
  • Added key mapping to game settings
  • Added JSON support
  • Updated GeoIP database
  • Fixed some obscure country names
  • Updated game settings for 0.75
  • Server browser redesigned
  • Removed in-game name dropdown
  • Improved memory management
  • Added game mode column
  • Added map name column
  • Updated serverlist parsing
  • Added support for server ports
  • Removed connect dialog from localhost connect
  • Joined servers are now immediately appended to recent listing
  • Fixed bug with software/favorites column not remaining sorted
  • Added search delay
  • Added option to remove borders from screenshots
  • IRC link opens Quakenet webchat if IRC client is not found
  • Added search character limit
  • Local pings can now be preserved between refreshes
  • Improved search (multiple word splits)
  • Removed clan prefix option
  • Made country flags optional
  • Fixed possible infinite recursion bug with Pyspades serverlist updating
  • Attempting to join multiple games now kills first instance (optional)
  • LOTS of refactoring
  • Added global blacklist integration
  • Added proper in-game name truncating
  • Update downloading is now asynchronous
  • Update downloading can now be cancelled
  • Added proper error handling for failed update download
  • Fixed bug when toggled columns are cut off on right
  • IP column is now hidden by default
  • Added country column/removed country flag from IP column
  • Added checking for local server when attempting to connect to localhost
  • Fixed bug with dialogs not remembering “do not show again” when cancelled
  • Implemented screenshot cache
  • Added more functionality to tray menu
  • Added proper AoS installation checking
  • Added feedback form
  • Completely redesigned mod manager/added more functionality
  • Mod manager now loadtime dispersed
  • Added server logging options
  • Removed filter counts
  • Added option for HTML encoding/decoding
  • Added server language options
  • Added client language options
  • Completely redesigned map manager/added more functionality
  • Fixed bug with inproper map save filename format
  • Fixed bug with saving corrupt maps
  • Added quick match button
  • Redesigned about dialog/updated credits
  • Made hit indicator disabling dynamic
  • Added support for float-based mouse sensitivity
  • Added new “first run” dialog
  • Column sort direction is now consistent between runtimes
  • Fixed bug with non-fixed ping strength indicators
  • Added menu option to refresh individual server data
  • Added option to join server on middle-click
  • Sever URLs are now case-insensitive
  • Added icon for vanilla servers
  • Added direct connect button to main window
  • Ping strength indicators are now color-coded
  • Updating pings now only applies to visible servers in list
  • Redesigned converter
  • Added automatic refreshing disabling after set number of failed attempts
  • Added error reporting
  • Added option to clear error log
  • Adding automatic detection for new game install
  • In-game name checking is now dynamic
  • Game version checking is now dynamic
  • Error log viewer is now dynamic
  • Missing GeoIP database now prevents further execution
  • Added option to upload error log to Pastebin.com
  • DDFontMake now included with installer
  • Added create new map option in map manager
  • Added option to periodically sync with global blacklist when hosting server
  • Rewrote PrtScr hooking mechanism
  • Added server counts in tabs
  • Added option to backup mods
  • Automatic refresh is now only disabled if server connection is successful
  • Added option to close to system tray
  • Removed deprecated Deuce name check
  • Only successful joins are added to history
  • Spadille now overrides “server full or misconfigured” error/offers retry option
  • Added image uploading/online library to screenshot manager
  • Improved game version detection reliability
  • Added option to launch Spadille on system startup
  • Added option to format title of Ace of Spades client
  • Added drop-down list to direct connect for recent connection
  • Added game updater
  • Added support for direct connect using server URL without prepending aos://