Title Filename Version Date Authors

Email Bot Homepage

Gladiator Bot for Quake2 Gladq2091.ZIP version 0.91 1999-03-17 Mr. Elusive (concept, design & programming) Squatt (concept, design) Mr. Freeze (gladiator page)

Credits Description of the add-on System and other requirements Installing the add-on BSPC Tool New console commands New console variables Administrator menu Game Settings Xatrix mission pack 1 "The Reckoning" Rogue mission pack 2 "Ground Zero" Rocket Arena 2 Capture The Flag Bot chats The Bot Characters Known problems/bugs Troubleshooting Copyright and distribution permissions Availability Version changes


ID Software Allan (Strider) Kivlin Philip Niewold Info-Zip Team Adrian (Mr Pink) Finol Dominic (Cube) Rutter Matt (Genocyde) Freitas Timm Stokke

Quake2 Stimulating conversations, and beta testing ideas on AI zip/unzip tools ( beta testing beta testing beta testing beta testing

Description of the add-on
State of the art Artificial Intelligence. The add-on simulates one or more artificial players. Designed for everyone who wants to become a better player in Quake2 or to experience the multiplayer feel without having a fast network and/or Internet connection. Menu in order to easily add bots to and remove bots from the game. Several different bot characters included for the real multiplayer experience. The bot understands all the game rules, weapons and items. Virtually human-like bot chats. (and if you've played online, you know that this isn't difficult to implement..hahaha) Ability to order bots on your team to do things by chatting to them. Observer modes to observe the playing bots. Autocam in order to get the best view of all the action in the game. Easy extendible AI network. Advanced goal evaluation AI. Bot uses fuzzy logic which gives it an amount of flexibility when making decisions and allows those decisions to appear much more intelligent. Advanced routing and navigation. A tool is included that needs to be run before the bots are played (The tool can run from the game as well, but it is better to do this before running the game). This tool creates a file (name.aas) that contains all the information the bot needs in order to navigate the given map. This tool operates without any human intervention, and it does not create waypoints. The AAS removes the whole business of messing around

with (often?) badly placed waypoints. Waypoints are old-fashioned anyway. Comparing the waypoint system with AAS, and B.D. Squatt came up with this: AAS is like driving a Ferrari and waypoints are like riding a bycycle. Both will get you there...but ..... With the AAS the bot can theoretically play any map ever made. However keep the following in mind. The bot isn't finished yet and doesn't know how to go about with some 'trains', rotating objects, lasers, secrets, buttons, etc. As a result the bot might sometimes do seemingly stupid things or simply get stuck on maps with lots of these features. For your convenience a list has been included with maps the bot can play fairly well.

System and other requirements
a computer that runs Quake2 with a minimum of 32 MB, recommended: Pentium 166 MHz with 64 MB or comparable computer. Also, although we hate to say this, this only runs with the Microsoft virus called Windows (9x/NT). Quake2 version 3.14 or higher. Version 3.20 recommended. newbies to computers: we assume that the typical user knows such things as "command line", "parameters", "directory" ,and all that..if you don't, go out there and familiarize yourself with it...we do not want to be your teachers. newbies to Quake2: read the quake manual on what and how Quake2 specific settings work out. You need to know what a multiplayer game is, the console, how to activate it..etc.. We simply don't want any mail on this subject. You (presumably) bought the game, we assume it is your duty to read all it's manuals...or we will put you on "the Black List". a sense of humor.

Installing the add-on
create a subdirectory in your Quake2 directory. (if E:\QUAKE2 is your Quake2 directory you could create E:\QUAKE2\GLADIATOR) copy the contents of the zip file (including the subdirectories) into the created directory. create .aas files with the BSPC tool for the map(s) you want to play. start Quake2 with the command-line parameter '+set game' followed by the name of the directory where the Gladiator bot is located (for example: e:\quake2\quake2 +set game gladiator) Remember that you need to start a server to enable the bots. This can be accomplished by adding the parameters '+set deathmatch 1' the line would become 'e:\quake2\quake2 +set game gladiator +set deathmatch 1'. Since Quake2 screws up the game directory setting after playing the demos

it's a good idea to prevent the demos from being played. You can accomplish this by adding the command-line parameter '+disconnect'. The full command-line will look like this: 'e:\quake2\quake2 +set game gladiator +set deathmatch 1 +disconnect'. Quake2 will launch and the console will be down. Just use the 'map' console command to start the map you want. type 'menu' on the console and you can add bots, see the administrator menu

The BSPC tool creates data which the bot uses to navigate a map. The program 'winbspc.exe' is included with the Gladiator bot. Launch this program to create .aas files. Read the WinBSPC readme for more details. Note: several (optimized) .aas files can be stored together in an "" where X is in the range [0-9]. The "" file should be placed in your Gladiator directory. The bot library will read the .aas files directly from the zip file. However you should only zip .aas files that have been loaded at least once with bots. The first time a newly compiled .aas file is loaded, some additional data is calculated and the file is optimized. These calculations should be finished before adding the .aas file to an "".

New console commands
menu [rcon password] show administrator menu NOTE: the rcon password is only required when "serveronlybotcmds" is set. addbot <botlib> <name> <skin> add one bot <charfile> <charname> <botlib> name of the bot library <name> name of the bot <skin> skin of the bot <charfile> file with the bot character <charname> name of the character * removebot [name] remove a bot or the bot with the given name * observer toggles observer mode observerhelp displays observer mode help cyclecam cycle the camera to the next bot or player setcam <name> set the camera to player with name

autocam enter Automatic Camera mode teamhelp [name] ask for help in teamplay teamaccompany [name] ask for company in teamplay mstart start the match in RA2 mstop stop the match in RA2 mode toarena <X> go to arena X in RA2 mode * When "serveronlybotcmds" is set the 'addbot' and 'removebot' commands can only be used on the server console. To execute the commands on the server console "sv " needs to be added in front. For instance : ' sv addbot gladiator.dll "Pinky" "male/viper" "bots/chars.c" "hunk" '.

New console variables
botfile <filename> sets the file with bots to use in the menu nochat <0|1> enable or disable bot chatting mstart_auto <0|1> enable or disable auto restarting of match in RA2 noitems <0|1> enable or disable no items in RA2 minimumplayers set the miminum number of players in the game, bots <x> are added when to few players are in the game autolaunchbspc enable or disable launching WinBSPC automatically <0|1> serveronlybotcmds enable or disable the ability to use the bot commands <0|1> (addbot etc) at the client side ra <0|1> enable or disable Rocket Arena ctf <0|1> enable or disable CTF xatrix <0|1> enable or disable Xatrix mission pack 1 rogue <0|1> enable or disable Rogue mission pack 2 Administrator menu Using the menu The move forward and backward keys (usually the arrow up and arrow down keys) are used to go to the next or previous menu item. The keys normally used to scroll through your inventory can also be used to move through the menu. Activating a menu item can be done with the 'use inventory' key (usually the [Enter] key). It's also possible to use strafe right and left keys to enter and leave a sub-menu. To exit the menu at any time press the [Esc] key.

Gladiator menu: Bots Help Exit bot menu menu help leave the menu

Bots menu: add bot add random remove bot remove all back add a bot from the list add a random bot from the list remove a bot from the game remove all bots from the game back to the gladiator menu

Rocket Arena menu: bot arena teamplay Shotgun Super Shotgun Machinegun Chaingun Grenade Launcher Rocket Launcher Hyperblaster Railgun BFG back the arena to add bots to teamplay mode enable/disable the Shotgun enable/disable the Super Shotgun enable/disable the Machinegun enable/disable the Chaingun enable/disable the Grenade Launcher enable/disable the Rocket Launcher enable/disable the Hyperblaster enable/disable the Railgun enable/disable the BFG10K back to the gladiator menu

Game Settings
Several game settings can be enabled/disabled with the "dmflags" console variable. This variable stores a number of flags denoted by numbers. To set the flag the value is added to the console variable. Flag DF_NO_HEALTH DF_NO_ITEMS DF_WEAPONS_STAY DF_NO_FALLING value 1 2 4 8 description no health no items weapons stay after picking them up no damage when falling from from


great heights powerups are activated instantly stay on the same level teamplay based on skin teamplay based on model no friendly fire spawn as far away as possible from DF_SPAWN_FARTHEST 512 the last death location force respawn, players can't stay DF_FORCE_RESPAWN 1024 dead DF_NO_ARMOR 2048 no armor DF_ALLOW_EXIT 4096 allow players to exit a level DF_INFINITE_AMMO 8192 infinite ammo quad damage is dropped when a DF_QUAD_DROP 16384 player using quad dies DF_FIXED_FOV 32768 fixed field of vision players joining the server will DF_CTF_FORCEJOIN 131072 automatically be assigned to a team DF_ARMOR_PROTECT 262144 attacks won't harm teammates' armor DF_CTF_NO_TECH 524288 no Tech Powerups For example, say you wish to configure a server with weapons stay, instant tems, spawn farthest, force respawn, quad drop, and armor protect, you would use: DF_INSTANT_ITEMS DF_SAME_LEVEL DF_SKINTEAMS DF_MODELTEAMS DF_NO_FRIENDLY_FIRE 16 32 64 128 256 4 + 16 + 512 + 1024 + 16384 + 262144 = 280084 now type: "set dmflags 280084" on the console or add "+set dmflags 280084" to the command-line. NOTE: when the dmflags console variable is changed all the bots have to be reloaded. Otherwise the new game settings won't have any effect on the bots.


Xatrix mission pack 1 "The Reckoning"
The Reckoning should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your The Reckoning folder (you might want to backup your original The Reckoning files first!). At this point you launch Ground Zero as you'd normally do. Type 'set xatrix 1' on the console and then load the Xatrix map you want to play.

Rogue mission pack 2 "Ground Zero"
Ground Zero should be installed in order to play it with the Gladiator bot. Copy all

the Gladiator bot files to your Ground Zero folder (you might want to backup your original Ground Zero files first!). At this point you launch Ground Zero as you'd normally do. Type 'set rogue 1' on the console and then load the Rogue map you want to play.

Rocket Arena 2
Rocket Arena 2 should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your Rocket Arena 2 folder (you might want to backup your original Rocket Arena 2 files first!). At this point you launch Rocket Arena 2 as you'd normally do. Type 'set rocketarena 1' and 'set deathmatch 1' on the console and then load the Rocket Arena map you want to play. Type 'toarena X' on the console to go to the arena you want (X is the number of the arena, 1 or higher is an arena, 0 is no arena, it's the observer room). Type 'set arena X', where X is the arena you want to spawn a bot. Use the menu to add a bot to the specified arena. Type 'mstart' on the console to start the match. Type 'mstop' on the console to stop a match.

