Download Game! Currently 86 players and visitors. Last logged in:SithorGemiinaArnoldiPolga

Library: BOT identification guide

Books

Author: Lum
Date:Apr 8 1998

Introduction

Botting is clearly defined as illegal, and people are often removed for this. 
In the past this has forced "Botters" to create new and better "bots", which
will of course be eventually discovered by wizzes, and those guilty of botting
will be removed.  This kind of structure has resulted in the formation of a
type of game (played by botters) in which shortsighted players create bots in
a competitive fashion.  The object of this destructive game is to have the
"Bot" that accumulates the longest playing time, or the most xp or game-money
before it is found and deleted by the ever-watchful arches.  It should be
noted that this game is detrimental to ordinary BAT players as these bots have
become quite developed and once established, often accumulate money and "xp"
in the game faster than evan a seasoned player.  This, in turn, contributes to
the ever frequent downgrades of all players -- since these bots affect the
balance of the game, by accumulating game-money and "sxp" faster than most
players do.  It also means that the game itself is very crowded with efficient
bots and that actual players must compete with these mechanizations, and often
be outdone by them.

It is therefore in the best interest of players to recognize or identify bots
so that they can report them to arches for removal.  Not only does this result
in a more playable game for actual players, but it can also earn the reporting
character task points and other things beneficial to play.

"DUMB-BOT"

This is the easiest type of bot for a botter to create, but it rarely survives
very long at all.  A bot of this type simply executes a preset set of commands
over and over again, once every "time cycle".  The commands are typically
killing some monster, getting some item, or such.  These bots are not very
prevelent on BAT and BAT does have safeguards in place that greatly hinder
them.  Things like eating, drinking, having to ask for resses, eventually
reincing, etc.

"TRIGGER-BOT"

This BOT is still relatively unsophisticated, but tends to pop up from time to
time.  A trigger-bot works off 'triggers' -- by monitoring output coming from
the game and acting on those with a set or rules.  This gives these bots a way
to survive longer by eating, drinking, even asking for a ress on their own. 
However, no trigger-bot will survive long on its own due to the unforseeable
situations which come up here.  Therefore, trigger-bots are mainly used as
"companions" for botters, like automated secondaries.  Most of these bots have
some simple low-level functionality, but will also listen to a "master"
character and execute any command given from him (in the form of tells).  The
best way to locate these "companion bots" is to suspect anyone that always
parties with and acts with the same people, and to look for characters that
only do something when another certain character (their master) is around. 
Also, if you can intercept people's tells and get tells like "kill ..." or
"break wall", ordinary MUD commands this is very suspicious behavior.  If
person A tells person B something, and person B does it w/o fail repeatedly,
then it is likely person B is really a companion bot for person A.

Another indicator is that trigger-bots tend to deal with things they can't
handle in a single way, or to just ignore them.  For instance, a typical
trigger-bot will ignore anyone (except its master) that it receives a tell
from.

"LOGIC-BOT"

The next type of bot is called a logic bot.  A logic bot is more complex than
a trigger bot but written in the same fashion.  Most logic bots are written in
a logic-oriented (theoretical and binary) computer language, rather than just
a client using triggers.  Originally, this was a common type, but it has
fallen into disfavor because it has certain problems and takes a long time to
create.  However, this method can be used to create such bots like "talkies"
that do nothing but talk to people or the like.  

The way to identify these bots is that while they react to "stimulus", it will
only be in a preset number of ways.  For instance, a typical logic bot's code
that handles tells might look like this:

