Open Jedi Project Bots

$Revision$

Table of Contents:

General Information

Bot File (.jkb) Keywords

Keyword Purpose
accuracy Sets the number of degrees bot can aim off by. Lower value == better aim.  In addition, it is used for determining if the bot will lead the target or not.  Less than 8 == never not lead.
EmotionalAttachment Attachment (Loved Ones) Levels:
1 = Gets upset when loved one dies.
2 = Can't attack loved one in non-team gametypes.
hatelevel Determines the maximum revenge/hate level this bot can have when its loved ones die multiple times.  The higher the revenge level, the better accuracy this bot has against their revenge target.  However, this also sets the level at which the Hatred message is played for the death of loved ones.  IE, the higher the hatelevel, the angrier the bot gets when a player kills their loved ones.
Chat Messages
Died Chat message when the bot is killed by a non-loved one.
Hatred
Chat message when someone maxed out this bot's hatelevel by killing one of its loved ones.
Killed Chat message when the bot killed a player.
KilledHatedOne Chat message when the bot killed an enemy that you were seeking revenge on.
KilledOnPurposeByLove Chat message when the bot is killed by a loved one that doesn't love the bot enough to not attack the bot.
LovedOneKilledLovedOne  Chat message when one of the bot's loved ones was killed by another one of its loved ones.

TABBots

The TABBots system puts the "I" back into your bots' "AI" (or lack thereof).  It is a completely new set of scripts designed to make your bots act more intelligently and enables them to play siege games.    TABBots are designed to be portable and modulated. You can even have the TAB Bots in the same game as the original JKA bots.

Configuring Bot Files (.jkb)

TABBots use your existing bot files (.jkb), so there is no special configuration needed, just set up your bots as you would any others.  TABBots will spend skill points based on the force powers and weapons preferences you indicate in the bot file.  They will only spawn weapons/powers if they have enough skill points.  

Orders

To give a TABBots an order, chat the command's keywords to the bot.  This can be in any chat channel that the bot can hear.

Bot Order Keywords

Keywords Order Description
<BotName> attack Switch to Search/Destroy mode.
<BotName> attack <PlayerName> Attack specific player.

Waypoint Routing Maps

To route a map so that TABBots can use them, use the in-game waypoint editor like normal (with some exceptions).  TABBots will shortest route (or something close to that) to their desired destination.  As such, they don't simply follow the loops sequencially like the normal bots.  You can create multiple path branches that the TABBots will actually use. 

However to have the TABBots recognize that a sequencial number isn't on the same route as it's sequencial neighors, the waypoints must be a decent distance apart.  I beleive the current setting is that they have to be 100 ingame feet away from each other.  For example, let's say that waypoint 50 is the end of a path leading to the flag and waypoint 51 (the next one placed) starts a completely seperate route from a teleporter to a piece of ammo.  Waypoine 50 and waypoint 51 must be at least 100 feet away from each other for this to work right.

Finally, due to the code used to determine routing, it's very important that all waypoints can be reached  from the rest of waypoint grid.  Having unconnected waypoints/routes will result in pretty massive game slowdowns whenever the bot's target destination is closest to one of those points.

New TABBot Waypoint Flags

Flag Name Flag Key Description
WPFLAG_BLUEONLY (b) Only bots on the blue team will be able to use this waypoint
WPFLAG_DESTROY_FUNCBREAK (q) Before moving to this waypoint, destroy any local breakable objects.
WPFLAG_FORCEPULL (o) Before moving to this waypoint, Force Pull any local func_doors (buttons).
WPFLAG_FORCEPUSH (p) Before moving to this waypoint, Force Push any local func_doors (buttons).  This also makes bots attempt to press nearby buttons or hack doors.  If there's a hackable door but the bot can't hack it, he'll try to destroy the control panel if that's an option.
WPFLAG_REDONLY (r) Only bots on the red team will be able to use this waypoint.

Siege Objectives

TABbots will complete objectives in random order.  However, when certain objectives have to be completed in order (like destroying the valley door before capturing the crystals on Korriban), you will need to mark them as such in the .siege for that map.  Simply add the "DependsOn1 <whatever objective number must be completed first>" varible to those objectives. 

NOTE:
You only have to mark this on the objectives of the attacking team.  The objective pre-reqs for the defenders are assumed from the attacker information.  If there are more than one prereq for an objective, you can also use DependsOn2 thru DependsOn6.