================================================================================
 Universal Unreal
 For Unreal Tournament (UT99)
 Version 1.10 Build 3
 April 2009
 Created By Matthew 'MSuLL' Sullivan
 http://www.unrealadmin.org/forums/forumdisplay.php?f=199
================================================================================


I know it looks long and complex. It's really not :)

If you have questions or need support with installation and usage
of Universal Unreal, please visit the site above and post your
question in the official Universal Unreal forum.

Demo Installation:
http://www.ut-slv.com/universalunreal/

Screen Shots & Features:
http://www.ut-slv.com/universalunreal/index.php?p=help

================================================================================
  UPGRADING FROM A PREVIOUS VERSION
================================================================================
 1. Rename all instances of UniversalUnreal1xx-Buildx to
    UniversalUnreal110-Build3 in your server's configuration file.

 2. See the UT SERVER INSTALLATION GUIDE section below to check for any new
    settings you wish to use.

 3. The UT server component and the web component both transfer version
    numbers in communications to avoid issues with compatibility. Don't be
    concerned if Universal Unreal isn't working if you haven't updated both
    the UT server component and the web component yet. DO NOT RE-IMPORT THE
    UniversalUnreal.sql FILE, IT IS FOR NEW INSTALLATIONS ONLY!

 4. Individually transfer settings from the previous constants.php file
    to the new version. DO NOT SIMPLY COPY / PASTE THE ENTIRE CONTENTS OF THE
    OLD FILE INTO THE NEW ONE!

================================================================================
  TABLE OF CONTENTS
================================================================================
 1. INTRODUCTION
 2. REQUIREMENTS FOR UT
 3. REQUIREMENTS FOR WEB SERVER
 4. WEB SERVER INSTALLATION GUIDE
 5. UT SERVER INSTALLATION GUIDE
 6. CREDITS & COPYRIGHT NOTICES
 7. LICENSE
 8. VERSION HISTORY
 

================================================================================
  1. INTRODUCTION
================================================================================
What is Universal Unreal?

Universal Unreal is a system by which players can better connect
with each other for enhanced gameplay. Universal Unreal is a group,
or 'Universe' of servers with a common player base. For example,
UT Strangelove players and servers could make up a 'Universe'.
Players can create an account on your installation's website
to take full advantage of all the features of Universal Unreal,
both in-game and online.  It's a bit like Xbox Live, but free
and open source.

Universal Unreal also includes a player information system,
accessible from in-game and online. This system records
information like Nexgen client IDs, player aliases,
IP addresses, hostnames, and access history. The information
system also logs Nexgen mute, rename, kick, and ban actions,
to simplify administrative research needs.

For each community / grouping of servers, there only needs to be one
universe web server installation, and then each UT server is configured
to connect to it.
   


================================================================================
  2. REQUIREMENTS FOR UT
================================================================================
Universal Unreal 1.10 requires Nexgen 1.10 to be installed. To learn
more about Nexgen, please visit:
http://www.unrealadmin.org/forums/showthread.php?t=26835

This software requires an open TCP port (much like UT web admin).
For many hosts, the UT server port works just fine (7777 by default). And yes,
you can run both UT and Universal Unreal on the same port, as UT's communications
are UDP packets, while Universal Unreal's are TCP. You might have to
contact your server host to find out what ports are open. The following game
providers are known to already have port 7777 open to TCP traffic:
 - JCHost (www.jchost.net)
 - GameServers (www.gameservers.com)
   


================================================================================
  3. REQUIREMENTS FOR WEB SERVER
================================================================================
PHP 4 or PHP 5
MySQL Database Server

To function properly, Universal Unreal will require
PHP's SESSION features, as well as the functions
ini_set, fopen, stream_set_timeout, and stream_set_blocking.
Most hosts will have these features enabled by default.
If Universal Unreal doesn't work as expected, check with your
web server host to ensure that these features are enabled.

If your web server host blocks the above functions,
Universal Unreal can make use of the cURL PHP libraries,
if they are installed. To activate this feature, find

define("QUERY_METHOD",0);

and set it to

define("QUERY_METHOD",1);

...in the constants.php file.  See step #2 below for information
about the constants.php configuration file.


================================================================================
  4. WEB SERVER INSTALLATION GUIDE