(if (= (word line 2) "tells") ((set r (random 3)) (set p (word line 1)) (if (=
r 1) ((command (+ "tell " p "shut up!")) (command (+ "ignore " p)) ) (if (= r
2) (command (+ "tell " p " yeah, me too.")) (command (+ "tell " p " I don't
think so.")))) . . .

Unlike a trigger-bot, this will give three different canned responses to a
tell-er.  This can sometimes help it pass itself off as an actual character.
But, in most cases it will eventually ignore someone who is telling it, so
they will not discover it is just repeating canned responses.

Even though bots like "talkies" might seem harmless, they can lead to some
severe problems.  These problems mostly happen when one bot "interacts" with a
bot of a similar type.  For instance, take the example of two talkie-bots, A
and B.  and B.  Both these bots say "hi <name>" whenever anyone enters the
room, "bye <name>" whenever anyone leaves the room, and respond to a say with
"that's nice, <name>."  If A is an one room and B walks in, someting like this
will happen.

<church>
A enters.
B says "hi A"
A says "that's nice, B"
B says "that's nice, A"
A says "that's nice, B"
B says "that's nice, A"
...
Lum says "Stop it!"
A says "that's nice, B"
B says "that's nice, A"
(never ends)
... Info:  A removed for botting.
Info:  B removed for botting.
Lum says "dayatcha!"


"MEMORY-BOT"

A memory bot is a simple type of bot, typically a logic bot, with a "memory". 
The memory is used for both playing and personal interaction.  For instance,
a non-memory logic bot might give you the same tell twice, while a logic bot
with a memory could store what canned tell # it's given to each character so
that it never repeats the same canned tell more than once.  While this bot is
an improvement over the logic bot, it still cannot approach problems well. 
For instance, it cannot get into parties pre-emptively because it cannot
follow abstract instructions.  

So while this is the most advanced simple type of bot, it still cannot perform
well on BAT for reasons like this.  Hence, like the other simple bots it still
exists mostly as a "helper" bot to serve as a regular party member for botters
or to serve as a castle guard or the like.

A "memory bot" can often feign some level of intelligence by doing things like
remembering the names of people who attack it, and running away from them if
they appear.  Once again, the way to test for these bots is to look for any
character that responds to a certain circumstance with a one of a preset
number of responses.  For instance, they might instantly go linkdead or quit
if they are summoned, and they might respond to tells by picking a random word
from one of the past 3 tells you've told them and saying "I don't know
anything about <word>".

"JARGON-BOT"

This type of bot can often confuse players who aren't experienced at spotting
bots.  One of the majour problems with bots is that they cannot do important
things like get into parties.  A jargon bot is designed to be a standalone bot
that can pass for a player and uses this to do things like get into parties
with unsuspecting players, who think they are just partying with an actual
(non-bot) player.  

Partying is central to the typical jargon-bots processing, since partying
allows the bot to "piggyback" on other characters playing the game.  A typical
jargon bot will use the who and the who party commands to locate a party
around its level, and then ask to join.  Perhaps it will be summoned, or
perhaps it will be told "no", or perhaps it will be told to meet the party at
a certain location.  A jargon bot is always searching tells for key phrases
like "SC" (south crossing), "church" (the starting church in the game), and
"CS" (central square) and has some built-in logic on how to get to these
places.  This is why it is called a "jargon" bot, it understands a lot of the
game "jargon" or "terms" and acts accordingly.  Likewise, a jargon bot is able
to follow many abstract commands simply by scanning for key words in tells and
watching the party channel.  For instance, a jargon bot that is a
healer-character will search it tell it gets for "BOT", and if it receives
such a tell will try to cast "BOT" (blessing of tarmalen) on the teller.  

While a well-thought-out jargon bot may be able to pass for an actual player,
cautious players can often discover them by observing if they have any "commen
player sense".  For instance, many jargon bots follow commands
unquestioningly, without any foresight as to their consequences.  These type
of bots are often called "Simon says-bots", named after an old childhood game.

(church)
Lum enters the game.
A says "Hi there, Lum."
tell A blah zork feeple snorky SC phone alchemist zonni crimson brigade
you tell A (...)
A tells you sure, I'll be waiting at SC.
e;e;s;e;e;6 n
(central square)
l
(central square)
A
Amarth, the elven bardish archwizard
Lum
tell A frapple screen apple amarth baby doorknob kill blah
A kicks Amarth, causing small scratches.
Amarth shrugs.
A is dead, RIP.
A [ghost]: can I get a ress?
...
tell A come to CS you tell A 'come to CS'
A enters.
tell A kill amarth
you tell A 'kill amarth'
A punches Amarth, causing small scratches.
Amarth shrugs.
A is dead, RIP.
Amarth asks "what's going on here?"
say This 'A' character has to be a bot, I told him "kill amarth" twice and he
did it.
Amarth says "Hmm."
say try tell A come to SC.
say and tell A kill amarth.
A enters.
A kicks amarth, causing small scratches.
A is dead, RIP.
Amarth says "Bot's aren't tolerated here."
Info:  A removed for botting.


Jargon bots can become more effective by making good use of "memory".  But the
problem here is that a jargon bot will believe anything it hears, it doesn't
have a way of filtering the good from the bad.  For instance, if I ask a
jargon bot to come to SC, and it doesn't know where SC is, it might ask me for
directions to get there.  If I tell it the wrong directions, it won't realise
these directions are wrong even if it's obvious they are (ie. n;s;n;s;n;s from
church).

Another way to find out if a character is a jargon bot is to ask a simple but
oscure question like what country they are playing from, what kind of beer the
like, or what time it is over there.  If the character can't offer a few
simple real-life questions any other person could answer, like what kind of
computer he's using, it's likely a bot.


Books