| 
 | 
  | 
  
 Bot Of The Month Club
| 
 This article has been previously published; however with
the large number of new users, world owners and people who are interested in bots,
we are publishing it again, so that those new users can become
familiar with an exciting automation technology available in Active Worlds!  | 
  Hamfon & The Hambots
  | 
 
 
 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.  You can
download BuildBot and also get more detailed help at 
HamFon's  home page.  For questions, you can contact HamFon by
 Email  or in the Active Worlds universe. 
Introduction 
 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. 
Features
 
- 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 occurences. 
 
 
Installation 
 The BuildBot.zip distribution file is a WinZip created file that contains the 
BuildBot program, and the buildbot.htm on-line documentation.
 To install: 
 
- 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) 
 
 
By default, BuildBot looks in it's current directory for propdump files, and saves them there. 
 
General Usage 
 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 
Privilege Password for the citizen number that you specified in the buildbot.ini 
configuration file. Note: the Citizen number 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 
is skipped.  
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 
menu. 
Seed Object 
 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/Propload
 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 
 
 
Examples (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 
model name.
 
- NOTES:
 
 - 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 
 button.
 
 - To clear all the Filters, click the Clear button in the 
 Filters section.
 
 - 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 
editor. 
 
 
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 
twice. 
 
 
Building objects 
 
- 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 Eminent 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 
adjustment value.
 
- 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 . 
  
Deleting objects 
 
- 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 
button
 
- 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.
 
 
 More Information 
  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
building bots.  Have fun building! 
 
  |   |