+-----------------------------------------------------------------------------+
|				Paintball Mod v2.6			      |
|									      |
|	Mod originally created by |K0rn|				      |
|	Mod assistantment by [RR]MisterPiss				      |
|	Other additions/Changed By KingTomato				      |
+-----------------------------------------------------------------------------+

+-----------------------------------------------------------------------------+
| Installation								      |
+-----------------------------------------------------------------------------+

1. Open the folder C:\Dynamix\Tribes
2. In this folder, create a new folder (file>>new>>folder), and rename it to
   "Paintball"
3. Place the contents of this zip into that folder.
4. Open Paintball\Setup folder
5. Run setup.bat (this will do all required configurations)

If shortcuts to the server are not in the folder that came with the mod,
follow these instructions to make your own:

1. Open the folder C:\Dynamix\Tribes
2. Right click on InfiniteSpawn.exe and select "Create Shortcut"
3. Find the new shortcut (Usually named "Shortcut to InfiniteSpawn.exe"),
   right click it, and select properties.
4. In the Target field, add the following to the end of the line:

	*tribes -mod Paintball +exec ServerPrefs.cs -dedicated

   Your directory should read something along the lines of:

	C:\Dynamix\Tribes\InfiniteSpawn.exe *tribes -mod Paintball +exec Ser...

   (There may or may not be quotes around the path of the InfiniteSpawn)

5. Click apply.

+-----------------------------------------------------------------------------+
| Files created by this mod						      |
+-----------------------------------------------------------------------------+

Because of the nature of client spending, information must be saved in the
tribes directory. This ensures that players have an account, and can access
it despite such an occurance as a server restart.

There are two major area where information is stored. They are as follows:

	1. C:\Dynamix\Tribes\Config
	   - Saves a file names KT_Paintball.cs which contains the running
	     configuration of the server. Such things as limitiations, admin
	     passwords, and other information are stored here.
	   - Saves Money.cs which contains information which pertains to user
	     accounts for client spending.
	   - Assuming CloneScanner is enabled, a file named ClonesList.cs
	     will be present to save previous and current user names.
	   - Assuming join logging is enabled, ServerLog.cs will be present
	     with information such as clients who have joined, their name,
	     and IP at time of join.
	2. C:\Dynamix\Tribes\Temp
	   - Saves the user information of each account in a file that is
	     prefixed with "Money_User". Each account is assigned a numeric
	     value, and exported to a file with that number in the directory.
	     Account number one uses file Money_User1.cs

Should you want to make a backup of the current configuration, please run the
backup.bat file found in the mod's setup folder (tribes\paintball\setup). This
will place a list of backed up files in the config\Money_Backup folder. If you
should need to use these files, copy Money.cs from this folder to the config
folder, and the remaining Money_User* (Files beginning wiht Money_User) into
your tribes\temp folder.

+-----------------------------------------------------------------------------+
| Customizing the mod							      |
+-----------------------------------------------------------------------------+

Changing settings
  To change simple setting in the mod, open the KT_Paintball.cs file located
  in the mod folder. Within that file, several settings are present for you
  to customize the mod to your liking.  Everything is explained, and should
  be easy to follow.

  Some simple guide lines are:

	1. If an option reads as true or false, you make use true or false to
	   enable and disable it. Example:

		$thisValue = true;
		$thisValue = false;

	2. If a number is required, whole numbers (-1,0,1,2,3,..) may be
	   used normally. If a number has a decimal however, enclose that
	   value in quotes. Example:

		$thisValue = 1;
		$thisValue = "3.14";

Adding admin accounts
  1. Open ServerPrefs.cs in your tribes\config folder.
  2. At the bottom of the file, add your user accounts. User accounts
     will follow this pattern:

	$PB::Admin::Pass[<level>, <password>] = <username>;

     Where..

	<level> can be Super or Public
	<pass> is the login password
	<user> is the name of the user logging in.

     Example, if I wanted super admin and my password was "elite", I
     would use:

	$PB::Admin::Pass[Super, "elite"] = "KingTomato";

  3. Save the file, and load the server.

+-----------------------------------------------------------------------------+
| Important Notice							      |
+-----------------------------------------------------------------------------+

When shutting down the server (or restarting) do not simply close the game.
Please follow the following directions (only if client spending is enabled).

[Dedicated Server]
1. In the DOS window (black window) that is open, type the following, followed
   by the return (enter) button:

	shutdown();

[Non-Dedicated Server]
1. Open the console in the game by pressing the tilde (~) button.
2. Type the following into the console, followed by the return (enter) button:

	shutdown();

The server will now pause a brief moment, then shutdown. This is important as
it saves all player information, and performs a 'cleanup' before shutting down.

+-----------------------------------------------------------------------------+
| Changes								      |
+-----------------------------------------------------------------------------+

Changes (04/01/04):
1. Added ability to turn off shape validation. When off, users may join with
   modified weapon appearances, modified grenades shapes, modified flag, and
   more. (The way i see it, poeple can already bypass this protections with
   HappyMod--why not let others who have problems joining, join?)
2. Added new admin login system. Now each user has his or her own pass. Should
   someone give out their password, a user logging in with that password will
   be obvious. Ex:

	KingTomato has logged in as Super-Admin using KingTomato's password.
	TheHax0r has logged in as Super-Admin using KingTomato's password.

   in this case, it's obvious KingTomato gave out his password. Also, admins
   who've logged in recieve a skin that changes every half a second.
3. New client chat command system. Adding comands to the global and team chat
   is even more simplistic. A new function can be added anywhere in the mod.
   Functions are modular, and can be easily ported from mod to mod.