Capture The Flag (CTF)
CTF should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your CTF folder (you might want to backup your original CTF files first!). At this point you launch CTF as you'd normally do. Type 'set ctf 1' and 'set deathmatch 1' on the console and then load the CTF map you want to play. Use the menu to add bots to the game. The bots will automatically be assigned to the teams.

Bot chats
The Gladiator bot tries to interact with it's environment like a real player, including chatting with other players. The system isn't perfect, but for those of you who know didley squatt (heh heh) about programming, its just a matter of finding a balance between realism and cpu load. The bot can (but will not always) reply to phrases from other players (including other bots). In teamplay and CTF, you can tell the bots on your team what to do by chatting to them. If a bot decides to do what you tell it, you will be notified by the same method, otherwise, if it rails you, it might become clear to you that it does not agree with your "commands". Listed below are a few of the possible ways to patronize your (bot) team mates: chat reaction

"help me" "help me near the rl" "hunk help me" "babe help hunk near the db" "accompany me" "messiah accompany me" "zero go with babe" "get the enemy flag" "maxine capture the enemy flag" "defend the base" "rush to base"

some of your team mates might help you if he/she knows where you are some of your team mates might help you near the Rocket Launcher Adrenaline Hunk should go to you and help you. Silicon Babe should help Adrenaline Hunk near the Super Shotgun. some of your team mates might accompany you Shotgun Messiah should accompany you. Zero should follow Silicon Babe. some of your team mates should get the enemy flag. Maxine should capture the enemy flag. some of your team mates should defend the base all your team mates should go to the base

