Q2PRO

Q2PRO is an enhanced Quake 2 client and server for Windows and Linux. Supported features include:

Security

Many forks of Quake 2 engine are focused mostly on server side security and contain fixes only for bugs that are directly exploitable over the network. Q2PRO attempts to improve this situation and additionally fixes multiple vulnerabilities present in filesystem code and various file format parsing routines. This is extremly important as any multiplayer Quake 2 client is put under direct control of the server once connected. Unlike other popular clients, Q2PRO will do its best to prevent malicious or compromized server from uploading a crafted BSP or PAK file on your machine and then executing arbitrary code from it.

Downloads

Q2PRO is no longer in active development. The final version (r1093, released 30 May 2011) is still available for downloading. Documentation on Q2PRO-specific cvars and commands may be found in doc/ subdirectory inside the source tarball.

FAQ

It does work. However, it only displays servers that are in your LAN segment or listed in your address book (empty by default).

Check your ‘intensity’ and ‘gl_modulate’ settings. Q2PRO defaults both variables to 1, while other clients may have different default values for them.

Q2PRO is very well suited for playing with vertical sync on. In fact, it is recommended to enable vertical sync for smooth, tearing-less rendering. Assuming you have ‘cl_async’ enabled, it is important to set ‘r_maxfps’ correctly. On Windows, it should be set exactly equal to the vertical refresh frequency of your monitor (typically 60 Hz for LCD monitors). On Linux, automatic synchronization is supported, you can simply set ‘cl_async’ to 2 and leave ‘r_maxfps’ alone. You can check your current movement FPS by executing ‘echo $cl_mps’ command. When configured properly, it should be equal to your ‘cl_maxfps’ setting.

This is a harmless effect caused by protocol 36 attempting to reduce your outbound traffic and sending packets with frequency limited by ‘cl_maxpackets’, instead of ‘cl_maxfps’ used by other protocols. Since default value of ‘cl_maxpackets’ is 30 (lower than typical ‘cl_maxfps’ value), server miscalculates your ping to be slightly higher. This does not affect your gameplay experience in any way: events like pressing ‘+attack’ are instantly pushed to the server. Ideally, server should be configured to use improved ping calculation method that uses minimal network latency instead of average latency to avoid possible confusion.