================================================================================
                       .o0   UProtector v0.98b   0o.     
                          (c)2003 by SA|BarendB
================================================================================

UProtector is a cheat detection mod for unreal servers. It will check unreal 
packages loaded on each player intensively, and kick them if a cheat (or an 
unknown package) is found.
Uprotector is also a servertool that will make running your server easier 
(hopefully :)). It can launch a server and keep it running. It can automatically
recompile it's packages every day to ensure extra anti-hack protection.



=============================  Installation  ===================================
 
Unzip the Uprotector folder to your server's unreal directory (it should
look like this: ..\Unreal\Uprotector\Uprotect.exe).
Make sure your server is not running (otherwise shut it down), and make the 
following changes to your server's ini file (that's by default unreal.ini):

Add the following lines under the [Engine.GameEngine] section:
ServerPackages=UPCI
ServerActors=UProtect.UProtect

Scroll down to the [Editor.EditorEngine] section, and make sure the EditPackages 
lines look exactly like this:

;EditPackages=Core
EditPackages=Engine
;EditPackages=Editor
;EditPackages=Fire
;EditPackages=IpDrv
;EditPackages=UWindow
EditPackages=UnrealShare
;EditPackages=UnrealI
;EditPackages=IpServer
EditPackages=UPCI
EditPackages=UProtect

Now start Uprotect.exe from the Uprotector folder and press the recompile button.
The protection files will now be compiled and the server will be launched.
In case of compilation errors, check the ucc.log file.
In case of server starting problems, check the server.log file.

When compilation succeeded, press the 'Launch server' button to start the server.

If you have no access to run executables on your server machine, you can also 
use the UProtect packages without the executable. To do so, install it first on 
a local machine to get a set of compiled packages. Then put those on the server
in the same way described above.



===============================  Settings  ======================================

If you started Uprotector for the first time, it will use default settings.
You can change those by editing the file ..\Unreal\Uprotector\Uprotect.ini.
These settings are used by UProtector.exe only.
Here's what all settings mean:

-Path = the path of your unreal\sytem directory, may be relative to uprotector path 
	(ie ..\system\)
-ServerExe = Name of the server's exe file
-ServerIni = Name of the server's ini file
-ServerLog = Name of the server's log file
-GameType = the gametype string you would normally use to start a server. Mutators
	should be added here using '?', just like usual.
-bUniqueLog = Use unique server log file names
-Day = Current day
-PriorityClass = Priority of the server in windows (use 128 for best results)
-CurrentMap = Current map running on the server
-bKeepServerRunning = Will relaunch server when it crashes
-bAutoStartServer = Will automatically launch the server when uprotector starts
-bRecompile = Recompile uprotect packages or not
-CheckTime = Time interval uprotector will check if the server is still running.
	Set this somewhere between 1 - 30
-UniqueCode = The unique name of the UProtector clientside package. If recompiling
	fails and the error message is something like "The line EditPackages=UPAXWERJ 
	was not found in unreal.ini", then you should make sure that this name 
	(UPAXWERJ in this case) is the same in both Uprotect.ini and the server's ini.


There's also serverside settings for the UProtect.u package. These can be set using
the server's advanced options, or by editing the file ..\Unreal\System\Uprotect.ini.
Here's what all settings mean:

[UProtect.UProtect]
DelayIdle = Idle time between 2 concurrent checks. Set this value low, like 0.1 - 1 sec
DelayCheck = Time in which a client must execute a check. Set this value as low as possible,
	but make sure clients are not kicked because they couldnt communicate in time. Good
	values are 1 to 10 seconds (1 is timecritical, 10 means slow detection)
AutoKick = Kick players if any irregularity is found
AutoBan = Ban players if any irregularity is found (must have kickban installed!)
Cmd = Command string for admin commands
CheckAll = Check all loaded packages on a client. If False, check only default system packages
BotCmds = Execute known aimbot commands to test if they exist.
NoResponseTries = Number of times the server should retry if a client is not responding. The
	time of 1 try is DelayIdle+DelayCheck, so if DelayIdle=1 and DelayCheck=3, then
	NoReponseTries=5 would mean 5*(1+3)=20 seconds before connection timeout. After this
	time the client will be kicked.
BanLevel = Number of detected irregularities at which clients will be kicked. Because a single
	detection doesnt necessarily mean someone is cheating, a banlevel of 2 or 3 will make
	sure no innocent players are kicked.
MessageTime = This is the time that a translator message will be shown on a client before kicking.
AllowGhost = When False, clients will be relaunched to the server when an unknown ('ghost') package
	was found.
	

	
================================  Notes  ========================================
If you got any problems, bugs, ideas or whatever, feel free to contact me at:
paratoxic@hotmail.com
I am not in any way responsible for damage to your hard- or software caused by 
using this program. Use at your own risk (So if your stuff blows up, don't blame me! :))
