home/news epidemic news archive bot/ai reviews bot guides interviews about epidemic send in bot news

UGO         

 - Home/News
 - News Archive
 - What Is A Bot?
 - Reviews
 - Guides
 - Interviews
 - BotBoard
 - FTP Server
 - Hosting
 - FAQ
 - About
 - Links
 - Console Games
 - Daikatana
 - Doom
 - Duke Nukem 3D
 - Grand Theft Auto
 - Half-Life
 - Hexen II
 - Jedi Knight
 - Kingpin
 - Quake
 - Quake II
 - Quake 3: Arena
 - Sin
 - Soldier Of Fortune
 - TeamFortress II
 - Tribes
 - Tribes II
 - Unreal
 - Unreal Tournament
 - BlitzBot
 - BoC-Bot
 - Bot AID
 - CGF
 - ClockBot
 - CGF: Resource
 - CS-BotPack
 - Fist Fight
 - FMODS
 - FreedomBot
 - FrikBot
 - FWD
 - Gladiator Bot
 - Hellfire Arena
 - JoeBot
 - Neuralbot
 - Oni Bot
 - Parabot
 - PLBot
 - PODBot
 - Project 414n
 - Q2RFD
 - Rocket CrowBot
 Telenation

 Action
 - DoomWorld
 - Duke4.com
 - Jedi Nights
 - Ritualistic
 - Rust
 - TeleFragged
 - Unrealism
 - Volition Watch

 Alternative
 - LinuxGames
 - QERadiant.com

 Console
 - PS2Faction
 - RetroFaction
 - XBoxFaction

 Role-Playing
 - AOForge
 - DiabloForge

 Services
 - 3D Cheaters
 - 3D Downloads
 - 3D Finger
 - 3D Forums
 - 3D Shots

 Sports
 - Sports Gaming

 Strategy
 - Relic News
 - Strategy Gaming

Jumbot Guide

Stuff required for this guide:

Contents:

Jumbot: Getting Started
Installing the Jumbot should be pretty easy, just unzip it into your Half-Life directory. Then open the Run dialog in Windows 95/98/NT (I assume it is in NT anyway) and click Browse.. Find your Half-Life directory and the file named hl (it has a little red logo). This is the main Half-Life executable. Once you have that selected the command line in the run dialog should look something similar to:

C:\SIERRA\Half-Life\hl.exe
Except of course the patch to your hl.exe (and the Half-Life directory) may be different. Next we need to tell the game to load up the Jumbot code (held inside a .dll file) instead of the standard Half-Life code. To do this we insert -game Jumbot after the current command line, as shown below:
C:\SIERRA\Half-Life\hl.exe -game Jumbot
This way of loading mods will be familiar to Quake users (Half-Life uses an enhanced Quake engine) but Quake II users need to take note, you use a - not a + in front of the command.

Now just click OK to run Half-Life with this setting. Half-Life should then load up and you'll be presented with its main screen (as the Jumbot doesn't use any custom graphics the main screen and menus of Half-Life are still the same). To immediately get a game of Jumbots going you need to head to the Multiplayer menu. From there pick LAN Game, and then Create Game. At the Create Game screen you will be presented with a couple of options and a maplist. Unfortunately Half-Life will only print the names of maps that are installed into the current mod's directory. This means that, with the Jumbot anyway, there won't be any maps to select.

This is no problem however, because the original Half-Life maps are still there (and accesible), they just aren't displayed on the list. So just start the game (click on OK). Half-Life will drop to its console mode and start the procedure to run the specified map but as you couldn't select one it tries to load a non-existent map. Once it has reported that it cannot load this map, all you have to do to actually load a map is to type in at the console map mapname, where mapname is the name of the map you want (stalkyard is a good starting point).

After you have loaded a map you should be spawned somewhere in it. Now you need some bots. Bring down the Half-Life console (usually the ~ [tilde] key) and type in addbot. And that's it, barring any problems, there should now be a Jumbot (or more if you used addbot more than once) in the game.