================================================================================
 1. Import the file 'UniversalUnreal.sql' into your MySQL database. If you
    are not sure how to do this, contact your web hosting provider.
 
 2. Open the file /html/include/constants.php with a text editor and fill in
    the appropriate data. Remember these settings, you will have to use them
    again when configuring the UT component.

 3. If upgrading from a previous version, individually transfer settings from
    the previous version to the new version. DO NOT SIMPLY COPY / PASTE
    THE ENTIRE CONTENTS OF THE OLD FILE INTO THE NEW ONE!
 
 4. Upload all files and folders located in the /html folder of this package
    to your web server.
 
 5. Open a web browser and navigate to your site. Check for any error messages
    generated by PHP or MySQL. If everything looks good, register for your
    account. Universal Unreal automatically grants the first account
    administrative privileges.

 6. *IMPORTANT* To add UT servers to Universal Unreal, login to your installation
    and go into the 'Administration' area of the site by clicking the link in the
    navigation pane. Click on 'UT Server Configuration' to add / remove server
    entries. Unless you explicitly add the server entries, servers will otherwise
    not be able to connect with the web server component!

 7. As users register, if you wish to grant them 'Query Admin' or 'Administrator'
    status, you can change the properties of their account from the
    'Administration' area.



================================================================================
  5. UT SERVER INSTALLATION GUIDE
================================================================================
 1. Add the new server entry to the web server component. See step 5 above.

 2. Make sure your UT server has been shut down.
 
 3. Copy the UniversalUnreal110-Build3.u and UniversalUnreal_CredManager.u
    files to the /SYSTEM folder of your UT server.

    Copy the UniversalUnreal110-Build3.u.uz and UniversalUnreal_CredManager.u.uz
    files to your redirect server if applicable.
 
 4. Open your UT server's configuration file and add the following
    ServerPackages and ServerActors lines *AFTER THE NEXGEN SERVER ACTOR!*:
 
ServerPackages=UniversalUnreal110-Build3
ServerPackages=UniversalUnreal_CredManager
ServerActors=UniversalUnreal110-Build3.UniversalUnreal
      
    Once again remember, the Universal Unreal ServerActor must be added
    AFTER the Nexgen Controller ServerActor entry.
    (ServerActors=Nexgen110.NexgenActor)

 5. Add the following segment to the bottom of your server's configuration
    file and configure it appropriately:

[UniversalUnreal110-Build3.UniversalUnreal]
UniverseID=universe_name <---- universe ID and password must match the
UniversePass=password_here <-- values set on the web server component!
UniverseHost=www.yourwebsite.com
UniverseFilePath=/universalunreal/utinterface.php
UniversePort=80
ServerURL=255.255.255.255:7777
TCPServerPort=7777
ShortServerName=sAs <-- short name for your server, users will type this,
                        make it brief! Valid characters are: 0-9 a-z A-Z

bDisableDuringMatchMode=False <-- disable during Nexgen match mode?
                                  leaving this False is highly recommended

bHideHUDForGuests=False <-- disables automatic HUD display for non-members,
                            however saying !hud / using F7 still activate it

ServerListYOffset=0 <-- offsets the server list on the HUD by y percent of
                        the total screen height, can be positive for down,
                        or a negative value to move it up;
                        not recommended unless specifically needed by users

UniverseAboutURL=http://www.yourwebsite.com/universalunreal/index.php?p=about
CollectPlayerData=True <-- enable player data system
MaxTimeout=20
ErrorLimit=10
resolvedAddress= <-- set manually if server can't resolve web host IP from DNS
bNeverPurgeAddress=False <-- set True if your server has DNS resolution issues
                             or if you had to set the value of resolvedAddress
                             manually
bDebug=False
  
 6. Save the changes to the configuration file and start the server.
    Enter the server and issue the command !moreinfo, followed by
    your short server name ( ie. !info sAs ). This makes the
    web server receive and send back data and is a great way to
    ensure everything is working as it should. If you get a message
    with the map name and number of players on the server, you
    have configured everything correctly and you are ready to go.
    If not, check out the UT server logs and see if there are any
    errors mentioned. Also you might have to contact the game host
    to ensure that you've selected the proper port on which to run
    Universal Unreal.

 7. If you wish to grant access to Universal Lookups, which gives users
    the ability to get player data from in-game, follow these steps:
    while logged into Nexgen as a server administrator, open
    Nexgen and go to the "Server" -> "Account Types" *or*
    "Server" -> "Accounts" tab, depending on which persons / groups
    you are granting lookup rights to. Grant these users the
    "Perform UU Master Lookups" right and save. See
    attached file: 'account_settings.png'


