##############################################################################
#                            AnthChecker v1.27                               #
#                            by )DoE(-AnthraX                              #
##############################################################################

1) What is it?
--------------

AnthChecker is an advanced unrealscript-based packagechecker. It will detect
a series of cheats that can't be blocked. 

Please take a few minutes to read this document, it will spare you and me a lot
of trouble.

2) What does it do?
-------------------

AnthChecker will validate every client (including clients that run Linux/MacOS)
after they enter the server. Depending on the server's settings AnthChecker will:
    * Perform selfchecks to prevent clients from redirecting/bypassing the
    checking routines
    * Perform CRC (Type 1) checks on files that should be identical on the 
    server and on the client (files like UTPure.u)
    * Perform CRC (Type 2) checks to identify the client's skintextures and
    kick if they're hacked
    * Perform MD5 checks to identify the client's renderdevice and kick if
    it's hacked
    * Scan for disallowed files (such as OpenGL32.dll)

3) Installation
---------------

To install AnthChecker on your server:

1. Unzip the contents of this zip package in your server's system folder. 

2. Open your server's unrealtournament.ini file and find the line that reads "[Engine.GameEngine]".

3. Add these lines under it:

    ServerActors=AnthCheckerS_v127.ACActor
    ServerPackages=AnthCheckerC_v127
    
4. Move to the end of your UT.ini file and add these lines 
   (you can find the explanation of the settings under 4) Settings):    
    
    [AnthCheckerS_v127.ACActor]
    bKickUnknown=false
    bBroadCastJoin=true
    bBroadCastIPs=false
    bSelfCheck=true
    bPureCheck=true
    bSkinCheck=true
    bSoundCheck=true
    bShowConsoleMessages=true
    bGUIDCheck=true
    TimeOut=30
    bReportCheats=True
    bReceiveUpdates=True
    Packages[0]=
    Packages[1]=
    Packages[2]=
    Packages[3]=
    Packages[4]=
    Packages[5]=
    Packages[6]=
    Packages[7]=
    Packages[8]=
    Packages[9]=
    LogPrefix=
    LogPath=
    
5. Restart your server

4) Settings
-----------

You can easily change the AnthChecker settings by opening your server's ini file and changing
the lines you added at the end.

    bKickUnknown         : set to true if you want to kick clients with an unknown renderdevice
    bBroadCastJoin       : set to false if you don't want to broadcast every client's nickname/renderdevice/operating system after the validation
    bBroadCastIPs        : set to true if you want to add the client's IP's to the bBroadCastJoin messages
    bSelfCheck           : set to false if you don't want to perform a crc check on the anthchecker client package
    bPureCheck           : set to false if you don't want to perform a crc check on the utpure package
    bSkinCheck           : set to false if you don't want to perform crc checks on the skintextures
    bSoundCheck          : set to false if you don't want to perform a crc check on the female2voice package
    bShowConsoleMessages : set to false if you don't want to display what's going on in the client's console
    bReceiveUpdates      : set to false if you don't want to receive info about new renderdevices from the AnthChecker 
    			   masterserver. when set to true, AnthChecker will also receive notifications about new versions
    bReportCheats        : set to false if you don't want AnthChecker to report cheating attempts to the AnthChecker masterserver
    bGUIDCheck           : set to false if you don't want to verify the client's AnthChecker GUID
    TimeOut              : ammount of time the client gets to finish the checks (in seconds)
    Packages[x]          : you can manually add files to crc (type 1) check here
    			   syntax: <file extension>,<filename>,<packagepercent (1-255)> (*)
    LogPrefix            : Prefix of the external logfiles (default: [AC])
    LogPath              : The path in which the external logfiles are stored (default: ../Logs/)
 
 !! Important !!: Due to the limitations of the unreal engine, you're not advised to manually add files.
 		  If you do decide to do so, use a small packagepercent, UT will usually crash after crc checking
 		  10Mb of data.
    			  
 (*) if for example you want to perform a crc type 1 check on the 10 first bytes of every 255-byte block of CTF-Gauntlet.unr, 
 you'd have to add "unr,CTF-Gauntlet,10" (without the quotes)
 
 5) History
 ----------

 v1.27 (Public):
	* [Fixed] Players getting kicktype 8 because of the slow connection between the UT server and the masterserver
	* [Fixed] Illegal GUID's for linux clients with v451
	* [Changed] Linux/Mac Cachecleaner can move multiple files at one time

 v1.26 (Internal):
        * [Added] Routine to find cached files even when the cache.ini file is corrupted
	* [Added] Option bBroadCastIPs
	* [Added] AnthChecker version gets logged to the external logs
	* [Changed] Players get to see the URL of my forum + AnthChecker version/build when they get kicked

 v1.25 (Internal) :
	* [Added] Extra GUID check
 
 v1.24 (Internal) :
 	* [Fixed] bug in masterserver encryption
 	* [Fixed] bug in the skinidentification (players with unknown skins were allowed to enter the server)
 	* [Fixed] Linux/Mac timeouts
 	* [Fixed] Critical bug that broke every mutator loaded after AnthChecker (this also affected SmartCTF/BDBMapVote/3dfxmapvote/...)
 	* [Fixed] bug that caused a lot of type 1 kicks (failed to generate checksum) for cached files (only happened for clients with corrupted cache.ini files)
 	* [Added] options LogPath and LogPrefix for the external logs
 	* [Added] Support for clients that have multiple system/textures/... folders
 	* [Added] Blocked "EnhancedSkins"
 	* [Added] New hashes for several renderers
 	* [Added] GUID verification (so far, this is only used for the masterserver)
 	* [Added] AnthChecker automaticly adds itself to the serverpackages list if needed
	* [Changed] names of the Ref1 skins to Ref 1/Warez
 
 v1.23 (Public) :
 	* First public release
 
 6) Thanks to
 ------------
 
 - Azazel & UnrealAdmin : for hosting the UTGL masterserver and my forum
 - Nuffy & Magma        : for providing gamearena.co.uk betatest servers
 - Cratos               : for providing renderdevices and a betatest server
 - TNSe                 : for the MacOS and unrealscript lessons
 - Obsidian             : for linux betatesting
 - Rush                 : for slackware linux betatesting
 - Meta & Neopythe      : for gentoo linux betatesting
 - ZorroTheFox          : for MacOS betatesting
 - Petr Jelinek		: for the original MD5 code
 
 7) Feedback & Support
 ---------------------
 
 http://www.unrealadmin.org/forums/forumdisplay.php?f=176
 
 
 