=========================================================================
                    THE BOT JOHNNY (c) 1998 Semprini
                             Version 1.72
=========================================================================
                        http://jb.quake2.co.uk/
                          semprini@buttle.com
=========================================================================
                             INSTRUCTIONS
=========================================================================

INSTRUCTIONS
============

Please consult the README.TXT file for any possible issues concerning
this release.

Please note that as of version 1.3 BotJohnny should seamlessly integrate
most bots into the same interface.  However most of these instructions
presume that you are using Eraser.  Differences for other individual
bots will be described in their own Readme files.

Also.  Remember the right mouse button is very powerful in BotJohnny.
A lot of people miss most of the functions of the program because
they don't right click the lists.


INSTALLATION
============

Installation comes in two flavours:

SMALL INSTALL : this is a simple ZIP file.  You will need to
unzip the contents of this file into a new folder (or over
your existing BotJohnny folder) making sure you RESTORE folder
names.

FULL INSTALL : run the SETUP.EXE file in this archive and it
will all install automatically for you.  Note that the first
time you run the full install it will dearchive a self-extracting
ZIP called BOTS.EXE.  When this is complete it will ask if you
want to delete file BOTS.EXE.  Unless any serious errors occurred,
answer YES or you will be prompted whether you want to unpack
this file every time you start.  If all else fails, a copy of
this file in standard ZIP format is available from my web page
and can be unzipped by hand.



THE FIRST TIME YOU RUN THE PROGRAM
==================================

MAKE SURE YOU HAVE QUAKE2 INSTALLED BEFORE YOU RUN THIS PROGRAM.
It is a good idea to also have Eraser installed too so that it
can use your existing bots, chat and other configuration files.

When you run the program for the first time, you will be asked
for the location of your Quake2 program.  This is the folder
where QUAKE2.EXE lies.  Choose the drive and folder and click OK.

Now, if you installed "Eraser" to the "Eraser" folder, then the
program should load.  However, if not. it will ask you to type
in the name of the folder.  If you click CANCEL it will proceed
without copying the default Eraser files in.

When this has been done you will be asked to create a new profile.
You must have at least one profile created before you start.  A
"profile" is just a set of configuration options.  See
the section below 


ADDING A NEW PROFILE
====================

(NOTE - you get here by either clicking the "Add" button at the top
next to the profile name or when you first run the program.  If you
are running the program for the first time, some options will not
be available to you, such as saving the current profile or using
the same settings as the current profile.  You also cannot CANCEL.
Sorry.  If you don't know what to do, just type in "Deathmatch"
as the name, choose to base your settings on "Deathmatch" and choose
"Eraser" as the bot).