Configuring Your Jumbots
Two aspects of the Jumbot are configurable. The first is its name and appearance, the details of which are contained in a config file (*.cfg), the standard being bots.cfg. Half-Life will read from this file (or another file you specify instead of it) when spawning bots, and will spawn the individual bots with the respective individual details. Each entry for a bot is made up as follows:

<bot number> <bot name> <bot model> <bot shirt colour> <bot trouser colour> (All on one line)
An example entry:
bot1 hide gordon 30 6
In this case the bot is number 1 (so it is first in the list, and will be the first bot spawned), is named 'hide' and uses the standard 'gordon' model. The final two numbers don't always relate to shirt and trouser colour as the skins of some Half-Life models (such as the G-Man or Commando) have only small areas that can be influenced by this.

As many entries can be added to a Jumbot configuration files as you want, although they will always be spawned in the order that they are entered. Once you have created a new bot configuration file save it into the Jumbot directory, remembering to make it a .cfg file.

The other aspect of the bot that can be configured is the sayings it uses when botchat is set to 1. Normally Half-Life reads from the file named botchat.cfg, which is in the Jumbot directory.

The file is split into two parts, the first (under the heading "*Bot says these lines after killing.") lists sayings that the bot might say after killing a player/bot. The second line (under the heading "*Bot says these lines after being killed.") are sayings that the bot might say after being killed by another player/bot. Each list can have 30 entries, totalling 60 in the whole file.

One final point regarding chat files is the option to use a string command (in this case %s) inside a chat line. When the bot uses a chat line with %s in it the %s will be replaced with the relevant player (ie the player that has just killed or been killed by the bot).

There is one final procedure that has to be completed before you can use new bot and chat configuration files with the Jumbot. The file Jumbot.cfg contains several options that the bot uses on startup. Two of these determine which files the bot uses for bot details and chat lines respectively. Change these to the name of your new files should you want, and the next time you run the bot it should be using the files you have specified.

Running the Three Gamemodes (DM, Teamplay and Co-Operative)
Running a DeathMatch game has already been explained above, but here it is again quickly. Once Half-Life is loaded go to the Multiplayer menu, select LAN Game then choose Create Game. Once in the console (unless you specified a map to launch in the LAN Game menu) type in map mapname (where mapname is the map of your choice) and that map should load. Then just bring down the console again (~ [tilde key]) and type addbot to add single bots or bot_num x to load x number of bots.

Teamplay is similarily straightforward and follows the same procedure as launching a DM game, except that you will need to go into Advanced Options in the LAN Game menu and switch on teamplay (and set the teams available). Now when bots are added they will join teams relative to their model (so all bots using the 'gordon' model will be on the same team). You may to create a specific bot configuration file to use when playing teamplay, where you have an even set of bots defined for two teams which should make getting an even-sided game a bit easier.

The final gamemode available is Co-Operative. In this the idea is that several players play through single-player maps trying to complete the game together. However Half-Life's Co-Op support was never completely finished so it is rather buggy. It is recommended by TheFatal that you only play on maps that exist on their own, rather than maps that form part of a sequence.

To play Co-Op, start a normal DM game and then bring down the console and type the following (pressing 'enter'/'return' after each):

