Master Ban
Global Blacklisting of Players
Overview
The master ban system I wrote was for Firearms Half-Life. It was a dll that would get hooked by the game server dll. The game server DLL would simply ask the master ban DLL if a given player ID was banned from the game permanently or not. A simple true/false response was returned from the master ban DLL. Once the response was read by the game server DLL, the player would be kicked with a message stating they were permanently banned due to being a known cheater; which is ultimately what this was aiming to stop.
Technology
This master ban DLL would connect to a "Master Ban" server and ask it if a given player ID was banned or not. The back-end database was simply a text file with player IDs (not names) and ban reasons in it. I wanted to make it modular instead of coding this log into the game server dll so that it could work with any mod I created. The Firearms team also used this to lock down their internal beta tests so that leaking was not possible–without any serious hacks to the ban DLL.
The master ban server could also have children server which kept copies of what was on the master server. This way there didn’t neccessarily need to be a single connection point. This kept load off of the master ban server by allowing server admins to point the ban check client at any number of given downstream servers.