Dynamic version 200 - Released 19 mar 2000

------------------
	Dynamically loading and removing mutators
------------------

Ever wanted to change mutators without having to kick everyone off your server? This can be
done with the 'SwitchLevel' console command, but I guess it could be made easier. With
this mutator, you won't have to know the currently loaded mutators, for instance.

It uses simple console commands:

   mutate dynamic +mutator|-mutator [+mutator|-mutator [...]]
   mutate dynamic list

The first one adds and/or removes mutators. Here is an example:
   mutate dynamic -externsniper.externsniper +mp1.vampire +qhealth.qhealth
The mutators can be in the Package.Mutatorname from, or you can use only the package name if the mutator
class has the same name as the package, like this:
   mutate dynamic -externsniper +mp1.vampire +qhealth

The second command lists all the currently active mutators.

Of course, the first command only works if you are administrator, and in single player games.

------------------
	The mutator voting system
------------------

New in this version is the voting system. With this, everyone can vote for a certain mutator to be added
or removed from the mutator list. These commands are used:

	mutate dynamic vote +mutator | -mutator : start a vote to add/remove the mutator. The mutator can
							be in the form Package.Class, or one of the two if they are
							the same. An example if you want to add Akimbo Arena to the
							mutator list, simply type mutate dynamic vote +akimboarena

	mutate dynamic vote yeah                : vote for the addition / removal of the mutator

	mutate dynamic vote nah                 : vote against the addition / removal of the mutator

	mutate dynamic voteinfo                 : ask for information on what action will be taken, and how
							many people have voted for / against the action.

	mutate dynamic cancelvote               : cancel the current pending vote. This can only be done by
							administrators.

All commands, except 'cancelvote', can be entered by anyone. There can be only one vote pending at the time. Players may only vote once. It is recommended that you bind the commands to vote yeah/nah to keys, so you
can vote easily.

3 minutes after the vote has started either nothing will happen (majority voted Nah), or the mutator is loaded/removed, which will cause the level to reload. Whenever anybody votes, there are 20 seconds added to this timeout. 5 seconds before the vote expires a countdown begins.

------------------
	Setting the limits while playing
------------------

Administrators can set new fraglimits and timelimits while playing. This is done with very simple mutate
commands:

	mutate dynamic fraglimit 10
	mutate dynamic timelimit 10

Of course, 10 is just an example. It can be set to any number. Set the time limit to 0 (zero) to disable
the limit. Admins can also pause the game with this command:

   mutate dynamic pause

This can be done in any game!

------------------
	The config file:
------------------

There are some options that can be set in Dynamic.ini. If there is no Dynamic.ini file on your computer,
just create one yourself. Below is an example. These values are the default.

==========================================================================================
[dynamic.dynamic]
bVotingEnabled=True
VoteTimeout=180
bMultipleVotes=False
==========================================================================================

bVotingEnabled enables/disables the voting.
VoteTimeout sets the time in seconds after which the vote will close. Every time somebody votes, there
is 20 seconds added to this timeout.
If bMultipleVotes is set to true, people can vote more than once. If left to false, players can only
vote once per vote-session.


MeltDown - meltdown@thirdtower.demon.nl

==========================================================================================
Requirements: Unreal Tournament. I tested it on UT 405B, but I guess every version should work
Homepage: http://www.planetunreal.com/unrealtower
==========================================================================================

History:

	--------------------

Version 200:

- Added the voting system.
- Added the Pause command. Especially handy for testing your code in a networked environment.
- Mutators are usually called the same as the package they are in (ie. Dynamic.Dynamic). If this is
  the case, you can leave out the package name, ie. 'mutate dynamic +ExternSniper'
- Added the fraglimit and timelimit commands

	--------------------

Version 100:

Initial release