disconnect
deathmatch 1
coop 1
sv_cheats 1
map mapname
Once in the map (it'll need to be a single-player map of course) just add a bot in and it should move around with you. There are a couple of variables available in Co-Op to change how the bot behaves regarding scientists; these variables, coop_scikill and coop_killmeth, are explained in the Jumbot Console Commands section of this guide.

Creating Jumbot Waypoint Files
To run properly on a map the Jumbot needs a waypoint file for the map (.jrf file). You have to create the set of waypoints manually and then save them to a file, although it is not very hard at all.

To begin creating a waypoint file load up a map of your choice (which doesn't already have a .jrf file for it) and make sure you don't have any bots in the game. The waypoints appear as crossbow bolts (there will be one where you have spawned) and they should be placed manually as you walk round the map. However the automatic waypoint system isn't that great yet so you will often need to place waypoints manually (using the makewp command, which it is best to bind to a key). TheFatal offers these tips on waypoint file creation:

  • Always make sure each waypoint is visible from the previous waypoint and the next waypoint.
  • Make sure you stay crouched while placing waypoints in areas that require the player to crouch to avoid certain obstacles.
  • Try not to go off any ledges that you can't climb back up.
  • Try to place a waypoint close to each side of a door.
  • Place waypoints close to buttons that need to be used, so the bots will know to use them.
  • Place waypoints close to health/HEV suit rechargers if you want the bots to use them.
  • Don't get killed.
Together with that sound advice I always like to place waypoints on items which I would specifically get (so I will always place a waypoint on any weapon).

When creating the waypoint files try to keep to straight lines between each individual waypoint files, especially if you are moving across a wide space. Moving all over the area means when the bot comes to use the waypoints it will zig-zag around which doesn't look very good at all.

It is important to cover all of the map and not leave any spaces round corners (so place a waypoint in the centre of a corner) as the bots are quite easily confused. Currently there is no facility to remove specific waypoints so you need to get it right pretty much the first time or you'll have to start from scratch again.

Once you feel you've placed a sufficient number of waypoints in a map, use the writewpfile command from the console and then reload the level. Now add some bots and see how successful you were!

Jumbot Command & CVar List
Up first is the list of all the commands that are Jumbot specific in Half-Life. All of these should be entered at the console (or entered via a .cfg file).

Console Commands:

addbot Adds the next bot from the bot configuration file.
makewp Places a waypoint (in the from of a floating crossbow bolt)
removebot Removes the most recently spawned bot.
writewpfile Saves all the current waypoints to a file named 'mapname.jrf'.

Console Variables:

Now the Console Variables, which are again entered via the console or from a .cfg file.
b_bottomcolor If spawning bots with nobotcfg set to 0 this will set the trouser colour of the next bot.
b_model If spawning bots with nobotcfg set to 0 this will set the model used by the next bot.
b_name If spawning bots with nobotcfg set to 0 this will set the name used by the next bot.
b_topcolor If spawning bots with nobotcfg set to 0 this will set the shirt colour used by the next bot.
botaccuracy X (value between 0 & 160) Sets the global accuracy of the bots from 0 (extremely accurate) to 160 (extremely inaccurate)
bot_ai If set to 0 it will disable Jumbots completely. [Default: 1]
bot_crowbar If set to 1 the bots will use the Crowbar only. [Default: 0]
bot_num X Spawns X number of bots into the game.
bot_thinkspeed Can be a value between 0 and 1 that sets the thinking speed of the bots, meaning a larger value gives faster reaction times and can slightly affect accuracy. Offers a little speed boost. [Default: 0.1]
botcfgfile filename.cfg Specifies the file to read off to get bot configuration information. [Default: bots.cfg]
botchat When set to 1 the bots will use the chat system, 0 turns it off. [Default: 0]
botfov Sets the field of vision the bot uses. Works just like the player's fov cvar. [Default: 90]
bothearing When set to 0 the bot will not be able to acquire targets through sound and will only be able to use 'vision'. [Default: 1]
botmsec Changes the update speed (in milliseconds) of the bot physics. [Default: 75]
botpain When set to 0 the bot will not use pain indicators to locate the direction of its attacker. [Default: 1]
botspeed Use this command to increase (by using +6 etc) or decrease (-6 etc) the running speed of the bot.
botusefov When set to 1 the bot will only be able to 'see' in the field of vision specified by botfov. When set to 0 the bot can 'see' in all directions. [Default: 1]
chatfile chatfilename.cfg Sets the file used by the bot to draw its chat strings from. [Default: botchat.cfg]
chatfreq_died Sets how often a bot will speak a chat line when it dies. Value between 0.1 (almost never speaks) to 10 (talks everytime).
chatfreq_killed Similar to chatfreq_died but set how often the bot will speak after killing something. Value between 0.1 (almost never speaks) to 10 (talks everytime).
chatfreq_killed Similar to chatfreq_died but set how often the bot will speak after killing something. Value between 0.1 (almost never speaks) to 10 (talks everytime).
coop_scikill If set to 1 bots will kill scientists and security guards using scripted sequences (see coop_killmeth), if set to 2 they will just kill scientists etc as normal targets and if set to 0 they won't kill them. [Default: 1]
coop_killmeth Selects the scripted sequence a bot will use when killing scientists and security guards. Range of 1 - 5, relating to the following:
  • 0 - Random murder.
  • 1 - Crouch down, shoot upwards in face with shotgun.
  • 2 - Back away, shoot in neck or skull with crossbow.
  • 3 - Run up to and shoot directly into stomach with magnum.
  • 4 - Rapid fire directly into stomach with glock.
  • 5 - Crouch down and shoot upwards in skull with magnum.
nobotcfg When set to 1 the bot configuration file will not be used and the bot spawned will have the properties set by b_bottomcolor, b_model, b_name and b_topcolor. [Default: 0]
nostartexec If set to 1 the Jumbot.cfg will not be exec'd on start up. [Default: 0]
speedup When set to 1 it dispenses with some of the more higher level procedures used by the bots when navigating and provides a large speed boost (especially with a lot of bots). Navigational performance will drop a bit. [Default: 0]
wp_autoplace When set to 1 waypoints will automatically be placed as you move round a level that doesn't have a .jrf file. Set it to 0 to stop it. [Default: 1]

Quick Jumbot FAQ

None of the Jumbot commands work, did I do something wrong?
The key here is to check that you have actually loaded Half-Life so that is running the Jumbot mod. If you are getting no response from commands relating to the Jumbot (eg addbot doesn't work at all) then you haven't loaded H-L correctly. Either amend your Half-Life command line to include -game Jumbot or go to the Custom Game section in the Half-Life menu, click on the Jumbot entry and then on Activate. If that still doesn't work then you probably don't have the latest Half-Life patch installed or haven't installed the bot properly.

The bots are running very slowly, is there anyway I can speed them up?
Set speedup to 1. This will degrade the navigation of the bot slightly but provide an excellent speed boost. Also try increasing the thinking speed (botthinkspeed) of the bots as this is meant to give a slight boost.

I've tried the above and it's still quite slow in big battles, will anything else help? Yes, this is probably due to Half-Life itself slowing down your PC as all the data from a large fight is processed (things such as blood splatters, ejecting shells etc). There are several Half-Life tweaking guides which, while they are meant for online play, offer tips on how to speed up Half-Life generally. The guide at Tweak3D is good, but there are several others so look around if you really want to tweak the game.

Do bear in mind that this is an early version of the bot and so it is naturally slow (as newer versions are made available they should be faster) so don't expect it to run as fast as established Quake or Quake II bots.

I've made some waypoint files and the bots always seem to move erratically across large areas
Moving in straight lines while making waypoint files should provide less erratic navigation.

Bots seem to get stuck in my custom waypoint files...
In this case the bot cannot find another waypoint to move on or it is trying to get to an unreachable waypoint; make sure all waypoints are visible to the next and previous ones and that you haven't set a path to something that is unreachable to the bot.

Half-Life crashes/something goes wrong when I do this or that, is it a bug?
There are some situations where odd things might happen that aren't bugs (such as bad bot navigation when using a poorly created waypoint file) but if you get a regular crash from doing something (or something the bots do) then report it to TheFatal at thefatal@telefragged.com. Include the following in your e-mail:

  • Details of the bug (what actually happens)
  • Where it happened
  • What you (and the bots) were doing
  • Whether you are able to recreate the bug (and details on how to if you are)
  • Information about your system (processor speed, RAM etc).
That pretty much concludes the Jumbot guide. If you need further help don't hesitate to contact me at cube@botepidemic.com.

cube


ze0 - Webmaster
theFragile - News / Content
Def - Content
celtic88 - News
Send in News

All content © Copyright Bot Epidemic 1999. All Rights Reserved. Site design by Dominic Rutter. Hosted by TeleFragged.