----------------------------------
WELCOME to MERVBot 1.26 readme.txt
----------------------------------

This document overviews as many of the areas of the bot as I could think of;
hopefully the FAQ will get nice and fat enough to handle any other questions.

---------------------
Important Information
---------------------

+ The bots need Super Moderator access or SysOp as a security feature.
+ The "Alias Search Engine" and "Monkey God" Bots must have sysop.
+ When MERVBot first connects to the server, it is an Elim Referee.

-----------
Setup Guide
-----------

1)  Extract all files in SSBot.zip to a new folder.
2)  If you want to create a new ranking database from scratch (!rank command in Elim), delete Rank.txt

3)  Open SSBot.ini by double-clicking.
4)  In the [Login] section, fill in:
     DefaultName=Bob the Bot (Someone may have taken this name already)
     DefaultArena=The arena which your bot will start in.  Set to nothing for public arena
     IP=(Dotted quad Internet Protocol address. Read on..)
     Port=(Remote SubGame port. One more line..)
         You can find these two in FAVORITE.LST in your SubSpace folder.
         ie.                           (IP)     (Port)
         USD KHAOS Destruction !,  63.164.45.4,  7100
         #A zone built for Destruction !!!  by Coconut Emulator
5)  In the [Access] secion, fill in:
     Password=The zone's super moderator password.  Make sure the bot is on your smod.txt list
     Sysop=If you set the Password to your sysop password and the bot is in sysop.txt, then put "yes" here
6)  In the [Password] section, fill in:
     Bob the Bot=Bob's password.   
7)  Close SSBot.ini and save changes.

6)  You are almost ready to run MERVBot!  Just one more thing: you need to choose who can use the bot.
8)  Open Operators.txt by double-clicking.
9)  Take a look at the KEY a the top and erase/add operators as you need.
10) The operator names are NOT case sensitive. (gravitron = GrAvItRoN = GRAVITRON)
11) Close Operators.txt and save changes.

12) Run MERVBot.
13) It's reccommended that you send a copy of this file to anyone who is an operator.

---------
Bot Usage
---------