In either case, a window will pop up.  Firstly, type in the name of
the profile to add.  (Make this a memorable name).  Next, choose the
type of profile you want to add from the list below (marked "Base
Settings On".

When you create a new profile, a new folder in your main BotJohnny
directory is created and any relevant configuration, bots, maps, chat
and so on files are copied from the main BotJohnny directory.
(Note, it now defaults to using mostly common files and it will only
copy in files that are not being shared).

However, if you choose something from the "Base Settings On" list you
can automatically set up some specific options to use.

"Current Profile" - use maps and options settings from the current profile,
although it will take the options specific to the bot you have chosen.

"Deathmatch" - use settings from the current profile, plus make the profile
type set to "Deathmatch" with five random bots spawned at the start.
Also, put the internal eight deathmatch maps from the Quake2 point release in
the map cycle (q2dm1, q2dm2 etc. up to q2dm8).  Use q2dm1 as the start map.

"Capture the Flag" - use settings from the current profile, but make
the profile type set to "Capture the Flag", with five random bots spawned
at the start.  Put the internal Capture the Flag maps from the official
CTF pack into the map cycle (q2ctf1, q2ctf2 etc. up to q2ctf5) and use q2ctf1
as the start map.

"Teamplay" - this does exactly the same as "Deathmatch" except it sets
the profile type to "Teamplay", sets your personal team to the first
one in the list, sets the bots per team to 5 and warns you to choose the
teams you want to add at the start.

Next choose the type of bot from the list below.  This list contains all
currently installed "plug-in" bots.

If "Save Current Settings First" is checked the settings for the current
profile will be saved before the new one is created.

Then click "OK" to create the profile, or "CANCEL" to.. well, cancel.


IN GENERAL
==========

Click the tabs, press the buttons and click the lists.  Note, if a
list doesn't seem to have any related buttons with it, try right
clicking it!  (In particular this works for the bots, teams,
chat, maps and extra options).

** Note, most options are not automatically saved unless the option
   from the JOHNNY tab is chosen.  When you change profiles you
   will be asked if you wish to save if you have made changes.

Above the row of tabs are some bits and pieces.

"Profile" is the name of the profile currently being used.
A "profile" is just a set of options so that you can have
different set-ups depending on what you are wanting to do.
(For example, if you want to play Capture the Flag you could
have an entirely different setup to the one you use for
Deathmatch).  Each profile represents a folder on your
hard disk which stores a variety of options - the bots, maps,
chat, program options, extra options, teams and so on.  You
can make profiles share various files if you like, by choosing
the relevant option from the JOHNNY tab.  The button marked
"Profile" starts Profile Manager.  (Which has its own help file)
If you RIGHT CLICK this button it will REFRESH the list of profiles.
This is useful if you use Profile Manager to rename or delete
a profile.

"Add" allows you to create a new profile.  See above for more
information.

Choose a new profile from the list to change to the settings
for that profile.

"Launch Bot" will start Eraser.  You can determine whether
the settings are saved or not at this point, whether
the program exits afterwards and whether you get the
command-line appearing in a window or not from the Johnny
tab.  (Note, if you get the command line window, you can
make changes, but should only do so if you know what you're
doing).

NOTE - The command-line can be completely customized by going
       to the JOHNNY tab and clicking "Advanced Configuration"

"Save Settings" will save the settings for the current profile.
You can control whether the save window stays open afterwards
so that you can see which files have been saved from the Johnny
tab.

EXIT will exit the program...!


THE MAIN TAB
============

Firstly, you should choose what the type of the current profile is.
Depending on your choice ("Deathmatch", "Capture The Flag" or "Deathmatch
Teamplay") various options may become redundant later on.  NOTE - for
Capture the Flag you MUST have Capture the Flag installed and setup
correctly to work with the Eraser bot.  (This is actually very simple
if you have it installed for Quake2 as it involves just copying the
PAK1.PAK file from your Quake2\baseq2 folder into the Eraser folder).

Underneath this is the type of bot the current profile using.
This is used for automatically updating configuration files, profile
sharing, chat editing, showing the list of skill levels and so on.

The Skill Level box works for any profile type.  Just choose from one of
the levels.  If you check the "Auto Adjust Skill" box then Eraser will
cleverly adjust its skill settings as you play to try to keep the game
challenging.  (Note this option does not work for other bots.  CRbot
has a built-in skill level which can be chosen from its list which
does something similar.)  "Bot - Same Skill", on the other hand, does
not make a difference to Eraser but works for CRbot, 3rd-Zigock, Oak 2,
Tangential and others.  If this is ticked all bots spawned will have the
same skill, otherwise they will have the skill set up for them from
the Bot Editor.

You can view the Readme for the current bot and the Bot Johnny Readme by
clicking the big buttons.  You can also view these instructions and
the Readme file for the current bot configuration.  (The latter is
probably a good thing to do if you are using bots that aren't
Eraser).

To the right of this is an ABOUT button which gives you some crappy
information or other.


AUTOEXEC

The AutoExec file is a file that is automatically executed when Quake 2
is launched.

Clicking "Edit AutoExec File" will bring up your autoexec file.  So that
you can edit it.  Stunning...

This is a very simple text editor.  The real point of it is if you want
specific things stored with a specific profile.  The file is saved when
you click OK and changes are abandoned when you click CANCEL.

Clicking the "Add Using the Wizard" button brings up the AUTOEXEC WIZARD
which allows you to do all sorts of fancy things.  Well, no, it allows
you to add some stuff to your AutoExec file.

As with any wizard, click the NEXT and PREVIOUS buttons to go through
the various steps.  Click CANCEL to abort.  And "FINISH" when you can
see it, to just, well, finish..!

Firstly choose what you want to do.  Note that as of version 0.4
there probably isn't much point in just issuing a simple command
as most of them really need to be bound to keys to be of any use.

If you choose "Add a Keypress to a Command" it will ask you to
type in the key.  There is no checking here yet.  So make sure you
do this bit right.  ;-)  Example, if you wanted to attach a command
to the Z key type in Z here...!

If you are choosing a command, a list of commands will appear on the
next step.  You will notice this list has two columns.  On the left
is the command itself, on the right a description of what the command
does.  Click the command you want.

If you are choosing a script, you will get a list of the available
scripts.  (In v1.0 there is only one).  Click the script you want.
Bear in mind that the script is inserted in its entirety (ie all
the lines of the script are copied in, it does NOT just EXEC the
script).

When you then click NEXT, after whatever you've done, you can choose
to insert the new commands at the beginning, at the cursor point or
at the end of your file.  Note, if some text is selected in the
editor, it will say "over selected text" instead of "at the cursor
point" and if you choose this, the currently selected text will be
replaced with the new commands.

Clicking FINISH ends the wizard and pastes in your new commands.



CAPTURE THE FLAG

The "Capture the Flag" box is only useful if the profile has been set to
"Capture the Flag".  Choose which team you wish to join from the list (if
you leave this blank, you will be asked each time you launch which side
to join - unless "force join" is switched on in which case it will assign
a team for you).

Next choose whether you want Random or Specific bots to be automatically
spawned when you start the game.  If you choose Specific bots, click
"EDIT TEAMS" to choose which ones to use.  A new window will pop up
(see below).  If you choose Random bots, type in the number of bots
you wish to spawn in the box provided.  (Note, if you change this,
it currently also changes the similar box on the BOTS tab, and vice
versa).

Underneath this you can specify the ideal number of players per team.
This is a feature for Eraser 0.95.  If you set this, Eraser will try
to keep the number of players on each team to this number, by
joining and dumping bots as the need arises.  (As human players
join and leave).

If you click "Edit Teams", you get a new window.  In the middle
is a complete list of the available bots (to edit this list, get out of
this window and click the BOTS tab).

If the bot has a little flag next to its name, it means that this bot
has a specific CTF skin available.  This is handy because it's far
more fun to play CTF if all the players are different.  You can limit
the list to just those with CTF skins by checking "Show only models
with CTF Skins".

Note, a darker flag means that the bot uses the "male" or "female"
model.  This means that it has a CTF skin built into the CTF pak.

On the left is the red team, on the right is the blue team.  To add a
bot to a team, click it from the white list in the middle then click
either the left hand side ADD button (to add to the red team) or the
right hand side ADD button (to add to the blue team).  To remove a
bot from a team, click it from either the red or blue lists and then
click either the left hand or right hand DEL button (respectively).

To remove all bots from a team, click "All" (the left hand button to
clear the red team, the right hand button to clear the blue team)

Also, you should notice two buttons marked "< <" and "> >" on the left
and right hand side of the bots list (respectively).  Whichever of
these buttons is pressed in will determine which team a bot that is
double clicked in the white list will be added to.

Note that the Available Bots list does not show bots that are
currently members of the red or blue team.  If you want to see
a complete list of bots click "don't show team members as
available" checkbox.

Underneath this you can choose your own team by clicking one of the
enormous buttons.  Click "Choose on Launch" if you don't want to
specify a team here.  When Quake2 is launched you will be asked
from there which team you wish to join.

The "Generate Random Teams" box allows you to quickly create random
red and blue teams.  Type in the number of bots you want on the red
team then underneath the number of bots you want on the blue team.
Then click the "Create Teams" button.  Note, this completely empties
your teams and creates fresh versions.

When you're done, click OK to save the CTF list or CANCEL to lose all
the changes.

NOTE - as of version 1.51 you can now use drag and drop here!  Hooray!
Dragging a bot from the red or blue team into the bots list will remove
the bot from that team.  Dragging a team from the bots list into the red
or blue team will add it to that team.  You can also drag a bot from
the red team and drop it into the blue team and vice versa.


PAK FILE EXAMINER

This is a simple PAK file viewer (the PAK viewing routine was written
by Chris Wilkinson and the extract routine was adapted from that).

Firstly, at the top right choose the folder whose PAK files you wish
to examine.  You can either select from a list of your mods or the Baseq2
(ie main Quake2 folder).  Alternatively you can type in a folder here directly.

Then double click a PAK name and its contents will be displayed on the right.
If "show only maps" is ticked you will only be able to see the map names.
Otherwise you will see the entire contents of the PAK file, divided up
into "folders".  Double click a folder to see what's in it.  If you right
click this list you can expand all the folders or collapse them all.

If you right click a file in this list and choose "Extract File" you can
save this file to hard disk.  (Like extracting a file from a zip).  Just
choose the filename and location you want to save it and it will be done!

You can also choose "View File".  At the moment this will ONLY work for
text files (ending in "txt", "cfg" or "lst").  It extracts the currently
selected file to a temporary filename, then views it using the ZOOM
window.  (It will delete the temp file, so don't worry..)

If you are not showing only maps, each file will be given a little icon
showing at a glance the type of file it is.  The icon types should be
pretty self-explanatory but are to show if a file is audio, text, picture,
a bsp map, a model, a demo (shown by a video camera) or a data file (shown
by a floppy disk).  It it's a question mark icon I don't know what it is.

Clicking "Create Available Maps List" will ask you for a name.  Type one in
and the list of maps will be saved under that category name in your
Available Maps List.  You can manually edit this list from Profile Manager.

Click OK to get out of here.

(Note you can drag the gap between the file list and the list displaying the
PAK contents by clicking it with the left mouse button and holding it down
whilst you move the mouse left and right.)


BOT CHAT

NOTE - if the bot you are using does not support bot chat, or if
the bot has not been set up for it OR if it uses an unknown
chat file format, then you will be informed that you cannot use
the bot chat editor.  Sorry.

Click the "Bot Chat" button from the Main Tab.  A nice new window
will pop up.  This window has two tabs.  GREAT!!

The first tab is called "BOT CHAT" and is probably the only one
you'll be interested in.  It contains all the different things
the bot can tell you during the game.

Each comment it can make belongs to a category.  To start with
you will just see the category names.  These are represented
by little yellow face icons.  If you double click a category
you will see all the chat comments inside it.  If you right
click one of these comments you can either edit it, delete it
or add a new one.  If you add, it will just add it to the end
of the list.  All you need to do is type it in.  Just make
sure your comment doesn't start with -- or # otherwise it will
bugger things up.. (Although this is fine if you are using CRbot
style chat)

The COMMENTS tab simply shows any extra remarks made in the file.
These are completely irrelevant if you are using this program,
but you can read them.  To edit, add, delete or move them
just right click when one is selected.  This tab is disabled
if you are editing CRbot style chat files as opposed to Eraser
style chat files.

When you're done, CLICK OK to save all the changes to your chat
file.  Or click CANCEL to abort the changes you have made.


THE BOTS TAB
============

From here you can edit the list of available bots and set up the
"Deathmatch" profile type options.  Note that the bots attributes
are specifically used by Eraser and may not apply to other bots.
(Although generally other bots will at least use the same name
and skin).

Note - anything in this list with a little lightbulb icon next
to it is a COMMENT rather than a bot (see below)

You will see a list of bots in a nice big box.  This list is
divided up into columns (you may need to drag out the columns a
bit to read the headings fully):

x  Bot Name
x  Skin (the model and skin type the bot uses)
x  Accuracy (Firing Accuracy)
x  Aggression
x  Skill (Combat Skill)
x  Weapon (favourite weapon... it appears as a number here, but to see the
   weapon name, edit the bot..!)
x  Quad (whether the bot is "keen for the quads")
x  Camp (whether the bot is a camper)
x  Lag (the bot's lag..)

You can sort the list by clicking any column.  Note, though, that the list will be
saved in the order shown in the list.

Click a bot in the list to select it (putting a tick next to it)


You can specify a number of random bots to use by typing in the number into the
box provided or using the scrollbar.  The combo box at the top left determines
how the specific and random bots are used (but this ONLY works if "Deathmatch"
is set on the MAIN tab):

SPAWN SPECIFIC BOTS (BELOW) ONLY
This ignores the random bots and just spawns any bots that are ticked in the list.

SPAWN RANDOM BOTS ONLY
This ignores any bots ticked in the list and spawns a number of random bots.
For bots other than Eraser this may result in loads of bots being spawned
with names like "CRbot1", "CRbot2" etc. with default skins.

SPAWN SPECIFIC BOTS (BELOW) AND RANDOM BOTS
This does both of the above.  Any ticked bots will be spawned with a number
of random bots as well.

SPAWN A RANDOM NUMBER OF THE BOTS SELECTED BELOW
This is like "Spawn Specific Bots" except that it will only spawn a random
number of the ticked bots.

SPAWN A RANDOM NUMBER OF BOTS FROM THE LIST
This, in effect, randomly selects a number of bots from the list and spawns
them as if you were specigying "spawn specific bots".  The advantage of this
is that if you are using a bot other than Eraser, it means you can spawn
bots without ending up with them all being the same ("CRBot1", "CRbot2" etc.)


Right clicking a bot in the list gives the following options:

EDIT <botname>      : edit the profile of the current bot (see below)
USE <botname>       : ticks the current bot as if you'd double clicked it
DON'T USE <botname> : if the bot is ticked you get this instead of "Use"..!
INSERT BEFORE <bot> : inserts a brand new bot before the currently selected one
INSERT AFTER <bot>  : inserts a brand new bot after currently selected one
INSERT NEW BOT      : if the list is sorted, this one just adds a new one in its
                      correct position.
VIEW MODEL          : choosing this is the equivalent of examining the bot and
                      clicking "view model" from there - see CHOOSING A SKIN below.
EXAMINE <botname>   : examine the bot's model - see its skins and hear its sounds
                      (see CHOOSING A SKIN below for info on the window that appears).
MAKE COPY OF <bot>  : creates a new bot as a carbon copy of the one currently selected
MOVE <bot> UP       : moves current bot up the list.  If sorting is on, it is switched off first.
MOVE <bot> DOWN     : moves current bot down the list.  If sorting is on, it is switched off first.
DELETE <botname>    : will delete the currently selected bot
INSERT COMMENT      : see "comments" below
PICK COMPATIBLE BOTS: see "compatible bots" below
BOT LIST            : see "bot list" below

Note, the "Insert Before" and "Insert After" options change to "Insert new bot" if the
list is sorted.


COMMENTS

BotJohnny 1.4 now supports comments in the bots and teams lists!  These appear like
normal entries except that the bot has no attributes and the bot name shows the
comment.  When you right click it you are given the option to edit it or delete it.
If you edit it, it pops up a little window where you can type in a new comment.
(The same window that you get if you add a new comment).

Comments have a little lightbulb icon next to them.  You can left click a comment
to edit it.


COMPATIBLE BOTS (AND COMPATIBLE MODELS)

Some bots such as Famkebot and Oak 2 require any bots you set up to have special
models.  If a bot tries to use an unrecognised model, the default model will be
used instead.  (This can be set up by clicking "Edit Bot Settings" from the
PATHS tab).

"Compatible models" are therefore any models that have the special version for the
current bot.  (If a bot does not need a special version, such as Eraser or CRbot,
ALL models are compatible)

"Compatible bots" are bots using models that are compatible as above.

If you right click the bots menu and choose "Pick Compatible Bots" it will show
you all bots that are compatible.  (So for Eraser, CRbot etc. this shows you all
bots.  For Famke, Oak 2 etc. this shows you only bots with special skins).  You
can then select any of these bots in the usual way by left clicking them.  If 
"clear bots not selected below" is checked then any bots that aren't displayed in
the list will NOT be ticked.  (So it's a good idea to have this checked).  It is
greyed out if the bot doesn't need a special skin.




BOT LIST

Anything in this sub-menu relates to the list as a whole rather than the specific
bot or comment clicked.

CLEAR ENTIRE LIST? will delete the whole bot list, if you would like to start it
again.  Do this with caution..!!

ADD ANY UNUSED MODELS will scan all your plug-in player models (installed in
"quake2\baseq2\players") and all your bots.  Any models that aren't currently
being used by bots will be added with random attributes (as if you were
inserting a new, normal bot).  They will use the new model plus the first
non-CTF skin it finds (unless the model only has CTF skins in which case it
will use one of them instead).  The bot will be given the same name as its
model.

For the other two options see below:


CREATE NEW BOTS LIST

This allows you to create a whole new list of bots from your models and skins.
It will scan all your plug-in player models and add one bot for every single
skin it finds.  When you choose this option it will bring up a little window
showing a list of all models found.  These models have a little checkbox next
to them.  If the box is checked all skins for that model will be added.
(By default, all models are checked).  Clicking "Clear All" beneath this list
will make all these checkboxes unchecked.  Clicking "Select All" will
make them all checked.  "Inverse Selection" makes all checked bots
unchecked and vice versa.

If "Group Models Using Comments" is checked, every model added will be given
a comment with that model's name.  Under this comment will be a list of bots
using all the skins.  Otherwise no comments will be added, just bots.

If "Include CTF skins" is checked it will also create bots for every CTF
skin.  I can't really see any time you would want this checked, but it's up
to you.

It is a good idea to keep "Clear Current Bots List First?" checked.  If it is,
the new bots will be added to a completely empty list.  Which means that you
will have one bot for every skin that you have.  However, if it is not, they
will be added onto the end of your existing list.  In a later version the
program will only add skins that aren't currently in use if you have this
option checked.  But not yet..!

Finally, you need to choose how the bots should be named:

"Bots are usually named after the skin" - if this is chosen, bots will be
named after their skin UNLESS the model only has one skin in which case the
bot will be named after the model.

"Bots are always named after the skin" - the bot will always be named
after the skin..!

"Bots are named after the model" - the bot will always be given the name of
the model.  If the model has more than one skin you will end up with bots
with names like this: "Female", "Female2", "Female3"... etc...

"Bots are named after the skin plus model" - this is a bit of a silly one, but
it just combines the model and skin name so you get stupid names such as:
"FemaleAthena", "FemaleBrianna".  Which is a bit rubbish, but it's up to you.

Then click OK to create your new list, CANCEL if you've changed your mind.  Note,
if you want to create a list of bots but have only one bot per model, clear the
bots list and use the "add any unused models" option.


MAINTENANCE

This allows you to get your bots, teams, skins and models in tip top condition...!
When you choose this option the program scans every bot, team, skin and model and
reports on any that could cause problems.  It will then list them on the respective
tab with a little icon beside them (although you don't get icons for skins and models)
that indicates the problem.  Note, that the icon tries to represent the most important
problem.  If a bot or team has many problems it will still only get one icon.  Double
clicking a team, bot, model or skin will tell you exactly what's wrong.

Skins and models are checked to see if they contain invalid characters such as
- ? * : / and \ which can cause problems.  For example, with Tangential, if you
have any skins with a hyphen in their name the bots list won't be read at all.

Click a bot or a team, then click EDIT if you wish to bring up the bot or
team editor and make some changes.  Clicking DELETE will allow you to delete
the bot or team.

To quickly rename a team, bot, model or skin click it so that it is selected,
then click it again.  (Not so fast that it is a double click though).  You
can then type in a new name and press ENTER to approve it.

Clicking a skin or a model, then clicking CORRECT will automatically remove
any offending characters from the name.

If you rename or correct a skin or model, all bots and teams will be scanned.
Any using the old skin or model will be automatically updated to use the new
version.

The problems it will report back are described below.  A key to the icons
is shown at the bottom of the window.  Note that you don't HAVE to make
any changes because of this window, it is just here to make suggestions.

NAME USED MORE THAN ONCE - if two or more bots have the same name or if
a team's full or short name is repeated for another team, you will get
an error.

MODEL/SKIN NOT FOUND - you do not have the model or the skin installed
for the bot, or the group model/skin for the team.  Most bots (such as
Eraser) will just use a default male model if you don't supply this
information.

TEAM MEMBER NOT FOUND - one or more members of the team do not exist
AS BOTS.  This might well not be very serious because they may be used
for human players.

TEAM MEMBER IN ANOTHER TEAM - one member of the team is also in another
team.

Please note - every time you edit, delete or rename a bot or, team, skin
or model the relevant list will have to be updated, so do not be alarmed if
there is a little pause after you have done something.


EDITING A BOT

Right click a bot and choose edit to get a new window.  You can edit all
the properties of the bot from here.  The name of the bot is the bot's name.
Although you may have figured that one out for yourself.  The skin/model
shows the current model and skin of the bot.  To choose a new one
either type it in (if you know what you are doing - but make sure you use
a forward slash / not a backslash \), or click the "..." button.

See "Choosing a Skin" below for more information on the model/skin selector.

The favourite weapon of the bot can be chosen from the list.

Underneath this you have various attribute options.  These are divided up
into "Eraser Attributes" and "Other Bot Attributes".  Any attributse in
"other bot attributes" won't make any difference if you are playing against
Eraser.  Please refer to the readme's of the bot's config files for
information as to which attributes apply.

Use the scrollbars to  change these.  The higher the numbers the better the bot
is in the attribute.  Firing Accuracy, Aggression, Combat Skills and Average Ping
are the Eraser attributes and affect how good the bot will be.  Check
"Keen for the Quads?" if you want the bot to be a 'quad freak' and go for
the quad power items more.  If "Camper" is checked, the bot will tend to sit
around nice objects waiting for them to appear, or sit in one place as a sniper,
shooting anyone that comes by.

Minimum Health is for Oak 2.  It specifies the minimum health a bot can have
before it looks for health packs.  The skin number is the number of the skin
as used by Oak 2.  I do not understand this, but it has something to do with
Oak 2's special model format.  The skill level underneath this was intended
for Oak 2 but is used by 3rd-Zigock, Tangential and others.  Speed is used
by Tangential (5 is the "normal" speed).  Tangential Ping is the average
ping of the bot in Tangential format.

Note that the skill level is sometimes scaled up or down for various bots.
For example, 3rd-Zigock only has skill levels 0, 1 and 2.  It gets its
skill level here by scaling the values down.  An alternative to using this
is to set "Bot - Same Skill" from the main menu to force all bots to use
the same skill level.

The pings are the same as the lag and simulates a delay in the bot similar
to that of a human opponent.

Click "OK" to keep the changes, "CANCEL" to abort.  Note, clicking OK
does not SAVE the settings, it only keeps them in the list.  If you want
to save the list click "SAVE SETTINGS" once you have clicked OK.


CHOOSING A SKIN

If you click the "..." button from either the Bot Editor or the Team Editor,
you will see a skin selector.  There are two different versions of this (you
can choose which one to see from the JOHNNY tab).  You will either see a
text list of models and skins or a (slightly slower) graphical list showing
the portrait icons of each one.  The graphical one has less features at
present (no "only show compatible models" option and no right click menu)
but otherwise works in the same way.

Click a model and you will get a list of available skins.  Double click a
skin to use it.

If you check "Only Show Compatible Models" it will show only those models
that are relevant to the current bot (see "COMPATIBLE BOTS (AND COMPATIBLE
MODELS)" above).  This is greyed out if you are using a bot such as
CRbot or Eraser which does not need this.

If you right click a model or a skin you are given options to rename or
delete it.  If you rename a model or a skin you will be asked for the new
name.  Type it in and click OK and BotJohnny will scan the bots and teams
file and change any bots or teams that use this model or skin so that they
use the correct new version.  If you delete a model or skin you will be
asked to confirm your decision.  You will also be told any bots (but not
currently teams) that use this model or skin.  If you click YES it will
delete it for you.  When you delete a model it will completely remove the
model's folder from your hard disk and everything in it.  If you delete
a skin it just removes the skin's PCX files.  Note - after doing this it
is a good idea to right click the main Bots list (from the BOTS tab),
choose "Bot List" then "Maintenance".  This way you can make sure no bots
or teams are using a skin or model that does not exist.

If you click the "Examine" button at the bottom left it will bring up another
window showing a list of sound samples and skin types for the current model.
(You can change which model to examine from the combo box at the top).

Double click a sample (or click it and click "Hear!") to have a listen.  Note,
many models may well not have any sound samples, but if you can pick up
a Sample Pack for your model, it really does make the game far more
enjoyable.

Clicking a skin from the list shows its portrait icon between the two lists.
If you then click this icon you will see the skin layout (as below).

Double click a skin from the list (or click it and choose "Edit Skin")
to launch the graphics program chosen from the Johnny tab.  You will then
see the current skin.  This is in the form it can be edited in and so might
not resemble what actually appears in the game very much, but it should give
you an idea (or at least a reminder) of what the skin is about.  Click a skin
and click "Edit Portrait" if you want to view and possibly edit the "portrait"
picture of the skin.  This is the tiny identifying picture that appears next
to the bots name if you are playing normal (non-teamplay) Deathmatch.

Click "View Model" to look at the model (fully skinned!).  This works in the
skin selector or the model examiner.  You need a model viewer to be able to do this.
I recommend MD2View as it's very small, fast and easy to use but Quake Scene
Builder works well also.  Have a look at the "links" page on the
BotJohnny web site for links to these.



THE TEAMS TAB
=============

This tab is only of any use if you the profile type is set to
"Deathmatch Teamplay".

Well, first the easy stuff.  At the bottom, choose the team
you want to join and set the maximum number of players to
have on one team.

Right, then.  The list of teams above.  This works in a very similar
way to the list of bots.

You have the following columns:

x  The Team Name (full one)
x  Short Name (an abbreviated name of the team)
x  Skin - the model and skin the entire team uses
x  Members - who's in the team

Again, click the columns to sort the teams.  Again, the teams will be
saved in this order.

Click a team to tick it.  All the ticked teams will be added
when you start the game.

Right click a team to bring up a series of options, from which you can
either edit the current team, add a new one, delete the current team,
insert a new comment, move a team or comment up and down the list
or clear the entire list of teams.  "Maintenance" brings up the Bot
and Team Maintenance window.

This all works in exactly the same way as the Bots tab, so refer to that
for more information.



EDITING A TEAM

When you edit a team you get a new window.  At the top of the window
is a combo box with all the team names in it.  If you want to edit a
different team without leaving this window, select it from the list.
Any changes you have made will be KEPT if you do this.

OK, underneath this you can change the full name and short name
of the team.  You can also change the team skin.  (In the same
way you change a bot's skin).  The easiest way is to click the "..."
button, then click the model name, then double click the skin name.
(See "Choosing a Skin" above)

On the left you can see all the members of the team.  To remove one,
click it, then click "Remove".

On the right you can see a list of all available bots.  To add a bot
to the current team, click it, then click "Add".

Double clicking a team member removes it from the team.  Double
clicking a bot from the list adds it to the team.

You can also use drag and drop to transfer a bot from one list to the
other, or drag a team member to reposition it in the team.

Note, the bots list excludes any bots that are in the currently
viewed team.  To exclude any bots that are in another team as well,
check the "Exclude Bots in Other Teams" checkbox.

Click "OK" to close the window and keep the changes, click CANCEL
to abort any changes.  (Note, the file is not saved here.  To
save the data file, click "Save Settings" when you've come out
of this window).



THE MAPS TAB
============

Right.  This tab allows you to change the map cycle list.  When you play
a map from this list and the game finishes (because the frag or time limits
expire or whatever..) the next one in the cycle list is used.  When the end of
the cycle is reached it automatically starts again.

On the left of the screen there is a big box marked "Available Maps".
These maps are grouped into various categories - "Single Player Quake",
"Internal Deathmatch Maps" and "Internal Capture the Flag Maps".  Note
you must have Quake 3.15 for "match1" in the internal deathmatch maps
to make much sense.

The first three are all built into Quake.  The internal deathmatch maps
come with the Point Release and the Internal Capture the Flag maps come
with the official Capture the Flag release.

If you have any ".BSP" (map) files in your MAPS folder they will be
added automatically.  Depending on the options set up on the JOHNNY tab,
these will either be placed all together or divided up into two or
three categories.  "Misc. Custom Maps" contains either the whole lot
or any maps that don't fit into any of the other categories.  "Custom
Capture the Flag Maps" contains any maps whose filenames have C"TF" in
them.  This category is created if "Categorize Custom CTF
Maps Separately" is switched on.  Otherwise these maps are stored in
"Misc. Custom Maps".  Similarly, "Custom Deathmatch Maps" contains any
maps whose filenames have "DM" in them.  This category is created if
"Categorize Custom DM Maps Separately" is switched on.  Otherwise these
maps are stored in "Misc. Custom Maps".  These categories are all
sorted alphabetically.

You can create as many additional categories as you like and there are a
number of easy ways to do this.  You can add new maps easily directly
from the program using the "PAK File Examine" (from the MAIN tab).
This allows you to transfer all maps from a PAK file directly into the maps
list at the touch of a button.  However you won't get the full map titles
by doing this (eg McKinley Revival as opposed to "q2ctf1").  A number of
complete map categories are available for download from the BotJohnny web
site which will have the full map information for popular PAK files such
as Loki's Minions CTF.

You can also manually add or edit these categories either from
Profile Manager (click "Edit Custom Maps" from the PATHS tab) or now direct
from the list itself.  This is described shortly.

Double click a category to see all the maps within.  Right click the list and
choose "Category" then "Expand All" to open up all the categories or choose
"Collapse All" to fold them all up again.

Right click a map name, then choose "Add to Map Cycle List" to, well,
add it to the map cycle list either just in front of the selected map name (on
the right..) or at the end of the list if no map is selected.    You can also
double click the map name to quickly add it to the cycle list.

If you right click a category you can choose "Add All Maps From this Category".
If you do this, you will be asked if you wish to clear the map cycle list
first?  Clicking NO adds the maps to the end of the cycle list, clicking YES
clears the map cycle list and just adds the new category's maps.  Note, the
start map will be changed to the first map in the list providing the
"Change Start Map When Adding a Category?" option on the JOHNNY tab
is selected.

It is usually a good idea to specify a start map.  To do so, right click a
map from the available maps list and choose "USE AS START MAP".  It will
then appear in the start map box.  (An alternative method is to double
click a map in the map cycle list to add it there.  You can also right click
the cycle list and add it from there if you prefer.)  Note, if you don't
specify a start map, a map will be chosen at random from the map cycle.

You can VIEW THE MAP'S README by right clicking it and choose the option.
If your map has a readme file (a file with exactly the same name but ending
in ".txt" which by default must go in your "baseq2\maps" folder but you can
change where this sits by clicking the PATHS tab and editing the game paths)
it will be displayed for you to read.

VIEW MAP IN EDITOR will only work if you have an editor capable of viewing
BSP map files.  You need to set this up from the PATHS tab (helper programs
box) beforehand otherwise it will use the default program associated with
BSP files in Windows.

MAP PROPERTIES will try to locate the map file and give you the filename,
file size and date the file was last saved.  If the map is not a BSP file
stored in your maps folder, BotJohnny will look in all your PAK files to
try to find it.  (It looks in BASEQ2 first, then the folder of the current
bot, then in the folders of any other mod installed).

CYCLING OPTIONS allow you to choose how you would like the map cycle to
act.  Choosing "NONE" will ensure that no map list is used at all,
choosing "IN ORDER" will cycle through the map list in the order you have
chosen from start to finish, then loop back from the first one again.
How "RANDOM ORDER" works depends on the bot.  Some bots (well, just CRbot
at present) have their own built-in random map cycling feature.  If so,
the program will use that.  If not, then the program will randomly
shuffle the map cycle order list for you.  (This does not affect the
list you see). 

The ROUTES box allows you to display the bot routes in the available
maps list.  Most (but not all) bots use specific route files so that
the bots can behave more realistically for those maps.  (Some bots
may require you to use maps with routes only).  If you choose
"Don't Show" from here (the default option) then all the maps
appear the same way in the list.  If you choose "As Icons" the
program will scan all the maps in the list and specifically mark
any with route files with a different icon.  Maps with routes
will be given little eye icons, maps without will be shown as globes.
Choosing "Only Show" will update the list so that only maps with
specific route files will be shown.

If "ONLY SHOW" is chosen you are not allowed to make changes to the
Available Maps List.

If you right click the map Cycle list (on the right) you get some
more options:

ADD UNLISTED MAP : If you want to add a map that isn't in the available
                   maps list, choose this, type in the map name (but
				   don't include the ".BSP" extension).
USE AS START MAP : This makes the selected map the start map.
MOVE UP          : Move the map up one place in the list.  You can use
                   CTRL+U as a shortcut.
MOVE DOWN        : Move the map down one place in the list.  You can use
                   CTRL+D as a shortcut.
REMOVE           : Remove the map from the list.  Or press DEL instead.
CLEAR WHOLE LIST : This will empty the entire map cycle list so that you
                   can start again.

NOTE - you can now drag and drop!  Drag any map from the Available Maps list
and drop it into the map cycle to add it at the position shown, or drop it
into the start map box.  If you drag a map from the Map Cycle list, you can
reposition it in the cycle by dropping it in a different position.  If you drop
it into the available maps list it will remove it from the cycle and if you
drop it into the start map box it will place it there.

You can also drag and drop maps in the Available Maps list to reposition them
or place them in different categories.


EDITING THE CATEGORIES

I must apologise in advance for the over-use of the word "category" in what
follows..

There are now a number of options available to you for editing the categories
of maps directly from the list itself if you right click in the list.  Some
options are not available if you click a category rather than a map.  If you
right click a map and choose "CATEGORY" it will presume you are working with
that map's category.

To ADD a new category, right click it then click "Add New Category".  You will
be asked for a name.  Type it in then click OK or press ENTER and a blank category
will be added.  You can then right click the new category, choose "Add Map to
Category".  The map editing window will pop up and you can type in a name for
the map and the map's title before clicking OK to add it or CANCEL to abort.
Clicking the "..." button brings up a map selector showing all known maps.

Choosing "Bulk Add Maps" brings up this same map selector, but each time you
double click a map it will get added to the current category.  (Making it easy
to add loads of maps in one go.)  The only problem is that it won't then know
the full map title (you'll have to manually edit it in if you want it.)

Alternatively, to add a new category, right click a category, click "Make Copy
of Category".  You will be asked for a name.  Type it in then click OK and a
new category will be added that has exactly the same contents as the one you
originally clickd.

You can also RENAME or DELETE a category from this menu.  Note, both of these
will have instant effect.  You will not be able to undo the change.  Just about
everything else will be saved together when you click "SAVE LIST" (or when it
does it automatically.)

If you choose "Sort Category" it will sort all maps in the category into
alphabetical order.


EDITING THE MAPS

Click a map, then go to the "Edit Map Entry" sub-menu.

"EDIT MAP" allows you to make a change to the map's name or full title.  Again,
from this window click "..." to bring up a list of all known maps.  Double click
a map from this list to add it.

From here you can also ADD A NEW MAP BEFORE the currently selected map (but in
the same category) or ADD A NEW MAP AFTER the currently selected map.  Doing this
brings up the previously mentioned dialog box.

MAKE COPY OF MAP will do just that.  Make a replica of the current map and put it
right next to it.  The main use of this is so that you can then drag this new
map and drop it into a different category.

REMOVE MAP FROM THIS CATEGORY will, again, do just that.  Take the reference
of the currently selected map out of the category.

"DELETE THIS MAP COMPLETELY" will physically delete the map from your hard
disk IF it is a custom map sitting in your baseq2\maps folder.  You will be
prompted first.  If you go ahead, it will also remove it from any categories
in your list.

You can also MOVE a map UP or DOWN within its category from this menu.


MAP PREFERENCES

Clicking the "Preferences" button on the MAPS tab brings up a window of options.
Note when you click OK the maps list is refreshed but you will be asked if you
wish to save the current state beforehand.

GENERAL PREFERENCES allows you to choose whether you wish to be prompted ("Are you
sure you wish to remove this map?") before you delete a map from the cycle,
whether when you add all maps from a category the start map should be changed to
the first map in the category automatically and whether it should try to show
the full names of maps in the Available Maps list (eg "McKinley Revival" as
opposed to "q2ctf1").

AVAILABLE MAPS DBL CLICK allows you to choose what happens when you double
click a map in the available maps list.  By default it will add it to the map
cycle, but you can have it use the map as the start map or make it have no
effect at all.

MAP CYCLE DOUBLE CLICK is similar and allws you to choose what happens when
you double click a map in the map cycle list.  You can either have it use the
map as the start map, remove the map from the cycle or do absolutely nothing.

AUTOMATICALLY GENERATED MAPS LISTS control how your custom maps are added to
the list automatically.  These are the maps that sit in your "Baseq2\maps"
folder.  By default three categories are created.  "Custom CTF Maps" contains
any maps that contain "ctf" in their name (eg "starctf1").  "Custom DM Maps"
contains any maps that contain "dm" in their name (eg "ringdm1").  "Misc
Custom Maps" contains all other maps.  From this box you can choose whether you
want the "Custom CTF Maps" category to be created.  (If it is not, the ctf
maps are added to "Misc Custom Maps" instead.)  Similarly, you can choose
whether you want the "Custom DM Maps" category to be created.  If you
check "Don't Show Any Automatic Lists At All" then no extra map lists will
be created for you.

"Don't Show Maps from Other Categories in Automatic Lists" is a very useful
option.  When it creates the list of custom maps described above it will
exclude any that are categorised elsewhere.

If you are rearranging the categories, for example, if you had a CTF map
which didn't include the word "ctf", you could drag and drop this map out
of the "Misc Custom Maps" and drop it into the "Custom CTF Maps" list.
However, next time you load the lists it would put this map in both
categories UNLESS "don't show maps from other categories in automatic lists"
is selected.  If in doubt, just check this.  :)

Note, the automatic lists are always sorted alphabetically.


THE OPTIONS TAB
===============

From this tab you can customise various options and even add your own
options.  I have tried to group the options together in a reasonably sensible
manner.  Please let me know if any of the following descriptions are not
correct.


PICK-UPS
--------

NO POWERUPS - check this if you do not want any powerups (quads, invulnerability, that
sort of thing) to appear during the game.

INSTANT POWERUPS - in Single Player Quake2 when you get a powerup you have to specifically
choose when you want to use it.  In deathmatch, this will also happen unless you check this
box.  Personally I think it's much better if you DO check this one..!

QUAD DROP - If enabled, this means when you kill someone who has Quad Damage, the Quad will
be dropped and available for pickup by another player.  If disabled, the Quad doesn't get
dropped when the carrier dies.  (THANKS TO PAUL BOWLAY!)

NO HEALTH - no health pick-ups are available during the game if this is checked.

WEAPONS STAY - if this is checked, when someone picks up a weapon, the weapon stays
exactly where it is for the next person to grab.

INFINITE AMMO - if checked it does what it says it does... gives you infinite ammo..

NO ARMOUR - check this one if you don't want any armour pick-ups to appear during the game.


END GAME
--------

SAME MAP - check this if you want the same map to be used all the time (ie ignore the
map cycling list)

ALLOW EXIT - if this is checked players can exit the level to end the game.

FRAG LIMIT - type in a number in this box to specify how many kills (frags) are
required before the level ends.  Note with CTF, the person who first reaches this
number of points brings the game to an end.

TIME LIMIT - type in a number of minutes here if you want the game to end after
a specific time limit.

CAPTURELIMIT - only useful for Capture the Flag, this allows you to set the number
of flags that need to be captured before the game ends.  For some reason, with the
Zoid's official CTF patch you also need to have a frag limit set for this to take
effect.  If you set this to any non-zero value and the frag limit is zero you will
get warned.  (THANKS TO PAUL BOWLAY)


OTHERS
------

FIXED FOV - If enabled, this means players can't change their Field Of
View during a game (which stops zooming).  If enabled, players can zoom.
(THANKS AGAIN TO PAUL BOWLAY)


MAX NO. OF BOTS - type in the maximum number of bots you want to allow in the game
here.


TEAMS
-----

NO FRIENDLY FIRE - normally if you shoot your team mate, nothing much happens,
but if you check this one then you'd better be careful as you'll cause
them damage.  You can make yourself quite unpopular if this one is checked...

TEAMS BY MODEL - if this is checked it will automatically choose teams by grouping
together anyone using the same model.

TEAMS BY SKIN - same as the above, only more specific.. it groups people into
teams if their skin is the same.


CTF
---

NO TECH POWERUPS - check this if you don't want any tech power-ups appearing when
you play Capture the Flag

FORCED JOIN - check this if you automatically want to join a team when the game
starts.  It will just force you onto whichever team has the least members.
If this is not checked you are asked which side you wish to join instead.

ARMOUR PROTECT - if this is set, your attacks do not harm teammates' armour.
(Health protect is always on)


DEATH
-----

FORCE RESPAWN - when you die, if this is checked, you are immediately respawned.
Otherwise you can take your time about coming back into the game.

SPAWN FARTHEST - when you come back into the game you are spawned at the farthest
point away from where you died.

NO FALLING DAMAGE - check this if you don't want to incur any damage when you
fall from a great height.


CLIENT LATENCY
--------------

Pretend you are playing on the internet, by setting this one right up high!
If you want to give yourself some lag, do it by putting up this slider.


EXTRA OPTIONS
-------------

On the right hand side of this tab is a big box marked "Extra Options".
All options in this list can be configured by you.  To switch an option on or
off, click it.

Right click an option for a little menu.  You don't have to configure these
options so you should probably only do so if you really want to.

The right-click menu works in roughly the same way as for editing bots and
teams.  You can either add a new option before or after the currently selected one
or you can edit the currently chosen one.

If you edit an option you will get the options screen.  Obviously.

The option name is the thing that appears in the list.  For example
"Viewable Weapons"

The command line is what is added to the command line when the bot is started.
For example "+set view_weapons"

The checked value is what to add to the command line if the option is ticked.
(For example if it is "1" it would add "+set view_weapons 1".  If you leave
this blank it just adds the command line - for example "+set view_weapons".)

The unchecked value is what to add to the command line if the option is
not ticked.  (For example it is it "0" it would add "+set view_weapons 0" to the
command line.  If this is blank, nothing is added to the command line at all.)

Underneath this you can choose whether this command is to be added to the
COMMAND-LINE or executed in the Quake2 CONSOLE.

Pressing F2 in any of these boxes will bring up the 'zoom' window so you can
see what you are typing in a little more space.

Click OK to keep the change, CANCEL not to.  (Bearing in mind you still need
to save the settings if you want to.)

(NOTE - if you set the checked value to <DMFLAGS> then it will be treated as
a special case.  If checked. the unchecked value will be added to the Deathmatch
flag value.  If the option is unchecked it will be ignored)


THE JOHNNY TAB
==============

The JOHNNY tab contains slightly more advanced (or program orientated) options.


PROGRAM

In here, you can change how the program behaves itself.

"Exit Program on Launch" will do just that.  Exit BotJohnny as soon as the bot is launched.

"Save Settings on Launch" will save the settings when the bot is launched.

"Show Command-line on Launch" will show you the command-line being used to launch the game.
You can then edit it (if you wish).  At the bottom middle of this window is a combo box
displaying all the files being created for the launch.  Choosing one of these then clicking
"View" will launch Notepad and show you the contents of the selected file.  If you wish, you
can then edit it and save (File | Save from Notepad).

"Don't Show Save Window When Saving" allows you to hide the save window when you save.  There
isn't a lot of point being able to see this window to be honest as it's a bit rubbish, so
only do this if you want some visual indication that everything has been saved OK.

If "Save Settings When Program Exited" is checked settings will be automatically saved
when the "EXIT" button or "x" (ie close) button are clicked or if "close" is chosen from
the control box menu.

If you have "Remember Last Profile Used" checked then the next time you start up BotJohnny,
it will start with the last profile you were using when you exited.  (Obviously..)

The "Graphical Skin Selector" is an alternate model/skin selector used by the Bot Editor,
Team Editor and when choosing your own model/skin from the Quake2 tab.  It has less
features than the normal one (ie no "show compatible models only", no renaming or deleting
facilities etc.) but might give you a better indication of what the models look like.
It might also be a little slower to use.


MULTIPLAYER

You can specify the name of a host to CONNECT TO or, if you are being
a host, the HOST NAME in the boxes here.  Click "none" if you are just
playing with bots on your own.


PROFILE USES COMMON...

These options have been moved to the PATHS tab to free up some space.


VIEWABLE WEAPONS

If you have the viewable weapons patch installed AND you use the "+set View_weapons 1"
option (the program comes with a "Viewable Weapons" option in the extra list by default
which you can tick to turn this on), you can see the bots holding the right weapons.
The only thing is that only certain models support this feature.  The Eraser bot stores
a list of all the models that do support this feature.  Other bots will probably ignore
this list.

Anyway, this list shows all the models that support this patch.  To add a model, click
"Add" then either choose it from the pulldown list or type it in.  To delete a model,
click it then click DELETE.

NOTE - this list is probably irrelevant with the appearance of version 3.15 of Quake 2
but I will keep it here unti I know for a fact either way.


ADVANCED CONFIGURATION

From here you can set the exact commands that BotJohnny uses to launch Quake2.  You should
not change these options unless you know what you are doing.

When you launch Quake2 it forms its command-line using the advanced configuration options.
Note that how Quake2 runs is dependent on the following:

1. LAUNCHER.CFG - this is a script automatically executed by Eraser when a map is
   changed.  It contains a list of CONSOLE commands in a similar way to the
   AUTOEXEC.CFG file.
 
2. THE COMMAND-LINE used to start the program.  For example:
   c:\quake2\quake2.exe +set basedir c:\quake2 +set game eraser
   
3. BJ.CFG - the "BotJohnny" file is the same as LAUNCHER.CFG except that Eraser does
   not execute it whenever the map has changed.  For other bots this can be used as
   a spare file.

4. BOTS.CFG - the "Bots Template" file defines how the BOTS file is created.  The
   format of this file varies from bot to bot (and is not needed by some bots).

When the command-line is formed, it is done in this order - this may be important
if you are using includes which add to more than one list.  It may be necessary
to use more than one include if this is the case and positioning is important.
   
For Eraser, have bot spawning in "launcher.cfg" and game setup and map changing
in "BJ.CFG".  It's a good idea to have as little as possible in the command line.
NEVER have a map change in the "launcher.cfg" if you are using the Eraser bot
or it will just keep changing maps and never let you play.

For other bots, it makes no difference whether you use "launcher.cfg" or "bj.cfg"
so take your pick.  It's probably best to stick with the same one so that you have
the option of using an alternative if need be.

The advanced configuration editor is split into four tabs.  Each tab refers to
one of the files above.  Clicking a tab will show you the relevant list.  Don't
worry too much about all the columns in the list as they relate to the options
themselves described in a moment.

Right-clicking an option in the list will give you various choices.  You can EDIT
the option, ADD a new one BEFORE or AFTER the currently selected option, MOVE the
item UP, MOVE the item DOWN or DELETE the item.  For help with EDITing see below.

If you have selected an included file (see below) and choose "Edit Include" it will
bring up the editor for that include.  If you select anything else and choose this
it will ask you for the name of the include file to edit.  Type this in.  If you type
one that is not recognised a new include file will be created.  This will be improved
at a later date.

Clicking OK will save the configuration.  Clicking CANCEL will abort any changes
you have made.

Note, the "MORE..." button has now been removed (as of version 1.5).  These
options are now stored only with each individual bot.  To change them, go to the
PATHS tab and click "Edit Bot Settings".  Most people will not need to use
this option.

(Note - clicking a column here does NOT sort using that column because the order
items appear in the list can be very important)



EDITING AN ADVANCED OPTION

When you edit an option you will get a new window.

On the left you will see a list of FLAGS.  Inserting these flags into your syntax
will insert the relevant bit of data.  A bit more on this in a second.  You can
drag any item in this list into one of the syntax boxes using the mouse.  If
you press F2 when you are typing in a text box it will bring up a zoomed version.
(In this window press F2 to shrink the font size, F3 to enlarge it and F10 to
toggle monospaced font.  Note also that <LF> characters are here shown as
carriage returns.  When you OK all carriage returns are converted back to <LF>s)

On the right you have the settings for the option you are editing.

The "Item Name" does not have a huge relevance except that it appears in the
Advanced Options list.  This is required.

The "Related Flag" is the name of one of the flags from the "Flags" list.
It comes into play when deciding which of the next two syntaxes to use.
If this is blank it will always add the "syntax if contains data or checked".

"Syntax if contains data or checked" is the syntax that will be added
if the item chosen as "related flag" contains some data and that data
is not zero or, if it's a checkbox, if the checkbox is ticked.

"Syntax if Zero / Unchecked" is the syntax that will be added if the item
chosen as "related flag" is zero or, if it's a checkbox, is the checkbox
is NOT ticked.

You can leave any of the syntax variations blank if you like.

"Include When" allows you to specify when this item is added to the
console or command-line.  It can be at any time or for just one of
the profile types (as chosen from the Main tab).

"When Spawning Bots" allows you to specify that this item is only
to be used if you are spawning Random or Specific bots.

NOTE - if this is set to "Random & Specific" then the item will be
used only if you are spawning random AND specific.  However, you should
be aware that in addition to this that anything marked as "Random" and
anything marked as "Specific" will also be added in.

You should see a little box underneath marked "If Left Blank".  This
determines what the program does if the "related flag" has no
value. It can either treat it as if the value was zero (ie do the
"syntax if zero/unchecked") or it can ignore it (ie not include
anything at all).

The "Type" determines where the syntax should be added.  It can be
a console command added to LAUNCHER.CFG, a COMMNAND-LINE option,
a console command added to BJ.CFG or an entry in the BOT TEMPLATE.

Note - if you change the type of an option it gets moved to the end of
the relevant list, so you may need to reposition it.

Click OK when done to keep your changes, CANCEL to abort them.
(No changes are saved until you click OK from the Advanced Options
list window).


THE FLAGS

As mentioned, any occurrences of these flags will be replaced by their
corresponding values.  Any flags containing the word "Repeat" will have
the command repeated for every appropriate value.  For example "<BotRepeat>"
will add the syntax for every single bot name selected.

Any trailing slashes on any path names are removed so you can safely assume
that they won't be there and add them yourself if required.

NOTE : Settings on the Quake2 tab will be blank if disabled.  For example,
       if a player name is typed in, but "Use Default Quake2 Settings" is checked,
	   it will be blank.
	   
<AllBots>
Like <BotRepeat> except this goes through every single bot in the list rather
than just the ones that are ticked.

<AllTeams>
Like <TeamRepeat> except this goes through every single team in the list regardless
of whether they're ticked or not.

<AutoSkill>
This is 0 or 1 depending on whether the bot's "Auto Adjust Skill" has been turned
off or on.

<BotAccuracy>            0 to 5
<BotAggro>               0 to 5
<BotCamp>                0 or 1
<BotMaxSkill>            0 to 9
<BotMinHealth>           0 to 100
<BotMinSkill>            0 to 9
<BotPing>                0 to 400
<BotQuad>                0 or 1
<BotSex>              male or female
<BotSkill>               0 to 5
<BotSkinNumber>          0 to ?
<BotTangentPing>         0 to 999
<BotWeapon>              0 to 9
The above flags can only be used in conjunction with <BotRepeat>, <CRteamRepeat>,
<CtfRedRepeat> and <CtfBlueRepeat>.  They allow you to use the attributes of the
various bots (firing accuracy, aggression, camper (0 for no, 1 for yes), maximum
skill, minimum health, minimum skill (for CRBot - otherwise this is just the
bot's individual skill), average ping, keen for the quads (0 for no, 1 for yes),
bot sex, combat skills, skin number, Tangential style ping and favourite weapon,
The bot sex is derived from the MODEL of the bot and is either "male" or "female".
You can sex a model (!) by using the Sex Editor from the Profile Manager program.
See also "<SkinRepeat>", "<ModelRepeat>" and "<Model/SkinRepeat>".
NOTE - the values on the right show the possible values that can be returned.
ALSO - the max and min skills will be replaced by whatever value is shown in the
skills box on the MAIN tab if "Bots - Same Skill" is checked.

<BotNames>
Gives a list of selected bot names separated by spaces.  (Eg "Cartman Kenny Sheep Milk")
(with no quotes).

<BotRepeat>
Same as the above except that the command is repeated for every single bot.  So
if your command was "addbot <BotRepeat>" it would add this (using the above example):
addbot Cartman
addbot Kenny
addbot Sheep
addbot Milk

<BotsPerTeam>
The number of bots allowed on one team.

<BotSameSkill>
Whether the "bots - same skill" checkbox is checked (1) or not (0).

<CaptureLimit>
The "Capture Limit" - ie how many flags need to be collected in a
CTF match before the game ends 

<CDPath>
The path to the CD drive.  Eg "f:\data\install".

<Connect>
The name of a game to connect to.

<CRTeamMember>
<CRTeamName>
<CRTeamNum>
The above three flags are all used together.  To use them, though, you MUST
set the relevant flag to "<CRTeamName>".  They are similar to <BotRepeat> only
for adding to teams using the bot name rather than the team name (as in <TeamRepeat>)
<CRTeamName> gives the full name of the team.  <CRTeamNum> gives the NUMBER of the
team.  This is generated by BotJohnny.  The first team to be created is assigned
the number 1, the second 2 and so on.  <CRTeamMember> is the name of each bot in
the team.  NOTE - if "players per team" has been set from the MAIN tab, then it won't
add any more bots than the number specified.

<CtfAutoTeam>
This is the "ideal number of bots per (CTF) team".

<CtfBlueCount>
This returns the number of bots on the blue team.

<CtfBlueRepeat>
This is similar to <BotRepeat> except that it runs through all the bots on the
blue Capture the Flag team.

<CtfBlueTeam>
Gives all the specified bots on the blue Capture the Flag team separated by spaces.
Similar to <BotNames>

<CtfRedCount>
This returns the number of bots on the red team.

<CtfRedRepeat>
This is similar to <BotRepeat> except that it runs through all the bots on the
red Capture the Flag team.

<CtfRedTeam>
Gives all the specified bots on the red Capture the Flag team separated by spaces.
Similar to <BotNames>

<CtfYourTeam>
Gives the name of the Capture the Flag team you want to join.  This will either
be "red", "blue" or empty ("").

<DMflags>
This is a single number relating to all the Deathmatch Flags selected from the
Options tab.

<DefaultSettings>
Whether or not "Use Default Quake2 Settings" (Quake2 tab) is checked or not.

<DisableSkins>
Whether "disable custom skins" on the Quake2 tab is checked.

<EraserFolder>
The name of the bot's folder (Eraser or otherwise).  Eg "Eraser"

<ExtraAfterMap>
<ExtraBeforeMap>
<ExtraOptions>
Use this to specify the exact point the extra options are added to the
command-line and console.  If you use this, the syntax lines and "include when"
type boxes are completely ignored.  "<ExtraOptions>" only returns
command-line options.  "<ExtraBeforeMap>" returns console options which should
be added before the map change.  "<ExtraAfterMap>" returns console options
which should be added after the map change.

<FragLimit>
The frag limit.

<FullScreen>
Whether "Run Full Screen?" on the Quake2 tab is checked or not.

<glBlend>
Whether "palette switching" on the Quake2 tab is checked or not.  (Must also
have "OpenGL" as opposed to "Software" selected for it to return anything)

<glDynamicLight>
Whether "dynamic lighting" on the Quake2 tab, OpenGL box is checked or not.

<glEnabled>
Whether OpenGL mode is being used.

<glFlashBlend>
Whether "flash blend" on the Quake2 tab, OpenGL box is checked or not.

<glLightMap>
Whether "lightmap" on the Quake2 tab, OpenGL box, is selected.

<glParticle>
Whether "Particule Toggle" on the Quake2 tab, OpenGL box is checked or not.

<glPlayerMip>
The value of "Reduce Player Textures" on the Quake2 tab, OpenGL box.

<glResNum>
The *number" of the resolution if OpenGL mode is selected.  The first resolution
is number 0, the second 1, the third 2 and so on.  (In Quake2, you would use this
like this: "gl_mode <glResNum>"

<glSaturateLight>
Whether "Saturate Lighting" on the Quake2 tab, OpenGL box, is checked.

<glShadows>
Whether "display shows" on the Quake2 tab, OpenGL box is checked or not.

<HostName>
If the computer launching is a host, this returns the host name to use.

<Lag>
The amount of lag (client latency) that you have set for yourself from the
Options tab.

<LF>
This inserts a line feed (ie new line) character.  This can only be used on
the console.

<MapNoCycle>
Whether the map cycling is set to "none".

<MapNormalCycle>
Whether the map cycle is set to "in order" - ie whether it goes through each map
in turn, in the order given.

<MapPath>
The full path to the location of the Quake2 maps file.
Eg "c:\quake2\baseq2\maps"

<MapRandomCycle>
Whether the map cycle is set to "random order".  If you include this tag in your
advanced config file, the program will not shuffle the maps into a random order
by itself.  If you do not include this tag, it will.

<MaxBots>
The maximum number of bots allowed in the game.

<ModelList>
Lists all PPM models installed.  The syntax will be repeated for every single model.
You can use <BotSex> here if you need to know the sex of the bot (male or female).
See also <SkinList> below.

<ModelRepeat>
This can only be used with <BotRepeat> or <TeamRepeat>.  It gives the model
of each individual bot or team.  See also <SkinRepeat>, <Model/SkinRepeat>
and <SpecialModel>.

<Model/SkinRepeat>
This can only be used with <BotRepeat> or <TeamRepeat>.  It gives the model
and skin of each individual bot or team in the format "model/skin".
(See also <SkinRepeat> and <ModelRepeat>

<OpponentRepeat>
Repeats the syntax for as many times as there are "bots per team" (as set
bottom right of TEAMS tab).

<PlayerCrossHair>
The type of crosshair used by the player as selected from the Quake2 tab.
This returns a number 0 to 3 depending on the crosshair chosen.

<PlayerHand>
The "handedness" of the player (left, right or centre).  This returns 0,1 or 2
respectively.

<PlayerName>
The name of the player (as per Quake2 tab).

<PlayerSkin>
The player's skin (again, as per Quake2 tab).  This also includes the model
name so will be in the format "model/skin" (eg "cartman/eric")

<Quake2ExeName>
The name of the Quake2 executable file.  Eg "quake2.exe"

<Quake2Location>
The full path to the Quake2 executable file.  Eg "c:\quake2"

<RandomBotNum>
The number of random bots that should be spawned.

<RandomRepeat>
This repeats whatever instruction you give in the syntax line as many times
as there are random bots to be spawned.

<SkillLevel>
The skill level, from 0 to 3.

<SkinList>
<SkinListModel>
These two flags allow you to list every single PPM skin installed on your system.
<SkinList> gives the name of the skin and <SkinListModel> gives the name of the
corresponding model.  <SkinListModel> will have no purpose anywhere other than in
<SkinList>.  The syntax will be repeated for every single skin.  Note, you can
also use <BotSex> here to get the sex (male or female) of the model.

<SkinRepeat>
This can only be used with <BotRepeat> or <TeamRepeat>.  It gives the skin
of each individual bot or team.  (See also <ModelRepeat> and <Model/SkinRepeat>

<SpecialModel>
This can only be used with <BotRepeat> or <TeamRepeat>.  It gives the model
of each individual bot or team.  It is very similar to <ModelRepeat> except
that that the model returned must have a special "bot" version of the model.
(Used by bots such as Famke and Oak II).  If the bot's model does not have
this special version, the default model will be used.

<SpecialSkin>
Like <SpecialModel> except it returns the skin.  This skin will either be the
one set up with the bot you wish to spawn or it will be the default skin.

<SpecificBotNum>
This returns the number of bots selected in the list from the BOTS tab.  Note,
if you are spawning "a random number of bots from the list below" or
"a random number of ticked bots below" then this will return the number of
Random bots.

<StartMap>
The name of the map to start the bot with.  Eg "q2dm1"

<swBlend>
Whether "palette switching" on the Quake2 tab is checked.  This only returns a
value if Software mode is being used.

<swEnabled>
Whether Software Mode is being used, as opposed to OpenGL mode, from the Quake2
tab.

<swMipCap>
The value of the "Mip Cap" box on the Quake2 tab.

<swMipScale>
The value of the "Mip Scale" box on the Quake2 tab.

<swResNum>
The *number* of the resolution as chosen from the Quake2 tab.  This only returns
something if software mode is enabled and returns a number from 0 to 9 depending
on the resolution.

<swWaterWarp>
Whether the water warping effect (Quake2 tab) is enabled.

<Tab>
This just inserts a tab character.

<TeamList>
The names of all selected teams separated by spaces.
Eg "SouthPark GibBrothers NewModels"

<TeamMembers>
<TeamMembersComma>
Used with <TeamRepeat> or <AllTeams> this gives you a list of the members of the
team with quotes around each name.  <TeamMembers> give it in the format shown in
the TEAMS tab.  <TeamMembersComma> puts commas between the team members.

<TeamPlay>
Set to 1 if the profile is set to "Deathmatch Teamplay" or 0
if it is set to anything else.

<TeamRepeat>
The same as "<TeamList>" except that it repeats the command for
every single team member.  See also <TeamMembers> and <TeamMembersComma>.
So if the syntax was "addteam <TeamRepeat>" it might do the following:
addteam SouthPark
addteam GibBrothers
addteam NewModels

<TeamRepeatYours>
This is the same as "<TeamRepeat>" except that it will always include the
team you are joining in the list regardless of whether it is ticked or not.

<TeamShortName>
Used with <TeamRepeat> or <AllTeams> to give the Short Name of the team.

<TimeLimit>
The time limit.

<VWeapons>
This returns a list of all models in the viewable weapons list separated
by a space.  Example:
male female cyborg

<VWeapRepeat>
Similar to the above except it repeats your syntax for every single model
in the list, replacing "<VWeapRepeat>" with each mode's name.  For example
if your syntax was "AddVwep <VWeapRepeat>" it might do the following:
AddVwep male
AddVwep female
AddVwep cyborg

(Note - "AddVwep" is a made-up command.  The two viewable weapons tags are
used for future support if required)

<YourTeam>
The name of the team that you want to join.  Eg "GibBrothers"

<YourTeamNum>
This returns the *number* of your team.  (Like <CRteamNum>).  The
first one selected in the list is team 1, the second team 2 etc.
If your team is not being joined you will be given a team number
all to yourself.

<YourTeamRepeat>
Repeats the syntax for as many times as there are "bots per team" (as set
bottom right of TEAMS tab) MINUS ONE. 


REPLACING

If there are bits that you shouldn't use in your file, you can use the
<REPLACE> tag like this:

<REPLACE OLD="search" NEW="replace"> bit you want to replace </REPLACE>

For example:

<REPLACE OLD="afternoon" NEW="evening"> Good afternoon to you! </REPLACE>

would return:

Good evening to you!


SETTING LENGTHS

If you need to force something to be a specific length, you need to use
<LEN> and </LEN>.  There are three ways you use this.  Note, in these
examples, don't put the spaces between the <LEN=xx> bit and the flag
afterwards.  It is shown that way to be more readable.

The three different versions are:
<LEN=number>...</LEN>
<LEN=keyword>...</LEN>
<LEN=flag>...</LEN>

First, with a number.  For example:
<LEN=10> <BotRepeat> </LEN>
This would make sure that every bot name is 10 characters long, chopping
off any extra characters if it's too long or padding it out with spaces
if it's too short.

Secondly, with a keyword.  For example:
<LEN=BotName> <BotRepeat> </LEN>
This would list all bot names as usual, making sure that they are all the
same length.  In this case "BotName" represents the length of the longest
bot name.  You can also use "BotModelSkin", "TeamName", "TeamShortName"
and "TeamModelSkin".  The ones ending in "ModelSkin" are the model and skin
of the bot or team in "model/skin" format.

Thirdly, using a non-repeated advanced configuration flag without the angled
brackets.  ("Non-repeated" meaning that this won't work for <BotRepeat>,
<TeamRepeat>, <BotSex> etc. etc.)  Use this as follows:
<LEN=YourTeam> <YourTeam> </LEN>
This pointless example makes sure that the name of your team is the same
length as... erm.. the name of your team.

Note - in all cases the reason for using it is usually cosmetic for use
with the bot templates file.

THE EXTRA PARAMETER can be used if you want to add to the length of
the string.  For example, if you need to surround the BotName in quotes,
you would want the length of what you type to be the length of the
longest bot's name plus two.  Use this as follows:

<LEN=BotName EXTRA=2>"name of bot"</LEN>

You can use any number (including a negative number - but be careful here
as the program doesn't check this and you could in theory cause a crash)
instead of the '2'.



EXPRESSIONS IN FLAGS

You can now include simple integer expressions in your flags.  To do this
surround what you wish to calculate with <INT> and </INT>.  For example:

<INT>6+3-1*2</INT>

This would be replaced by 16.  Note that calculations are done left to right.
You can only use:

+  -  /  *

to work out your calculations.  Brackets and decimal points, for example,
will be completely ignored.  5.344+6 would currently return "5350".

You can use these expressions with the above flags, providing they return
an integer.

For example, if you wanted to convert the Bot Ping from the Eraser format
(which is a number from 0 to 400) to Secantbot format (which is a number from
0 to 999) you could use this:

<INT> <BotPing> / 400 * 999 </INT>

(I have spaced it out so it is more readable to you.  The spaces are not needed
and would be completely ignored if included.)

If the result of the expression might be a little unpredictable, you can ensure
that it falls between two values by specifying MIN and MAX parameters.  (You can
use them both together or one on its own).

Taking the above example, if you wanted to make absolutely sure that the Bot Ping
fell between 0 and 999 you could do this:

<INT MIN=0 MAX=999>  <BotPing> / 400 * 999 </INT>



THE PATHS TAB
=============

(Clicking "..." for these options will bring up a file requester.  For any path options
the trailing slash is optional)


HELPER PROGRAMS

"PCX Viewer" is the path and filename of a graphics program (such as Paint
Shop Pro) that is capable of displaying PCX format pictures.  When you
"Examine" a model/skin you get a button marked "View Skin" (and one marked
"View Portrait").  These will launch the program shown here.  If you leave
this blank it will use the default viewer assigned for a PCX program.

"Model Viewer" is similar to the above, but is used to display the Quake2
style models (eg "Md2view").  Again, if you leave this blank, BotJohnny
will use the default viewer assigned for an MD2 object (providing there
is one).  BotJohnny also adds the name of the skin to the command-line
although it unfortunately can't do this unless you specify the command-line
of the program here.

NOTE - the way BotJohnny handles this is to simply add the name and path
of the model or picture to the end of the command-line of the program.
If the viewer requires the filename to be in quotes, or to be passed
using a slightly strange syntax, include the full syntax of the program
and put <FILE> where you want the full pathname of the file to view.
For example, if you wanted to pass it to Paint Shop Pro in quotes
(although you don't need to) you could put this:

C:\Program Files\Paint Shop Pro\Psp.exe "<FILE>"

With the model viewer you can also add <SKIN> to the command-line to specify
the command-line of the skin.  For example:

c:\Program Files\Md2View\Md2View.exe <FILE> <SKIN>
c:\Program Files\SQSB\sgi_qsb.exe "<FILE>" "<SKIN>"

The above programs (MD2View and Quake Scene Builder) are recommended because
I know they work.


OTHER BITS AND PIECES

"Launch Sample" allows you to have a... well, a sample played on launch...
what else can I say?  Leave it blank if you don't want one, otherwise type
in the name of the WAV file to play.  Click "launch sample" to hear it.

You can use wildcards in the sample name if you want to have a sample
chosen at random.  For example, if you had a whole load of samples in
your "c:\sounds" folder and you wanted to pick one at random each time
to play on launch, you would type in here "c:\sounds\*.wav"


PROFILE USES COMMON...

Sometimes it's a pain having all these profiles having all different settings.
Ooh.  Damn them.

So, instead of having separate settings you can decide that all the profiles
use the same ones.  You can share bot profiles, bot chat, map cycle lists or
autoexec files between the profiles.

You can also share the "Advanced Config" which is described shortly.

Note, each profile can be set to share the common files or use its own.

WHEN YOU CHECK A FILE : you will be asked if you want to delete the profile's
copy of the file.  This is sensible if you don't want it.  For example,
all profiles have a copy of the "Chat" file, but if you want all profiles
to share a single copy, then there's no point in keeping these copies in
each individual profile's folder.

WHEN YOU UN-CHECK A FILE : if you have deleted the file (see above) it will
ask where you want to get a new copy from.  You can either copy it from the
Eraser folder directly or from the main BotJohnny folder (where all the
"command" profile settings are stored.


THE BUTTONS

If you have used BotJohnny prior to version 1.5 you may be wondering where
all the options are here.  Well, they're gone.  Now, the filenames (including
batch file) are stored with the GAME setup.  If you want two profiles to use
different paths, exe files or batch files, you will need to set up a new
GAME.  (See Profile Manager help for how to do this).

However, most people will just want the same paths to be used for all profiles.
The three buttons at the top right allow you to set these up.

EDIT GAME PATHS allows you to change the most common game paths.  This launches
Profile Manager, but only shows you the Game Paths editor for the game currently
being used (normally Quake2).  You can change the location of Quake2, the name
of the EXE file used to run it, the location of custom maps, the CD path
(which is optional), the location of the Plug-in player models, the skin file
filter (leave this as "_i.pcx" unless you know what you are doing), the
launch batch file (an optional batch file that you can write to be used
on launch) and the name of the model to display when "View Model" is clicked
in the Model Examiner.  (For Quake2 this will nearly always be "tris.md2").
These options are explained in a little more detail in the Profile Manager
help guide.

CHANGE BOT FOLDER allows you to change the name of the folder where the bot
is stored.  This is a sub-folder of the main Quake2 location.  For example
"Eraser" or "CRbot".  The current one will be shown.  You can then edit it
and click OK or CANCEL.

EDIT BOT SETTINGS launches Profile Manager and brings up the Bot Editor
window so that you can edit the settings for the current bot.  This is
really for advanced users only.  Refer to the Profile Manager help
guide for more information.

EDIT CUSTOM MAPS also launches Profile Manager.  It brings up the Custom
Map Editor window so that you can edit the maps that appear in the
"Available Maps List".  Again, refer to the Profile Manager help
guide for more informaion.



THE QUAKE2 TAB
==============

(NOTE - Please see the CREDITS section at the bottom of this text file for
the sources of this information)


SETTINGS

"Default Driver Settings" ignores any driver specific commands and will use
Quake2 as it stands.  For most people, this should be fine.

"Use Software Specific Options" is for people without a graphics card.  You can
then change options in the "Software Driven Specific" box.  Also, if you
are not using the default Quake2 settings, some options in the "General"
box will use software rather than OpenGL versions of commands.

"Use OpenGL Specific Options" is for people with a graphics card.  You can then
change options in the "OpenGL Specific" box and some options in the
"General" box will use the OpenGL versions of commands.

Ticking "Use Default Quake2 General Settings" prevents you from making any
changes in the GENERAL box and will use the Quake2 defaults instead.


GENERAL

NOTE: If "Use Default Quake2 Settings?" is checked, these options will be
      ignored.
	  
	  For any options which vary depending on whether software or OpenGL is
	  selected from the Driver box, if this is set to "Use Default Driver
	  Settings" they will be ignored.
	  
	  Any text boxes left empty or combo boxes set to "Default" will be
	  ignored so that the default Quake2 settings are used.
	 
	 
PLAYER NAME is the name of your player.  There's not a lot else I can say
about it really.

PLAYER SKIN is the model and skin of your player.  Click the "..."
button to choose it.  (This works the same as it does from the Bot Editor).

HANDEDNESS sets which hand holds your gun.  (Left, right or centre).  "Centre"
doesn't actually show the gun, so if you are wanting to optimise the game,
setting it to this will actually speed things up.

CROSS HAIR sets the type of cross hair used..!

DISABLE CUSTOM SKINS will (sigh!) disable any custom player skins so that
all players will look the same.  Check this one to increase the performance
of the game.

DISABLE PALETTE SWITCHING - if this is checked then the screen won't flash
red if you get shot or if you fall in lava, and swimming underwater becomes
crystal clear.  Be careful with this because if it is disabed you won't be
able to see if you're getting hit..!  (Note - in software mode this sets
"cl_blend" and in OpenGL mode it sets "gl_polyblend")

Check RUN FULL SCREEN if you want the game to run in full screen mode.
Otherwise it will run in a little window.

You can choose the RESOLUTION you want the game to run in using the combo
box.  Not all these resolutions will necessarily work on your system,
depending on your setup.  It goes without saying that the higher the
resolution the slower the game will be.  (Note this is implemented
differently depending on whether "Software" or "OpenGL" is selected)


OPENGL SPECIFIC

** To change options in this box, you must choose "Use OpenGL Options" in
   the Driver box.

Toggle "LIGHTMAP" on will remove the level's textures and only render lights
and shadows on blank walls.  This speeds up the rendering considerably and it
"doesn't look as bad as it sounds"..!

If "SATURATE LIGHTING" is on, the levels will appear much brighter, but
everthing looks saturated.

"PARTICLE TOGGLE"... well, it toggles the particles, obviously.  If you switch
this off the game will run faster.

"DYNAMIC LIGHTING" controls the fancy lighting effects (which are, quote "real
pretty").  You can turn them off if you are more concerned about how fast the
game runs though.

"FLASH BLEND" is concerned with objects that emit light.  Turning this on will
give a speed boost, but makes the game look ugly.

"DISPLAY SHADOWS" isn't too cryptic... turn this off to stop shadows appearing
in the game (which then should run a bit faster).

"REDUCE PLAYER TEXTURES" allows you to control the "PlayerMIP" settings.
Increasing this number will reduce the detail of other players, meaning
that the game should run faster.


SOFTWARE DRIVEN SPECIFIC

** To change options in this box, you must choose "Use Software Options" in
   the Driver box.

If "WATER WARPING EFFECTS" is on (Quake2 default) when you are underwater
the screen goes all strange to give you that "underwater" effect.  This
looks cool but can slow down the game and can also be disorientating for
something like Deathmatch where you need to keep your wits about you.

Increasing "MIPSCALE" will lower the detail of distant environments, meaning
that the game could run much faster on larger levels.

To quote from the Gamers Extreme Quake2 Bible:

"MIPCAP" is similar to mipscale, but it limits the maximum resolution of
textures, up close or otherwise. If you use a mipscale of 2-50 and don't like
the way textures snap in and out of focus, experiment with _mipcap, which
can reduce or eliminate this annoying effect. Mipcaps range from 0-3, with 0
being the default (highest resolution).



MORE CONFIGURATION OPTIONS
==========================

NOTE - I am no longer going to describe how to do things that can be done much
more easily in Profile Manager as there doesn't seem to be much point.

AUTOEXEC WIZARD - ADDING NEW SCRIPTS
Copy any scripts you want to be included in the wizard into the folder of the GAME you
wish to use them for.  (For example, if they were Quake2 scripts you would copy them
into "botjohnny\game-paths\quake2\").  Make sure it ends in the extension .SPT and
it will be included in the list.

SETTING WHICH EXTRA OPTIONS ARE TICKED BY DEFAULT
You can set which options are ticked by default individually for each bot.  To do this,
you need to go to any profile using that bot and tick which extra options you want to
use as the defaults and click "Save Settings".  Then with something like Windows Explorer
copy the file "ChekXtra.cfg" from the folder of this profile into the bot's folder in
Plug-Ins.  For example, if you wanted to set the default options for Eraser and you had
a profile called "Eraser Deathmatch" you would set up which options you want as default in
"Eraser Deathmatch" then copy file "botjohnny\eraser deathmatch\ChekXtra.cfg" into
"botjohnny\plug-ins\eraser".


KEYBOARD SHORTCUTS
==================

BotJohnny uses standard Windows keyboard shortcuts, also the following which will
work in the bots, teams, extra options, advanced configuration options, available
maps and map cycle lists.  The Windows95 popup menu button should also work just
about everywhere it's needed.

ENTER     : For bots, teams and extra options this ticks or un-ticks the current
            item.  For comments or advanced configuration options, this edits the
		    current item.  For the "Available Maps List" this adds the current map
		    to the Map Cycle List.  In the "Maps Cycle List" this uses the currently
		    selected map as the start map.

F2        : This brings up the 'zoom' window when in a text box.  This just allows
            you a little more space to type in.

F5        : If the available maps list is selected this will 'refresh' it and
            regenerate the list of maps.  You generally won't need to do this.
			
			If the bots list is selected, this will 'refresh' it (and the teams
			list), reloading them all from file and cancelling any changes you
			have made.

F12       : In the available maps list this makes the selected map the start map.

DEL       : This deletes the current item.

CTRL+U    : This moves the current item up.

CTRL+D    : this moves the current item down.

INS       : inserts after currently selected item

SHIFT+INS : inserts before currently selected item


COMMAND-LINE OPTIONS
====================

For all of the following, the quotes are optional unless the parameter contains a space
in which case they must be used.


FONTSIZE="<font size>"
This sets the point size of every single font used in the program.  <font size> can only be
an integer.  You should only use this if you are having display problems (possibly caused by
having "large screen fonts" set in Windows).  You should not set this greater to the settings
used by the program (ie 10) or you will find that bits of the fonts will be chopped off.
If you have to use it, try it like this:

C:\Program Files\BotJohnny\EraseJohnny.exe FONTSIZE=8


FONTNAME="<Font Name>"
BotJohnny uses Arial.  If you don't like Arial then you don't have to use it.  Again this is
probably only of real use if you are having display problems.  You can use this with "FONTSIZE"
if you want to make sure every control looks the same.  (Yawn).  For example:

C:\Program Files\BotJohnny\EraseJohnny.exe FONTNAME="Times New Roman"
C:\Program Files\BotJohnny\EraseJohnny.exe FONTNAME="MS Sans Serif" FONTSIZE=8


PROFILE="<Profile Name>"
Starts BotJohnny and sets the current profile name to <profilename>.  The quotes are optional
unless <profilename> contains spaces.  This option overrides the "remember last profile used"
checkbox.  Eg:

C:\Program Files\BotJohnny\EraseJohnny.exe PROFILE=Deathmatch
C:\Program Files\BotJohnny\EraseJohnny.exe PROFILE="Capture the Flag"


LOG
If you put just the word "LOG" after the filename when you run it, then the program will
enable the "Quick Launch" button and make a log file of the files it loads when it starts.
This is for debugging purposes only.  Eg:

C:\Program Files\BotJohnny\EraseJohnny.exe LOG


BYPASS
Just put the word "BYPASS" on its own after the filename when you run BotJohnny if you
don't want the program to check to see whether it's been run before.  (This means it
won't copy across all the default files).  Eg:

C:\Program Files\BotJohnny\EraseJohnny.exe BYPASS


STARTAGAIN
Put "STARTAGAIN" on its own after the filename when you run BotJohnny and it will ask
you if you want to act as if BotJohnny has never been run before.  If you answer YES
it will ask you for the location of Quake2, copy across the BOTS, CHAT, MAPS and AUTOEXEC
files from your Eraser folder over the ones currently in your BotJohnny folder.  It
won't, however, copy over the settings to your individual profiles.  Eg:

C:\Program Files\BotJohnny\EraseJohnny.exe STARTAGAIN



CREDITS
=======

x  These instructions were written by John Carpenter
x  Descriptions for some Deathmatch Flags by Paul Bowlay
x  Mipscale, Water warping, player MIP, lightmap and saturate lighting descriptions
   were paraphrased from the Gamers Extreme Quake2 Bible
x  The description for Mipcap was directly quoted from the Gamers Extreme Quake2 Bible
   with kind permission.
x  Particles, Dynamic Lighting, Flashblend and Shadows help provided by bod

BotJohnny web site: http://jb.quake2.co.uk/
Gamers Extreme Quake2 Bible web site: http://www.gamers.com
