First of all, being the owner of AAA Proving Grounds, I take most calls of cheating with a large grain of salt, entirely because the general Tremulous community tends to jump to conclusions about cheating. Most are fine, but some prefer to bitch and complain.
Those of us that have been playing Quake for a much longer time than Tremulous realize that cheaters are an unfortunate but not unexpected phenomenon in these online games. Administrators are the ones tasked on non-punkbuster (and sometimes these even) to deal with cheaters timely and effectively.
So firstly, (RE: the idea of a transparent server-side catching of n_* cvars...)
There are major problems with this issue.
Firstly, as many have already said, THE CLIENT CAN LIE about it's information, aside from IP address (added to userinfo server-side after challenge response). Needless to say, this would not work.
Secondly, those cvars names and registers can be completely separate and distinctive. I know that a simple s/n_aim/blarg_bookabombs/ on Null's bot source would suffice. Anyone who knows C can figure that out.
Third, as shown in Quake III (and TeamArena), OGC (which is what Null's bot is based on) can defeat this very simply. When punkbuster began scanning cfg's in /baseq3/ noskill decided to implement a second console via F10 in which you could enable these cvars, completely separate from the host system. These cvars were stored in ~/.ogc/ (posix) or a special folder in windows. This was implemented by version OGC 1.92 and above for Q3 1.32c.
I have thoroughly investigated this idea. But it will not work aside from planting a keylogger inside the client. This wouldn't be a good idea for Tremulous. (Who in their right mind would voluntarily download a keylogger just to play a game?)
Now, secondly. A 'rapid view-angle change' detector.
A mouse is an analog device, sending signals to represent movement on a 2D plane. (the mouse x/y coords). These are incremental and predictable (generally). Most aimbots directly copy their angle information onto the entities view angle registers. In first thought this is a great way to catch aimbotters. Unfortunately, this also has flaws. In Q3 Bot AI, the bots run with weighted drifts, in order to make this a little easier for players. Developing an aimbot that would for instance, sqrt() the angle-to-point at the player and add a little extra, here and there, would prove quite lethal with an improved triggerbot (which decides shots based on lerpOrigins and unlagged predications), and would be very hard to catch.
Remove the triggerbot and let a human player fire, you couldn't catch them. Simple. But what you don't know can't hurt you. (At least in an online game. =) )
And finally, a global white list, although very effective, I could bypass quite easily, via a couple transmission-reflecting zombie machines. Or even Tor perhaps. My methods however will remain known to me only.
The biggest call-say I could make up over this is a legitimate false positives. How can you prove who someone is, via IP? You cant. GUID you say? Well it is very easy to spoof GUIDs. Google can show numerous ways of doing so. It gets quite bad in Q3 with some servers.
$cat ~/.q3a/baseq3/boomboxer.txt
ClientNum: 7
Name: "^1Boom^3boxer"
IP: xx.xxx.x.x
GUID: "ABCDEFGHIJKLMNOPQRSTUVWXYZ001337"
Hence my point. And more so, what happened to just dealing with them on your own servers as the come? Honestly, one botter does not CIH your server, so just accept the facts and ban the fucker. These "preemptive strikes" only dismay players, and make botters more successful in destroying the game.
*********************
In closing remarks, a global white list is great, but I will not support it. I firmly believe that banning as each problem surfaces is simple and effective for all concerned administrators. If you cannot police your own server, don't have one.
^^^
And on a side note, certain administrators DO ban the griefers, and the proceed to LEAVE THEIR OWN SERVER to kick/ban the player from the next server that player joins, even before the culprit has joined a team.
A note to you specific admins that follow that view. (You know who you are.) You keep you own anger in the confines of your own server. I don't want you righteous bullshit polluting what I attempt to have sanitized to the best of my ability. You do it...it's also what I include in the griefing definition. You would be disrupting my server for your own pseudo-elitist satisfaction, and only partaking in a witch hunt. You are the ones spreading the hysteria.
The difference between the aimbotters and you problematic Nasi administrators in effect is this.
Botters only get a temporary ban.