*********************************************
* QValidate V1.01                           *
*                                           *
* MD5 Package checker for Unreal Tournament *
*                                           *
* By: ProfessorQ                            *
*********************************************

DESCRIPTION

This is a package validator for Unreal Tournament. It checks if certain packages are
the same on the client and on the server. It does this not by re-loading the file
into memory (like UTPure does with WebResponse.IncludeBinaryFile), but in-memory.
Because it's not possible to do this with UScript, it's partly native coded in a DLL.

FIXES SINCE V1.00

- For each player, the checked packages will be logged.
- INI files now also have version numbers (for example: QValidate101.ini)
- V1.00's loader was checking for the presence of QValidate.dll in stead of QValidate100.dll

INSTALLATION (SERVER)

- Copy the contents of this ZIP file to your server's UnrealTournament\System directory.
- Modify UnrealTournament.ini by adding the following 2 lines under [Engine.GameEngine]:
  ServerActors=QValidateLoader101.QSA
  ServerPackages=QValidate101
  ServerPackages=QValidateLoader101
- Modify QValidate101.ini and add the packages you want to check. You MUST do this in the
  following form: <package name>|<cache name>
  Example: To checkUTPureRC6E we will have to know it's cache filename, which is
  BB453B8011D7BD571000C6A34E0C0BA7.uxx. All packages you add in QValidate101.ini must be
  without the file extension. So UTPureRC6E must be added like this:
  PackagesToCheck[0]=UTPureRC6E|BB453B8011D7BD571000C6A34E0C0BA7
  This will ensure that UTPureRC6E will always be checked, also if UTPure is in cache on 
  the client machine.
- Modify QValidateLoader.ini and specify the website where you host QValidate101.dll like
  this:
  [QValidateLoader101.QChecker]
  DownloadURL=http://download-url.com
- Now start your server, and QValidate will be active.

INSTALLATION (CLIENT)

For QValidate to work properly, the client MUST copy QValidate101.dll to his
UnrealTournament\System directory. If the client doesn't do that, the loader mod will
kick the player with the following message in his console:
#
# MISSING FILE ERROR!
# To be able to play on this server you need QValidate101.dll!
# You can download it here: <download url>
#

TODO

Make it Linux compatible. However, this won't be possible without some help from UTPG.
Unfortunately they won't give me any headers so I can compile on Linux because of the
security risk they think it will have. I hope that when they see this they will change
their mind about that, but until then it will only be Windows compatible.

CONTACT

You can contact me on UTPure forums (http://forums.utpure.com) for questions about this
mod.
Also, I'm quite frequently online on #unrealadmin on irc.quakenet.org.

Greetz,

ProfessorQ