Bot Of The Month Club
This month, Hamfon reintroduces us to an old favourite - Buildbot!
BuildBot is a general purpose building utility helper that provides an easy way to do
repetitive building, moving of builds, and backup chores. This month, we will discuss
two of the most used features - Object Seeding, and Propdump Backup/Building.
Hamfon & The Hambots
download BuildBot and also get more detailed help at
HamFon's home page. For questions, you can contact HamFon by
Email or in the ActiveWorlds universe.
BuildBot is a Bot that provides you with several Active Worlds 3-d virtual world
environment building capabilities. It builds VERY quickly (I was getting a
complete copy of AW Ground Zero, out 120 meters in all directions to build in an
empty world in 80 seconds - running BuildBot AND the world over my 33.6 modem!
That's about 64 objects per second!!).
NOTE - check with the world owner BEFORE you use BuildBot in their world -
some worlds do not allow the use of automated building tools.
ALSO - Do
NOT use BuildBot to copy other peoples work without their permission.
- BuildBot gives you the ability to create a "seed" object - that is, place an
object in a location in a world where there are no other objects to copy. This
feature is discussed in more detail, below.
- BuildBot allows you to do a repetitive build of an object which you could
use, for example, to cover ground or build a wall, or a mountain.
- BuildBot's most powerful feature is the ability to get a list of existing
objects in an area of your world, select which objects you want to "use", then
save them to a file, load from a file, move the objects, delete the objects, or
build a copy of the objects. This feature can be used to quickly duplicate a
complete structure in a different location (for example, "stores" in an on-line
mall). You can also use the save/load to/from file ability to "back-up" your
work - to save it to a propdump format file, and then restore your work if it
becomes "lost" or trashed. This feature is discussed in more detail, below.
- BuildBot also provides ObjectScanŽ technology. This lets you scan large
sections of a world (larger than 240x240 meter zones), and filter based on
citizen number or object name. The objects that match the filter are listed on
the screen, and can also be either saved to a file, or deleted. For example, you
might want to delete ALL your property from GZ to 100N 100W. Or if you delete an
object from your object server, you could scan for that object by model name,
and delete all occurances.
The BuildBot.zip distribution file is a WinZip created file that contains the
BuildBot program, and the buildbot.htm on-line documentation.
By default, BuildBot looks in it's current directory for propdump files, and saves them there.
- Go to HamFon's home page and download
BuildBot.zip to a temporary directory
- Create a Subdirectory for BuildBot (e.g., "/Program Files/BuildBot") on your machine
- Unzip buildbot.zip into this directory
- Open BuildBot.ini with WordPad or another text editor, and change the [citizen]
number= line to have your own citizen number in it. Also, change the password=
line to have your own privilege password (e.g., password=secret). Find the [Bot1]
section, and change world= to the world where you want the bot to start. Also,
change the NorthSouth= and WestEast= lines. NOTE - The NorthSouth and WestEast
values are in centimeters, and North and West are positive numbers, while
South and East are negative - so 12N is 12000, 1234E is -1234000.
- You can then run BuildBot.exe from Windows explorer (or create a shortcut)
When you first start BuildBot, you must log in to validate your identity and
Bot creation rights. BuildBot will pop up a dialog asking for a
PriviledgePassword for the citizen number that you specified in the buildbot.ini
configuration file. Note: the CitizenNumber you choose determines what rights
your Bot will have, and what citizen number will be used for the objects your
Bot builds. The default citizen number is specified in the .ini file. If you
specify the citizen number AND the password in the .ini file, the log in dialog
After logging in, BuildBot will wait for you to give it building commands. To
cause BuildBot to perform building duties for you, select an option from the Bot
Seed Object creates an object anywhere in a world for you.
Generally, in AW, when you need to create an object in a location where there
are no other objects to copy, you must find the closest one (which may be
thousands of meters away), and "push" the object to the location you want.
Seed Object allows you to directly place an object anywhere in the
world (assuming you have appropriate building rights). To "seed" an object,
select this menu item, then fill in the Object Model, and the coordinates, in
standard AW coordinates (10N, 12.3S, etc.), then click the Create Object
button to cause the object to be created in your world. The object that you
use can be any object in that world, but I'd recommend using a vertical object
such as a wall or a sign - it's easier to find from a distance, and it doesn't
get lost "in the ground" like a perfectly flat object (such as a street or walk) might.
Propdump/load provides a variety of building capabilities. It allows you to:
- Load a list of all objects from the world server, in a region of the world
- Filter this list (select objects) based on text contents of the Description, Action,
and Model fields
- Filter this list based on citizen number
- Filter this list based on NS and WE coordinate ranges and by altitude
- Save the "filtered" list to a file, in standard propdump format
- Load a previously saved list from a file
- Build all the filtered objects in the list, optionally at a different location
- Delete all the filtered objects in the list
(do these in order, each depends on the previous one):
Capturing objects in an existing built area
- Select Propdump/load from the Bot menu
- Enter NS (North/South) and WE (West/East) coordinates for the area in
your world where you would like to work with objects
- Click the Load from AW button to have BuildBot request a list
of ALL objects within that area. The listbox will be filled with a list of
objects, and the window title will display how many objects were found.
- If you wish to re-load the list, click the Clear button first,
since BuildBot does NOT check for duplicate objects in the listbox (you
may WANT to have duplicate objects there).
- Scroll up and down the list and you will see all the objects in that
area, sorted by object name, the citizen number of the owner, and their
coordinate location, and their description and action fields, if any. The
number in parentheses at the end of the line is used by BuildBot.
Filtering objects to narrow object list
- Examine the list of objects, and find a citizen number, and enter that
value in the Citizen Number filter field. Press ENTER or click the
Apply Filters button to refresh the list, filtering out all entries
for citizen numbers other than the one you specified.
- Next, enter a part of a model name, for example "wall". BuildBot will
filter out all entries except those that include the word "wall" in their
- If you enter more than one filter, BuildBot filters out all objects
that are blocked by each filter - only if an object matches ALL applied
filters, does the object show up in the list box.
- You may remove a filter by clearing that field, and clicking the
Apply Filters button.
- You may also filter for words contained in the action or description
fields. For example, if you are having trouble with a sound near your
property that you can not find, filter the action for "sound". BuildBot
will show you ONLY the objects that have "sound" as part of the action.
- To preload the Filters section with the information from one object,
click on the object in the list, then click the Object --> Filters
- To clear all the Filters, click the Clear button in the
- Filters are NOT case sensitive.
Saving selected objects to a file
- Look down the list of objects, and select one that is on a corner of
the rectangular build you have copied. The easiest way to do this is to
ADD a pole.rwx type of object on the exact corner - it's much easier to
line up and paste properties next to each other that way. If you have
selected an "origin" object, BuildBot will save your list of objects to a
file, with the coords of the "origin object" at 0N 0W - and all other
objects relative to that. Generally, you should save objects with the
origin specified if you EVER intend to move them to different coordinates,
but you should NOT specify an origin if you are saving the objects as a
"backup" and you require the exact original coordinates.
- Click on the Save button, enter a file name, and save. BuildBot
will append ".txt" to the end of your file name, unless you include ".txt"
yourself. If you haven't picked one, BuildBot will ask you if you want to
use an object as the "origin" (see above).
- NOTE: The objects are saved to the file in standard propdump format,
which is text readable, so you can edit or examine the file using any text
Loading a propdump-formatted file of objects
- Unless you intend to ADD objects to the list of objects in the
propdump window, Clear button to clear the list of objects.
- Click the Load button and select the file you just saved. If
you click on Load or Load from AW button, and you have any
objects still in the list, BuildBot will ask whether you want to clear the
list or not.
- BuildBot will give you the opportunity to provide coordinate
adjustments - for example, if you Saved the objects with a relative offset
to an object, then you might provide the coordinates for the new location
for the objects - the location where the objects will be duplicated.
Generally, however, it's best to NOT enter coordinates here - and to enter
them when you BUILD (below), instead. That way, you can enter the exact
build coordinates for each build, rather than adjusting the coordinates
- After loading or filtering a list of objects, to get only the objects
you wish to manipulate, click the Build button.
- To build objects with their original timestamp and owner, your Bot
must have Emminent Domain rights. Check the "Restore Owner" checkbox to
use this feature.
- BuildBot will ask for a coordinate adjustment, in case you want to
change the location of the objects. For example, if you started by loading
objects from the world server, then filtered until you had only the
objects of interest, then you wanted to duplicate the objects, but one
dekameter to the north, you would specify "1N" as the North/South
- BuildBot will then attempt to create new objects - one for each entry
in the listbox. If any build operation fails, BuildBot will display an
error code and allow you to cancel or continue. To determine what this
error code means, refer to the AW SDK .
- USE THIS CAREFULLY! DELETED OBJECTS, AS IN AW, ARE NOT RECOVERABLE
- To delete a block of objects, list them in the listbox, filter until
only the objects to be deleted are listed, then click the Delete
- BuildBot will then attempt to delete all the listed objects. If any
delete operation fails, BuildBot will stop deleting, and return an error
code. To determine what this error code means, refer to the AW SDK .
- Note that you can NOT delete objects from a propdump file - that is,
you can not save a list of objects to a file, and then later load that
list and use it to do deletions. The reason for this is that the standard
PropDump format file does not include the 'object number' which identifies
the object to the world. To delete objects, you must get the list of
objects while in BuildBot, and then delete immediately.
For more information, and details and examples of using the Repetitive Build and
ObjectScanŽ features of BuildBot, consult the on-line documentation (BuildBot.htm) that
comes with BuildBot.zip that you downloaded. Remember the rules for "nice" usage of
Have fun building!