If you have issues with the setup and usage of Universal Unreal,
post the nature of the issue you are experiencing here:
http://www.unrealadmin.org/forums/forumdisplay.php?f=199



================================================================================
  6. CREDITS & COPYRIGHT NOTICES
================================================================================
Universal Unreal was developed by Matthew 'MSuLL' Sullivan, with much
assistance and support from Daan 'Defrost' Scheerens, the creator of Nexgen,
which enables the whole thing to run as it should. Additionally, many parts
of Universal Unreal depend on large code segments and adaptations from Nexgen.
Defrost, without your assistance Universal Unreal would not exist. Thank you
so very much for all your work with this project.

Universal Unreal logo design by soOthing.rash aka low~tide.

Universal Unreal's UT-based HTTP client was evolved from its original
implementation in IpToCountry by Rush and AnthraX. Without their previous work
with improving the UBrowserHTTPClient, I'm not sure if I would have ever
got this program off the ground.

PHP authentication methods and session handling were created by Jpmaster77
a.k.a. The Grandmaster of C++ (GMC), from his project 'Login System v.2.0'.

HTTP special character encoding / decoding inspired by LinuxCharsetFix by AnthraX.

Voice notifications recorded from AT&T text-to-speech engine (voice: Mike).

Web layout and CSS from the 'rhuk_milkyway' template default to Joomla! 1.5.

Thanks to:
Azazel and the entire team at UnrealAdmin.org for years of great support,
and a forum from which to launch this new program.

|KOA|The_Dave and Slim_Shady for being right behind me every step of
the way for all these years. When I ask for root access to your databases
and web servers with no explanation, you two never ask questions. Thanks
for the trust and support guys.

GF-REX, Crossy, Mr.Strangelove, Shatter, DeadlySin, Spongebob, SuB, and all
the players of WhartHog's PigPen UT Server.

The players of the UT strangelove community and all the players and server
admins of the following servers:
KOA Public Clan Server
KOA Private Clan Server
Fk Clan Server
WhartHog's PigPen
PsK Clan Server
IG Clan Server
NY Old Skool StrangeLove Server
OsL Clan Server
KOA Private Clan Server
UrS London Clan Server
UrS Amsterdam Clan Server
sYs StrangeLove Server

Epic Games for making this game. Creating a game that lasts over ten
years and still thrives is not a small feat.
   


================================================================================
  7. LICENSE
================================================================================
This project is open source. However, the following restrictions apply:

 - You may not remove any credits listed on the 'Credits' web server component page.

 - You may not remove or modify the PayPal donation button on the 'Credits'
   web server component page.

 - You may not modify the link to the credits page on the bottom of every web
   server component page.

 - You may not sell this code. All code for this project was created by
   those listed above from their own open source projects.
   


================================================================================
  8. VERSION HISTORY
================================================================================

== Universal Unreal v1.10 Build 3 [April 27, 2009] ==
 - [Added] Better keybind support
 - [Added] !bind command to override existing F7 keybinds with HUD show/hide bind
 - [Added] More online Say command documentation
 - [Changed] Moved client options into "Client" -> "Settings" panel
 - [Fixed] Accessed None errors

== Universal Unreal v1.10 Build 2 [April 26, 2009] ==
 - [Added] Nexgen private message logging
 - [Added] Player information system logs Nexgen mute, rename, kick, ban actions
 - [Added] Commands !go and !info to complement !gothere and !moreinfo
 - [Added] PHP cURL library support
 - [Added] bNeverPurgeAddress option for servers with DNS resolution problems
 - [Added] ServerListYOffset option for moving y-axis location of HUD server list
 - [Added] bHideHUDForGuests option to disable auto HUD display for non-members
 - [Added] Some SAY commands now private
 - [Added] Forced binding of F7 if no other key is bound to Universal Unreal
 - [Fixed] Some data transfer methods in the HTTP client
 - [Fixed] Universe members not getting logged into the universe server in-game

== Universal Unreal v1.09 Build 5 [February 16, 2009] ==
 - Initial public release