The Bot Characters
The bot characters available in this version come in 18 flavors, 6 boyz, 6 girlz and 6 cyborgs. Each character is specified with over 50 characteristics, item selection code, weapon selection code, variable chats etc. For each bot just a few characteristics (attack skill, aim skill, aim accuracy) and a short description are listed below. Attack Skill is the ability to avoid getting damage (dodgeing, jumping running, circlestrafing, making coffee). Aim Skill is whether the character knows stuff like where to shoot an enemy to inflict maximum damage, such as shooting rockets in front of a target's feet for instance, and Aim Accuracy defines how well the bot can keep the crosshair positioned on the target during battle. Character Name Adrenaline Hunk Bill Gates Alt Name Zeta Beta Sex male male Attack Aim Skill Skill 0.70 1 0.9 0.60 Aim Notes Accuracy 0.5 0.30 Yes it's Bill Gates, the guy we all know from the Omicron bot. Any similarity between this Bill and the guy from a certain software company is totally

on purpose and with malicious intent, I mean..let's face it, would it give you the same satisfaction if this guy was called Bill Cosby Byte Iota other 0.15 Demigoddess Omicron female 0.95 0.15 0.95 0.15 0.95 Back from the Omicron bot, the Demigod (or goddess if you will) will show you enlightment..with the aid of violence. She's better than S.babe, and she is transparent as's a feature, not a bug Any similarity to any person, living or dead is purely coincidence...we're not sure if this also applies to the digital world...heh heh.... :)

Java Man Laura Craft

Alpha other 0.75 Upsilon female 0.30

0.1 0.30

1 0.30

