While I was updating the server, I happened to notice someone partially typing the q_version command and saw that it still worked. I immediately patched the server binary to prevent these messages and thought I would explain why I did in this thread.
For those not familiar with the feature, if you type "q_version" in a chat message, players who are using recent versions of ProQuake or Qrack will automatically spit out what client version they are using. Here is a snippet of how this looks from one of my logs,
Code:
#1 nick: q_versi
#1 nick: ProQuake version Windows GL 4.51 Beta
#8 [fz] fuzzy: ProQuake version Windows GL 4.51 Beta
#5 MasteR SplinteR: ProQuake version Windows GL 4.30 Beta
#11 og: ProQuake version (DirectQ emulated)
At face value, it seems like a novel idea. But there are several issues I find disturbing about this feaure.
#1) Invasion of privacy.
The client should have a method to disable this feature. If I want to share this information, it should be my choice. [If a command already exists in ProQuake to disable this, please let me know]
#2) Abusive usage.
A 20 second grace period isn't enough. The client should limit the output to the server to say once or twice per level, or ideally a user configured value. [For those who can remember several months back, or longer (I forget), the server was being spammed constantly because of an oversight in the client code. This was when I first decided to block the message from appearing on the server by replacing the 'q' with an 'x'. Note: I am aware that this has been fixed by preventing the command to work multiple times on one line and a 20 second delay]
#3) False sense of security.
As I was looking through the logs trying to find an example of how the feature works (for this post), I noticed a few instances where people were using the output of q_version as proof they don't cheat. This is complete nonsense. If you're determined enough, you can make the output of q_version work on any client, even bots. In no way does the output of q_version determine if you're cheating or not.