(A)lias Bot
+ Requires sysop for MacID and Creation Date logging. Will not crash or function without.
+ Allows you to compile player information databases to tie cheater's aliases to
  their normal names without a doubt. (Uses BanG's method)
+ You may import PLogBot PlayerData.txt files. MERVBot trims some information, however.

(B)ountyGame'Ref
+ Rules: One player is chosen at random to be a BountyRabbit(5000 bounty). Players who kill him
  steal away his bounty and become the new bounty rabbits. If he survives for 10 minutes, a new
  rabbit is chosen
+ !newpick command to choose a new rabbit. !rules and !status for game information
+ May be run in public arenas safely.
+ Greet message displays current rabbit.

(E)limRef
+ Runs RoboRef-style elims and races. (Team, Golf and Ship-restricted too)
+ Elim rules: All on own freq. Die <X> times and you are out. Last one alive wins.
+ Race rules: All on own freq. Kill <X> times and you win.
+ TeamElim rules: All on two freqs. Die <X> times and you are out. Last team alive wins.
+ Golf rules: All on own freq. Start with one point. Die to lose a point. Kill to gain a point. Lose all points and you are out.
+ Simply !enable an ElimRef and it does the rest through median voting.
+ Operators may force game styles during the 10-second wait period.
+ !rank <name> command makes elim games competitive.
+ !rules command shows elim rules without repetitive arena messages.
+ Can only be run in private arenas.

(Z)ombieRef
+ Runs a match of Zombies.
+ Zombie rules: All on freq 0. One on freq 1. Die and you move to freq 1.
  Last on freq 0 wins.
+ May be run in public arenas safely. (No score resets)

(S)WZ-style ship checker
+ Keeps players in the correct ships according to SWZ ship-restriction rules.
+ !cap <name>, !yellcaps, !info <name> make running a capital-ship enhanced game simple.
+ Runs in public arenas and private arenas.

(D)SB-style ship checker
+ Keeps players in the correct ships according to DSB ship-restriction rules.
+ Runs in public arenas and private arenas.

(C)onquerRef
+ Runs a new game I invented last year.
+ Conquer! rules: All on own freq. Die and you get moved to your killer's freq.
                  Owner of team with all players wins.
+ Runs in public arenas and private arenas.

(M)onkey God Bot
+ Changes settings every 30 seconds (customizable)
+ !reset command to restore old settings

------------
Command List
------------

(KEY)      |  -User must have this level of access at least to use the commands-
P: Public  |  Normal Player
I: Simple  |  Moderator
A: Account |  Super Moderator
S: Super   |  SysOp

+ All MERVBot favors
P:!help            - Display a list of help catagories.
P:!help <catagory> - Display commands in the given catagory.
P:!unf / !sex      - Have sex with bot.  Wasn't going to include this, but by popular demand..
P:!status          - Show game status.
P:!rules           - Lists game rules.
P:!listops - Public access only sees online 'ops. Simple to Super may view all. An '#' in place of a ':' means he is online and has 'op abilities.
P:!lag     - Display bot lag. Accuracy is only shown from Simple to Super access (higher = better)
P:!exit    - Get perm spec'd if "player suiciding" was enabled with the !suicide command.
I:!ballnotify < off / 1 / 2 > - Announces team/player/coord of pball owner.
                                1 = Announces whenever the ball changes player owner
                                2 = Announces whenever the ball changes team owner
I:!suicide < on / off >       - Allow anyone to use the !exit command.
I:!eventeams < off, 1-10 >    - If a team has <the given number> or more players than the other, then the bot switches until the teams are even.
I:!enable                     - Turn on the bot's game feature/ship-checking function.
I:!disable                    - Turn off the bot's game feature/ship-checking function.
I:!go < arena name >          - Move the bot to a new arena.
I:!spec < off, 1-10 >         - Spec's players with deaths greater than or equal to the number given.
I:!ship < off, 1-8 >          - Keeps players in the ship-type given.
I:!advertise <message>        - Sends a *zone message with a -Name tag at the end.
I:!door < 0-255 >             - Sets Door:DoorMode=What you want.  0 = all doors off, 255 = all doors on.  Requires SysOp
A:!op < name >                    - Add a simple operator.
A:!dop < name >                   - Delete a simple operator.
A:!setprize < number >            - Change the periodic prize. (Will only echo this with an *arena message if periodic prizes are enabled)
A:!prizetime < seconds >          - Change the time in seconds after which each prize is given. (Ditto)
A:!prizes < on / off >            - Turn periodic prizes on or off.
A:!killprize < off / -28 to 28 >  - When someone gets a kill, prize them with this.
S:!op < operator level > < name >     - Add an operator of the given type.
S:!spawn < bot type > < bot name >    - Create a new bot of the type and name given. New bots will spawn in the arena of their parent.
                                        Choices: |!spawn (A/S/E/Z/D) <name>|  [(A)lias finder,(D)SB Ship-checker,(E)lim/race,(Z)ombies,(S)WZ Ship-checker]
S:!spawnex < IP:Port > < type > < name > - Spawn to a custom zone, not necessarily the current one.
S:!close                              - Close the target bot spawn. If it is the last spawn, the bot will not close.
S:!terminate                          - Close all bot spawns and the program.
S:!closeall                           - Close all other bot spawns.
S:!write                              - Save Operators.txt, PlayerData.txt, Rank.txt and Scores.txt
S:!say < :Catid:Hi, //Hi, ;X;Hi, Hi > - Make it say something; this is a good reason not to give non-SysOps Super Access.
S:!attach < on/off >                  - Attach or dettach. Must be in a ship on your freq.
S:!error < chat channel >             - Dump red server error messages to the channel given.
S:!logscores < on/off >               - Log wins/losses/flag victories to Scores.txt
S:!set < section > : < key > : < value >   - Set any key in SSBot.ini
S:!get < section > : < key >               - Retrieve a SSBot.ini variable. (Not AppendPassword)
S:!password < new password >               - Change bot password in SSBot.ini and on the server.

+ Elim Referee
P:!rank < name >                                       - Returns a bunch of player ranking stats.
I:!force < game number > < max deaths / target kills > - During the 10 second wait period, you may change the game type.

+ Conquer Referee
P:!owner <freq/player/nothing> - Show freq/player/your owner.

+ Monkey God Bot
A:!rate <1 to 120 seconds> - Adjust interval between each change.
S:!reset - Reset settings to the original version.
           WARNING: Enabling the M.G.B. overwrites any settings backups in your MERVBot folder.
                    When you enable the bot, it stores current settings to disk for use with !reset.

+ BountyGame Referee
I:!newpick - Randomly pick a new rabbit.

+ Alias search engine
P:!alias < name > - Display all other names the player has from PlayerData.txt.

+ SWZ Referee
P:!listcaps      - List all capital ships.
I:!cap < name >  - Add a capital ship.
I:!dcap < name > - Remove a capital ship.
I:!yellcaps      - *arena shout out all capital ships.
I:!info < name > - Display number of times capping within the current day and for all time.

-----------
MERVBot FAQ
-----------

Q: What is a MERVBot?
A: MERVBot is a server-side bot, which runs Elim/Race, Conquer!, Zombies and does SWZ & DSB ship checking.  Among other things.

Q: How do I use the other bots built into MERVBot?
A: Log in as a SuperOp in Operators.txt and use the !spawn command listed above.

Q: Players get kicked by too many ship-type changes.
A: Type |?set:Security:MaxShipTypeSwitchCount:32767| as a sysop.

Q: !ballnotify repeatedly sends the current ball owners.
A: This command is built for zones with a single ball.

Q: I have problems connecting or "Winsock could not be loaded."  HELP!
A: Try this link for a Winsock update:
   http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/

Q: I added someone as an operator but he doesn't show up with a # next to his name in !listops.
A: Ask him to reenter the arena. If he is still not an operator, check spelling.

Q: Will the bot respond to remote private messages from another arena?
A: No and it will not respond to macros. However, it will respond to public, private, team, or team-private messages.

Q: I have the bot set up, but nothing happens.  What's wrong?
A: 1) Be sure you are a SuperOp on the bot.  (Read the quick setup guide above)
   2) Make sure it's a SMod by typing |/!say *zone I am SMod|.
   3) Type |/!enable|.
   4) Zombie and Elim bots require a number of players to be in the arena before they work.
   5) Ship-checkers only work when someone changes INTO an illegal ship while the bot is enabled.

Q: I'm using ZombieRef or ElimRef and noone is being eliminated!  What should I do?
A: 1) Type |?set Routing:DeathDistance:16384| as the arena owner.
   2) SMods cannot spec or change the ships of SysOps; therefore, change your own ship and spec yourself when the bot would.

Q: How do I make the bot go to a public arena?
A: Set |Login:DefaultArena=| in SSBot.ini before you run it, or type |/!go|

Q: I need help with something that isn't explained (well enough) here.
A: Look below.

------------
Tech Support
------------

Email: Catid@pacbell.net
ICQ: 18736684

Before reporting a bug, download the latest version from my site:
www.spaceduck.cjb.net/catid.html

--------------
Special Thanks
--------------

Coconut Emulator - for causing me to hit myself in the forehead when
I asked him to hack the position packet checksum.

MikeTheNose - for expert advice and plenty of nifty ideas!

Ookii Hentai - for Sarunokaminorobotto! (Monkey God Bot)