Luuzr Maxine Number 9 player Quad bitch Reaper Shotgun Messiah

Eta Mu Rho Pi Labda Reaper Delta

male female other male female other

0.10 0.25 0.75 0.25 0.2 1

0.10 0.8 0.75 0.25 0.6 1 0.60

0.10 0.5 0.75 0.25 1 1 0.60

female 0.60

named after "father" of all bots She has a preference of the shotgun above anything else. That doesn't mean she

Silicon Babe Epsilon female 0.85









won't pick up the railgun.... For all of you who have a failing grade in the English language; it's Silicon Babe, not Silicone Babe (my guess is that Pamela Anderson falls into this category). Silicon is the stuff your CPU is made out of, not the stuff used for lubrication or breast implants. This guy is supposed to be the original know..the roman empire...the slave revolt...he's a Greek guy as well....I would like to dedicate this character to Stanley Kubrick...I really like Spartacus the movie.

Steroid Stud Trash Zero

Tau male Omega other Kappa other

0.20 0.80

0.20 0.80

0.20 0.80 If you lose from this guy, you're worse than a 0, and that means you can't impress the other sex, unless you're loaded (and we don't mean that you're drunk), or have the looks...or

0.001 0.001 0.001


Known problems/bugs
When reporting a bug please include the 'botlib.log' file and fill in the bugreport.txt Demigoddess should appear as a transparent female, but using certain 3D cards she's invisible. See it as an extra challenge. Setting 'maxclients' to 256 and 'maxentities' to 2048 before loading q2ctf8 crashes Quake2. This is probably a bug in Quake2.

When I type menu on the console I just see an echoed 'menu': make sure you've installed the bot correctly and make sure no demos are played before loading a map. note the menu only works when a map is loaded. The .AAS files I created for the previous version of the Gladiator bot don't work with version 0.91: You'll need to compile the maps with WinBSPC 1.1 (included with the bot) to create .AAS files that work with this version of the bot. None of the bot characters seem to use the grappling hook in CTF; you are using an old .AAS file: re-AAS your maps.

Copyright and distribution permissions
By using this product you agree to exempt, without reservation, the authors and owners of this production or components thereof from any responsibility for liability, damage caused, or loss, directly or indirectly, by this software, including but not limited to, any interruptions of service, loss of business, or any other consequential damages resulting from the use of or operation of this product or components thereof. No warranties are made, expressed or implied, regarding the usage, functionality, or implied operability of this product. All elements are available solely on an "as-is" basis. Usage is subject to the user's own risk. Note: The Gladiator bot incorporates compression code from the Info-ZIP group. There are no extra charges or costs due to the use of this code, and the original compression sources are freely available from or on the Internet.

You are reading this, so you must have it, so why would you need another one? Oh well... you can find the most recent version at

Version changes
version 0.91 - ported game library to Linux-i386 - ported gladiator library to Linux-i386 - disabled bot editing/maximum number limiting algorithm - added option to disable the gladiator library log file - added grappling hook usage - added grappling hook reachabilities - fixed several rchat bugs - bot end game chat message appears after bot has disconnected (as a result the bot name does not shows up) - crash when changing level after "not allowed to have more than x bots on this map" message - decreased map load time - added BotAddPointLight to botlib interface - added light level calculation to AAS - changed BotUpdateSound into BotAddSound in botlib interface - fixed add random bot - added "minimumplayers" console variable with functionality - fixed grapple hook precache - fixed jumping onto and from elevators - fixed grapple reachabilities screwing other reachabilities - fixed %'s in gi.Xprintf (thanks to Rhea) version 0.9 - RA2 support - CTF support - Xatrix mp1 support - Rogue mp2 support - added 12 new bot characters - tweaked some bot characters - added more weapon specifications - added new chat engine, rchat, ichat, synonym list, random string list

- fixed weapon weights - several bot characteristics changed - fixed jumping during battle - fixed unzip.dll crashes under WinNT & Win95 - changed AAS version to 2 - fixed obstacles towards teleporter - fixed bspc area 'center' - fixed 'natural' area clustering with teleporters - fixed random chat string pieces - fixed "goal heap overflow" - fixed AI network internal loop between Battle_Ret and Battle_NBG - fixed "BotUpdateSound: client number out of range" due to multicast with "maxclients 256" - prevented repeating reply chats - tweaked several reachabilities - fixed bot picking up dropped weapons (keep repositioning movable items) - fixed shootable doors & secrets doors - added func_rotating_door to AAS - fixed under water elevators - adjusted bot aim and response time - added workaround for train.bsp entstring bug line 2906 "175\" - enabled evolution of the goal selection - fixed misplaced trains due to Rogue support - fixed failing goal selection on moving objects