4. Message filtering now blocks hex, carage return, and tabular crashes. All
   logged in admins are now notified of the crash attempt, and the user is
   blocked.
5. Added event system. Now, events can be acted apon from multiple mod files
   including such events as a client connecting to a server, diconnecting
   from a server, or apon seeing the MOTD. Events are as follows in the form
   of eventName(..paramaters..):

	Server_onClientConnect(%client)
	  Triggers when a client joins the server.
	Server_onClientDisconnect(%client)
	  Triggers whena  client disconnects fromt he server.
	Game_initialMissionDrop(%client)
	  Triggers whena  client has joined, and is faced with the MOTD.

   For example, to send a message to all clients that a player has seen the
   MOTD, you could use:

	Event::Attach(Game_initialMissionDrop, hasSeenMOTD);
	function hasSeenMOTD(%client)
	{
		%name = Client::getName(%client);
		messageAll(5, "Hey Everyone! " @ %name @ " has seen the MOTD!");
	}
6. A clone scanner has been added to provide the ability to know past and
   present aliases a player has used. The scanner is based on IP address,
   and logs all users to an external file (specified in KT_CloneScan.cs).
   Additional logging (Such as players joins, drops, and session time) are
   also logged.
7. Super admins can now see team chat while in observer. This way strategies
   and other messages can be observed with the game play. I would give this
   feature to all players, but I fear some may use it toward their advantage
   such as tell a clan mate "they are going to ...", etc.
8. First person observer added to give the ability to see what the player sees.
   Handy when eliminating suspicion of a HappyMod player.
9. Added protection of people with scripts to shoot 3+ bullets at a time. It
   seemed with a script, and a gun with an LCD option of burts, a player could
   achieve the ability of shooting multiple projectiles at once.
10.Planes have been removed from the inventory. Period.
11.In-game triggers have been added to team and global chat. A player (depending
   on admin level) has access to the following commands:

	No Admin:
	  .lock?
	    If the server is locked, the current password of the server is
	    given.	  

	Public Admin:
	  (No commands available)

	Super Admin:
	  .bp <text>
	    Bottom prints a message to all clients in the server.
	  .cp <text>
	    Center prints a message to all clients in the server.
	  .tp <text>
	    Top prints a message to all clients in the server.
	  .lock <password>
	    Locks the server using the password specified.
	  .unlock
	    Unlocks the server.
	  .pmtp
	    Top print a player that you are privatly speaking with.
	  .pmcp
	    Center print a player that you are privatly speaking with.
	  .pmbp
	    Bottom print a player that you are privatly speaking with.

	Other Triggers:
	  .spoof <text>
	    When enabled via manipulations menu, an admin can speak as
	    another player.
	  .pm <text>
	    When enabled via tab menu, a player may privatly speak with
	    another player.

   All admin functions can also be access by super admins, but not vise versa.
   Additionally, all public commands can be accessed by both admin classes.
12.Added manipulations menu. The menu has the following:

	Enable/Disable speak ability (Gag)
	  Limits the user from talking on the server
	Remove voicepack
	  Limits the user to only text, and are unable to use voice packs.
	God mode (improved)
	  Limits the player damage to a specific player as well as prohibits
	  them from harming another on the server. Prevents abuse of players
	  going around with god mode. Additionally, a player with god mode
	  is unable to carry or grab the flag.
	Clear client score
	  Clears the score of the client back to 0.
	Limit to team chat
	  Limits the player from global chat, and must only talk in team chat.
	  Good if they are in observer, and shouting to the other team where you
	  are (especially in tournaments).
	Team locking
	  Made for those pesky players that always switch to the winning team.
	  Now you can change their team, and force them to stay there.
13.Added a fake death command so a user can 'play dead' for a breif time.
   Could be useful when you're being shot it on a hill, and the foe arrow
   isn't displayed. Fake death, then come abck and kill them. To use the
   command, bind a key to the following:

	remoteEval(2048, FakeDeath);

   For example, to bind the letter 'd' to the fake death command, you could
   use:

	bindCommand(keyboard0, MAKE, "d", TO, "remoteEval(2048, FakeDeath);");

   That command would go into your config.cs file located in tribes\config\
14.Fixed bug with gun being mounted after a relaod despite a different gun being
   out. Gun is now only mounted again (once reloaded) when no other gun is out.
15.Added client spending limits. When enabled, a client must work off a budget
   as they play. During game play, various items account for increase in money.
   To begin, a player registers an account with $200.00. At that time the user
   may buy any gun within the $200.00 limit. From there, each kill, flag capture,
   flag return, and other various items account for more money. The more money,
   the better options a player has for a gun.
   Before a player may play however, they must create an account. This is done
   by typing the following into the chat box (as if to talk to someone):

	.create <password>

   Password can be any alpha-numeric password a user would like to use. From there,
   the account is created. On the next join to the server, then player must then
   use that password and login using the following command:

	.login <password>

   The account is then logged into, and the user is back to where they began from.
16.Stations, generators, sensors, doors, etc. are invincible.
17.Added 'Manage Money' options for admins in the Admin Options menu. An admin may
   now increase, decrease, reset, or clear an account from the TAB menu.
18.Fixed observer play mod. Observers now may not play as a person.
19.Added managable kick reasons list. Now changable from the KT_Paintball file.
20.Added auto-buy grenades option to tab menu. Now, assuming you have enough money,
   you spawn with grenades. The minimum amount of cash is configurable thorugh
   KT_Paintball file.
21.Added spending function so players may login through console without issues of
   password loss. (Used in auto-login script by me) Demo of login using the password
   123456:

	remoteEval(2048, Spending, "login 123456");
	
22.Added shutdown() command. Use it when restarting server. Saves from losing player
   information.