ProQuake Linux 3.90 Server - RC1 - April 24, 2008 - Baker
http://www.quakeone.com/proquake
-------------------------------------------------

This is a "cheat-free" mode capable Linux dedicated server build of ProQuake 3.90 Linux dedicated server.

"Cheat-free" mode should only lightly be trusted.  There are ways on Linux to easily bypass ProQuake
cheat-free mode.  On Windows, certain cheats exist that are not covered in the scope of "cheat-free"
mode therefore cheat-free mode cannot protect against them.

Features
---------
Anti-Wallhack protection 
Server "Default Map" capability
Server-side IP masking
Optional New Connection x seconds muting
Status shows all players ProQuake version #
Low bandwidth client mod-support
Sys_ticrate is now a server variable


Details
-------

1) Anti-Wallhack Protection (Baker Version) [ON BY DEFAULT]

The server defaults to sv_cullentities 1 which does a visibility test on players.  If Player X can't 
see Player Y, Player Y isn't sent to Player X so no wallhack or stick model cheat will show a player 
that cannot be seen.   

This protection does not depend on the player model, it uses player slots ... so this applies no 
matter what model represents a player (eyes.mdl, etc. -- all are visibility tested).

sv_cullentities 1 = anti-wallhack test is performed on PLAYERS ONLY

2) FULL Anti-Wallhack Protection (Rook Version, using Baker Version for players)

A small chink in the armor of the "Players ONLY" anti-wallhack protection is that a player using
transparent walls can still see rockets and such to some extent.  There isn't a way to know where
a player is hiding, but if they fire someone using a wallhack might be able to better locate the
player or possibly know the exact position sometimes.  

Set sv_cullentities to 2 for ALL ENTITIES anti-wallhack protection.

The most noticeable side-effect of sv_cullentities 2 is that player rockets that are partially 
obscured will have an interrupted rocket trail.  The test is not performed on doors and platforms
and such.  Just items and projectiles.

sv_cullentities 2 = all entities anti-wallhack tested

3) Server "Default Map" Capability [ON BY DEFAULT, MAP = START]

Quake dedicated server will crash if the server tries to change to a map not available.  This is
highly annoying, because you will need to actually manually restart the server (unless you have a
looping script).

With ProQuake 3.90 Linux dedicated server, if a map isn't found it will switch to the START map.

You can set this yourself as follows:

sv_defaultmap "DM3"

4) Server-Side IP Masking [ON BY DEFAULT, to disable add -noipmask to command line]

Mod side IP masking is imperfect and requires some REALLY funky QCCXish code that isn't QuakeC.

Engine IP Masking is superior and can't be penetrated.  Mod-side can supposedly be penetrated
on fresh connections.  Supposedly.

5) New Status Shows All Players ProQuake Version

Enough said.  Old Qrack client will show as 3.50 just like ProQuake 3.50.  Tested and should not
interfere with Qview, IPLOG or other features that try to read the status output.

Current Qrack clients as of today, will show as 3.60.  Eventually, I'd like to iron out a scheme
with Rook and modify the server to indicate the client name too (ProQuake, Qrack, etc.)

Non-ProQuake and non-Qrack clients will show 0.00, those clients could be anything like glquake.exe, 
JoeQuake or DarkPlaces.

6) Sys_ticrate is server cvar

So if you do "test2 speaknow.quakeone.com" it will show the ticrate.  QView and QView-like apps
will show the ticrate in the list of server variables as well.

7) Low Bandwidth Mod-Support

Not many dialup users left, but this allows a mod to support a "LAG" command in the QuakeC
that will withhold sending certain things like gibs or what not.  Must be coded in the mod for this
feature to work.  

8) New Connection X Seconds Muting

Even if banned, you can connect to a server and say something for about 1 second before a ban-file
kicks in.  If you set pq_connectmute 5, this would mean a new connection can't talk for 5 seconds and
viola --- problem solved.

pq_connectmute (seconds)


Credit
------
Anti-Wallhack (Baker Version) - Derived from the FTEQW engine.  Very little modification to the code.
Anti-Wallhack (Rook Version) - By Rook, he wrote it as a single function.
Server Default Map - Rook
New Connection Mute Period - Rook
Server Side IP Masking - Slot Zero
Low Bandwidth Mod Support - Slot Zero

"Wow.  I really didn't do anything.  EXCELLENT!"  - Baker

Major Credit
------------
JP Grossman - The author of ProQuake for entrusting me in the continuation of ProQuake development.
aguirRe - His advice and helped me learn some crucial things early on that I would not have solved myself.
Mithril - He setup my Linux machine from A-Z so I make a Linux version.  He is why there now is a Linux version.

Source Code
-----------

This is all GPL 2.0.  If you would like a copy of the source, private message me (Baker) at QuakeOne.com
and I will send you a copy of the source code.




