Magsbot Class, Session 1
Saturday March 8, 2003 3pm VRT

Magine: well, we might as well start
Magine: everyone has the bot unzipped and all?
[Jer]: present and correct
WiLLiAmS348: yup
Magine: did anyone read the stuff about making a project folder?
DLP Anne: no i havent
Jernau: *looks at his feet*
WiLLiAmS348: can't say that I have
Magine: ok, well you can take a look at http://www.turtleflight.com/mbh/mh_update.htm  while i go thru it quickly
Magine: the idea is to make a separate folder for data files so when you upgrade the bot in the future,
Magine: you can just unzip the new version into the magsbot folder without overwriting your data that you have customized
Magine: so, create a separate folder somewhere handy,
Magine: and copy these files from the magsbot folder, into the new folder:  behavior.beh, buttons.btn, magsbot.ini, userdefs.udf
Magine: we'll call that the project folder
Magine: first things first, grace
Magine: after you copy those files, you want to make a shortcut in the project folder, by right-clicking and dragging mbot.exe from the magsbot folder into the project folder,
Magine: and when you let go of it, choose "create shortcut" from the menu that pops up
DLP Anne: got it :)
Jernau: done
Magine: will? you got that far?
Magine: yoo hoo, will, you there? :)
WiLLiAmS348: magsbot.ini not found.. that's the config file right?
Magine: right
Magine: well if you can't find that one don't worry, it will get created when you start up the bot the first time
Magine: as long as you have behavior.beh, buttons.btn and userdefs.udf
WiLLiAmS348: yup
Magine: will, you got those files copied?
WiLLiAmS348: yup
Jernau: (for a change)
Magine: ok, and did you make the shortcut?
WiLLiAmS348: yup, I'm ready :)
Magine: ok great. now right-click the shortcut and choose "properties"
Magine: ok.  so....you editing the shortcut?
Jernau: yes, properties
Magine: ok, you want to change the "Start in" path to your project folder
Magine: once you do that, click ok and you're all set :)
Jernau: done
WiLLiAmS348: done
Magine: ok, now you can just click the shortcut to start the bot.
Jernau: should i stop the bot i started when i got here ?
Magine: you will probably get a little error message about not finding varlist.var, but that's ok
Magine: up to you, jernau
Jernau: k
Magine: you can keep using the one you already started if you want, just realize that it's using the files in the magsbot folder,
Jernau: i started the new one anyway to be on the same page :)
Magine: but we won't be changing anything major today, so it doesn't matter yet
Magine: so, everyone up and running?
Jernau: y
WiLLiAmS348: yup
DLP Anne: getting there
Magine: normally the program starts a bot instance automatically, but i forgot to set that in the .ini file in the zip file,
DLP Anne: got her
Magine: so we can start up manually (which would be the next thing i'd want to tell you about anyway)
[Jer]: started
Magine: to start manually, use the menu... Connection/New Instance
Magine: just enter the name for the bot, your cit number and priv.password, and click Okay.
Magine: the port and address are already set for active worlds
WiLLiAmS348: I got a lot of error messages concerning buttons and actions
Magine: hmmm
Magine: when you started the program up?
WiLLiAmS348: after it asked me to enter my cit num and ppw
Magine: you clicked "Okay" and then got the errors?
WiLLiAmS348: yeah, maybe I did something wrong when copying the files?
Magine: could be :)
Magine: you want to shut it down and try again?
Magine: will, you need help?
DLP Anne: getting coffee brb
Magine: (to DLP Anne) ok
Magine: hm, maybe i will need to automate this procedure with the bot :)
DLP Anne: back
WiLLiAmS348: I'm just recopying files and making the shortcut again, you can continue if ya want
Jernau: yes, good idea for a first class
Magine: ok, well i want you to be able to follow what we're doing though, will
Magine: i guess you can just run it from the magsbot folder for now and i can help you set up the project folder later
DLP Anne: LOL we got a bot pileup
Magine: heheh
Jernau: :)
WiLLiAmS348: ok
Magine: just click mbot.exe in the magsbot folder if you want to run from there, then
Magine: we'll untangle the bots over there in a sec :)
DLP Anne: lol
Jernau: they may like it that way :)
Magine: true, they might :D
DLP Anne: i brought her in last night and tried to move her and like  always I was ignmored LOL
DLP Anne: er ignored
Magine: will, got the program running?
WiLLiAmS348: yes
Magine: when you do, click menu Connection/New Instance
Magine: there ya go :)
WiLLiAmS348: ok, now I'm ready :)
Magine: ok, now i'm going to jump ahead just a moment so we can get the bots untangled,
DLP Anne: k
Magine: and tell you about chat commands
Magine: or "remote control" as i call it in the help
Magine: first, you have to tell your bot who is boss :D
[Jer]: eek !
DLP Anne: lol Jer
Magine: so, in the magsbot program, press F5 to get the command window
Magine: and you want to type,
Magine: enlist control YourName
Magine: only put your name instead of YourName, of course :)
Magine: and click Ok
Magine: that command,"enlist control <name>" adds your name to a list in memory that tells the bot who to obey for chat commands
DLP Anne: on my magsbot window after her name si a long number that isnt my cit number is that ok
DLP Anne: ok
DLP Anne: ok
Jernau: k
[WiLLiAmS348]: kk
[Eve]: Miss Atitude here :)~
DLP Anne: lol
Magine: ok, so once you have entered your name in the control list, you can give chat commands. so try saying
Magine: <your bot's name> come
Magine: mags1 come
[Mags1]: Be right there.
DLP Anne: Eve come
Jernau: jer come
DLP Anne: hmmm
Magine: eve is being stubborn, huh? :D
WiLLiAmS348: WiLLiAmS348 com
Magine: hi byte :)
WiLLiAmS348: WiLLiAmS348 come
DLP Anne: Eve come
DLP Anne: wouldnt ya know mine is being hard headed lol
Magine: we're just getting started, byte...you already know how to start the program up and create an instance i'm sure :)
Magine: anne, you entered
Magine: enlist control DLP Anne
Magine: and clicked ok?
Magine: oh right
Magine: pardon me, my fault :)
DLP Anne: this is what i entered and hit ok    enlist control DLP Anne
Magine: if your name has a space in it, you need to use quotes
Magine: like this:
Magine: enlist control "DLP Anne"
Magine: or in byte's case, enlist control "Byte Me"
DLPAnne: lol it dont now
DLPAnne: eve come
DLPAnne: ha!
Byte Me: beta or release? :)
Jernau: :)
Magine: (to Byte Me) beta
Magine: there we go :)
Magine: there's a whole list of commands the bots will respond to. you can read about it at http://www.turtleflight.com/mbh/mh_quick.htm#control later on
Jernau: roll over ?
DLPAnne: lol
Magine: mags1 do turn 1800
[Mags1]: Your wish is my command!
DLPAnne: lol
Magine: lol :D
Jernau: jer fetch paper
Magine: with the "do" command you can use any command or command sequence in the magsbot language
Byte Me: what if you say "do NULL" ? ;)
DLPAnne: lol
Magine: mags1 do null
[Mags1]: Your wish is my command!
[Mags1]: Unknown Action: null««
Magine: try it
Jernau: jer do null
DLPAnne: lol i just want to get her behind me so I dont have to look at her face in mine
Magine: you can have the bot follow you
Magine: mags1 do follow
[Mags1]: Your wish is my command!
[Mags1]: Unknown Action: follow««
Magine: oops
Magine: no
Magine: that's just
Magine: mags1 follow
[Mags1]: After you...
DLPAnne: eve do follow
DLPAnne: didnt work said unknown action  lol duh me
Magine: the do isn't necessary because follow is a chat command t
Jernau: jer follow
DLPAnne: eve follow
WiLLiAmS348: Williams348 follow
DLPAnne: will they follow from world to world Magine?
Magine: no
DLPAnne: k
Magine: when you want them to stop dogging you,  say
Magine: mags1 stay
[Mags1]: Okay, staying put.
DLPAnne: eve stay
WiLLiAmS348: williams348 stay
DLPAnne: woof woof lol
Jernau: jer sit
Magine: lol
DLPAnne: lol
Jernau: oops
Jernau: jer stay
DLPAnne: might be something to think of in the future  where it follows from world to world
Magine: you can change it's name too
Magine: mags1 rename Maggy
[Mags1]: renamed myself to Maggy
Jernau: jer rename Fido
DLPAnne: eve rename eva
Magine: maggy do say hello
[Maggy]: Your wish is my command!
[Maggy]: hello
Jernau: fido do say woof!
WiLLiAmS348: williams348 rename will
[Fido]: woof
DLPAnne: eva do say hello
[eva]: hello
DLPAnne: lol @fido
DLPAnne: eva rename Eve
WiLLiAmS348: will do say hey
[will]: hey
Magine: now you can also get the bot to do these things using buttons on the actions tab instead
Magine: maggy do say "it's a nice day here, isn't it?"
[Maggy]: Your wish is my command!
[Maggy]: it's a nice day here, isn't it?
DLPAnne: brb
Magine: one of the general rules in the magsbot language is that you don't need to put quotes around text if it has no spaces or punctuation
DLPAnne: back
Magine: but you do need quotes if there are spaces or any non-alphabetic characters
Jernau: fidi do say "testing 1 2 3"
DLPAnne: lol
[Byte]: Rawr!
Magine: ok, before we get ahead of ourselves here playing with them,
DLPAnne: Eve do say "What a wonderful day in the neighbothood"
[Eve]: What a wonderful day in the neighbothood
Magine: let's look at some more things on  the program itself
Byte Me: Byte follow
Magine: if you want to chat using the bot, it's easier to use the chat window
[will]: -   )
[Eve]: yes my brother Cain has a blast in portal LOL
Magine: so if it's not already selected, you can click the "chat" tab
Magine: and type chat into the box there, then just hit return or click send
[Maggy]: i'm a chatter bot, i am
[Fido]: work work work and never a bone or a clean water dish !
[Maggy]: lol
[Eve]: LOL your owner is slack then Fido
[Fido]: *bites Jernau*
Magine: if you click the "nearby list" button on the chat tab, you can see who is around
Magine: and if you want to whisper to someone through the bot,
Magine: just select their name(s) on the nearby list, then chat normally
[Eve]: pssst did it work lol
DLPAnne: yup it worked lol
[Fido]: Woof !
Magine: maggy just whispered to all the humans here :D
[Eve]: lol the X1 is going to be replaced soon
Magine: everyone try a whisper thru the bot
DLPAnne: cool'
[Fido]: woof
Byte Me: sorry to ask, came in late... how do I get it to listen to me? :)
Magine: (to [Fido]) i heard that :)
DLPAnne: lol Fido
[will]: testing
Jernau: ok, so that works :)  nice
Magine: byte, to get the bot to obey you, press F5 and type
Magine: enlist control "Byte Me"
Magine: and click Ok
Magine: and btw everyone,
Byte Me: Byte follow
Byte Me: Byte eat small child
Byte Me: ;)
Magine: magsbot will save it's memory to a file when you shut it down,
Magine: so the control list will be saved
DLPAnne: cool
Magine: will,how you doing there? :)
Magine: you get the bot to whisper?
DLPAnne: lol he whispering top my bot
DLPAnne: to my*
Magine: another thing to notice, the text box on the chat window is a drop-down, it keeps a list of the most recent things the bot said,
Magine: so you can repeat things without haveing to retype them
[Fido]: eek !
[Maggy]: is that so, magine?
[Maggy]: is that so, magine?
[Maggy]:
[Byte]: RAWWR!!!1 *munch *munch*
[Maggy]: is that so, magine?
[Fido]: *bites Jernau*
[Fido]: *bites Jernau*
Byte Me: Byte eat small child
Byte Me: :P
[Eve]: LOL your owner is slack then Fido
[Byte]: RAWWR!!! *munch *munch*
[will]: ah was on the announce tab sorry, probably why no one could hear what I was saying ;)
Magine: note that the text in the chat box is blue when you are whispering
DLPAnne: hmm mine is still whispering lol
Magine: lol
Magine: the announce tab is similar, but it is for console message instead of chat
[Eve]: am I still whispering?
DLPAnne: cool i did that one all alone LOL
Magine: and you need to be a world caretaker to send console messages
Byte Me: Byte come
Byte Me: Byte quit
Magine: but if you have a world, you can use announce tab to send messages in color to the whole world, or individuals
DLPAnne: heheh can you assigne different colors to different peoples text?
Magine: no anne, sorry
DLPAnne: oh well  was a thought
DLPAnne: lol
Magine: you coudl work something out using console messages
Jernau: :)
DLPAnne: yeah   prolly
Magine: but it would take some programming on the behavior table, which is a few lessons from now :)
DLPAnne: ahh ok
Byte Me: GTG, sorry :(
Magine: now there is also a tab for "Telegrams", but
Magine: unfortunately no bot can send regular aw telegrams
Magine: magsbot uses the "botbone" telegram system that ima genius created and maintains
[will]: is there anywhere I can get a list of other people who have and use the botbone client?
Magine: you can get a bone ID free from ima, info is on his webpage... imabot.com
Jernau: is the bot bone client trans universal ?
[will]: yeah I'm signed up for it, just wish I knew who else was :)
WiLLiAmS348: will come
Magine: i don't know that there is a list, will.
DLPAnne: pssst will nice name for a girl lol
Magine: now the location tab allows you to (surprise!) move the bot around
Magine: take a look now
[will]: thanks anne ;)
Magine: will can change his bot's av on the location tab :)
Magine: now the coordinates shown on the location tab no doubt appear mysterious and confusing :D
Magine: because they are SDK coordinates
Magine: however,
Magine: you can enter or view the familiar AWB style coordinates by clicking the "AW coords" button
[will]: that's a good feature :)
Magine: but just FYI, how the SDK coords work is,
Magine: north and west are positive numbers and south and east are negative numbers
Magine: and the values are 1000x the AWB coordinates, but there are no decimal places
Magine: so 15n 775e becomes 15000 -775000
DLPAnne: right i just noticed
Magine: the "yaw" of course is the direction the bot is facing
Magine: the pitch and state are new things in awb 3.4, so i haven't had much experience with them myself yet
Jernau: (if we ever get it)  :)
Magine: i assume changing the pitch in a 3.4 world will make the bot tilt up and down
Magine: and i'm not sure what state does :D  but magsbot is ready to do it, if we ever get 3.4, lol
Magine: incidentally, when you use the AW coords button to set coords,
Jernau: beta browser build 4677678588494
Magine: you still need to click the "Set" button to have them take effect
Magine: as you see, you can also set the avatar on the location panel,
Magine: but using the chat command for that may be more convenient
Magine: if you say
Magine: maggy av
Magine: then the bot will assume the avatar of the speaker
Jernau: fido av
Magine: you can also say the av number, like
WiLLiAmS348: will av
Magine: maggy av 1
Magine: maggy av 27
WiLLiAmS348: will av 5
Jernau: fido av 3
DLPAnne: Eve your to ugly  no help for ya so stay that one lol
Jernau: :)
Magine: ok, you can all play around for a moment while i take a break, brb :)
DLPAnne: me too coffee
DLPAnne: back
Magine: me back too :)
Jernau: wb
DLPAnne: ty :)
DLPAnne: wb
[will]: wb
Magine: everyone back? say so when you are, i'll wait
DLPAnne: im here
Jernau: ummm, i have to cook dinner very soon, can someone log the rest or are we nearly done for today ?
DLPAnne: in avatar anyway lol brain is on vacation
Jernau: (8.20pm here)
Magine: i'm logging all classes and will post the url for them on m forum
Magine: this class session will be repeating monday at 10pm vrt, incidentally
Jernau: well i hate to run out on class but i'm getting evil looks from the significant other :)
DLPAnne: lol jernau have fun
Magine: :) see ya jernau
Magine: thanks for coming
Jernau: bye and thanks Magine, very informative, i'll be back for next lesson
Magine: see you then :)
Jernau: bye :)
DLPAnne: byeeee
Magine: ok, before we look at some more things the bot can do, let's take a look at some of the menus
DLPAnne: ok
Magine: under the file menu, an important item is "save configuration"
Magine: well CONFIGURATION actually, and "save configuration" is a sub item under that
Magine: that will save the name and location of the bot for the next time you run
Magine: also if "auto save configuration" is checked, then that will be saved when you quit the program
Magine: (i'm sure you could figure that out yourselves, but i'm calling your attention to it, heheh)
DLPAnne: ok
[will]: :)
DLPAnne: i have a question about that
Magine: yes?
DLPAnne: for instance i set her location  to my world here   right and then
DLPAnne: i move her to  your location here
DLPAnne: when I close will it save this location then
Magine: yes, if you have auto save checked
Magine: then it will save the location at close
DLPAnne: so when she logs in i have to reset her location to myu world
DLPAnne:  ahhh ok so unchecking it will not do that ok
Magine: if you don't want it to do that, and prefer to set it manually, then uncheck autosave, correct
DLPAnne: kk
Magine: another one to know about is under File/Variable List
Magine: you probably always want to keep "auto save variable list on close"
Magine: checked, that is
DLPAnne: ok its checked
Magine: that's the default, yeah
DLPAnne: most times I leave things on default till i know what im doing
DLPAnne: which is rare lol
Magine: heheh
Magine: you will also note the File/Logging menu
Magine: where you can turn chat and event logging on or off
DLPAnne: right
Magine: "events" in this case means messages in the log window other than chat
Magine: one more under the file menu i'll mention is "save full paths"
Magine: i like keeping it unchecked
DLPAnne: ok
[will]: k
Magine: if checked, when you save your buttons or behavior table, the whole path will be saved in the .ini file
Magine: but the problem with that is,
Magine: if you move your files to a new folder, the program will still be looking back in the old folder
Magine: actually mags used to always save full paths and it caused problems like that, i always had to go and edit the .ini manually when i moved files to another folder
Magine: so i made "save full paths"  optional
Magine: ok, now under the Options menu
DLPAnne: k
Magine: "behavior table active" .... if you uncheck that, the the bot won't do any of the stuff in the table, including chat commands, etc
Magine: so you usually always keep that checked :)
Magine: [with the behavior table turned off] basic functionity remains, but no chat commands, recording, survey buttons other than the survey dialog,
Magine: etc
Magine: all that stuff is in the standard behavior table (which we will talk about in detail in a later lesson)
Magine: iput it in there, since not every bot needs that stuff
Magine: so i didn't feel i needed to build it into the program itself
Magine: "track nearby avatars" tells the bot to keep track of the movements of nearby avs, because the location of an avatar is not always available through the SDK
Magine: (the SDK=software development kit that aw provides for bot makers, of course)
Magine: we'll get more into that when we talk about programming
DLPAnne: k
Magine: "handlers"... well let's skip by that for the moment, except i'll mention
Magine: that i've seen a bug sometimes if the program crashes,
Magine: the handlers might get turned off
Magine: in which case you'll see a whole mess of error message when you start the bot,
Magine: saying "handler not installed"
Magine: in which case you would open the handlers window here,
DLPAnne: kk  its supposed to be unchecked?
Magine: and make sure all the boxes are checked
Magine: no, checked!
DLPAnne: mine is unchecked lol
Magine: keep 'em all checked unless you really know what you are doing
DLPAnne: ohhh i seee what ya mean
Magine: yeah, there is a whole window of handler checkboxes
DLPAnne: i meant the word handlers  under options
Magine: right, go ahead an click Options/Handlers... to see what i mean, everyone
Magine: the reason i provided the ability to turn off handlers,
Magine: is that for some applications you might not need particular ones
Magine: and you can turn them off to cut down on traffic between the bot and the world server
Magine: but in most all cases, you would leave them on
Magine: "include tilt,roll in build" just turns on the newer (3.3? i don't recall what version started using that) 3d axis rotation stuff,
Magine: when building or surveying objects
DLPAnne: 3.3
Magine: you might as well keep it turned on unless you need to use an old propdump
DLPAnne: lol
Magine: propdumps are files containing info about objects in a world, just in case anyone doesn't already know that :D
DLPAnne: yup
DLPAnne: brb putting clothes in dryer i will scroll
Magine: "monitor bar visible" ...the monitor bar is that status bar thing at the bottom of the window
[will]: with the blue flashing light thingy
Magine: which i believe i have turned on by default, but if not then go ahead and turn it on
Magine: yeah
Magine: the blue blinky shows messages from the world server
Magine: and the yellow blinky shows when the bot is processing those messages
Magine: the red blinky is mostly for debugging :D
Magine: messages from the world server are "Events" and you can see how many are pending on the events bar
Magine: "actions" are magsbot commands. there is an "enqueue" command you can use to delay actions or perform them in parallel  (several at once),
Magine: and the actions bar shows how many of those are in the queue
DLPAnne: k
Magine: "verbose event reporting" is for debugging, you can leave that unchecked
BitMaster: Hi Magine. :)
Magine: hi bit :)
BitMaster: Long time no see.
DLPAnne: brb again
BitMaster: Hiya Anne. :)
BitMaster: Ok, I'm done..  Sorry for the interruption.
Magine: "mute log" is, well, to my shame i have not yet figured out how to keep the chat window from scrolling when it gets new messages in it,
Magine: so you can turn it off entirely using "mute log"
Magine: the window gets grayed so you know it is muted
Magine: next, under the Options/Connect are a lot of options for doing things automatically or not
Magine: "autoconnect" starts up a bot automatically when you begin the program,
Magine: "autoenter" automatically enters the world on the locations tab when you start a bot,
BitMaster: Would be good for a scheduled event.
Magine: "autoappear" automatically has the bot go to the coords on the location panel when it enters a world
Magine: "global mode", which requires the bot owner to be a world caretaker, allows the bot to hear chat and detect avs everywhere in a world,
Magine: instead of just nearby
DLPAnne: k
Magine: finally under options are a bunch of client/server options,
Magine: which i will kind of skip over except to explain
Magine: that magsbot can run as a tcp/ip server and accept messages from clients
Magine: or send messages to clients
DLPAnne: ok dont think i will needthat one lol  not now
Magine: it can also run as a tcp/ip client and connect to a server
Magine: the main use of all that right now, is with another program of mine, "aw scoreboard"
Magine: you can download that from my web page also
Magine: if you are running magsbot on one computer and want to see what it is doing on another computer,
Magine: you can run magsbot as a server and then connect to it with aw scoreboard as a client
Magine: and see the log window in awscoreboard
DLPAnne: oh ok
Magine: you can start or stop client or server mode on the Connection menu
BitMaster: Could be a nice crossworld thingy too..
Magine: yes it would
BitMaster: even Uni?
Magine: of course
BitMaster: cool
Magine: though there is the problem of firewalls and all that
WiLLiAmS348: 2pm (est), thanks so much for the lesson but I have to go. Next lesson I'll give myself more time for this
Magine: well, the officially scheduled class time is about over, yes
Magine: ok will, see you then :)
WiLLiAmS348: bye
DLPAnne: bye bye William
Magine: i'm surprised it took so long just to cover some basic things here :)
BitMaster: To many coffee breaks?
BitMaster: ;)
DLPAnne: lol
Magine: no, just a lot of stuff to cover
Magine: i don't want to move so fast that people can't mentally digest the info :)
BitMaster: You don't know how much work you've done until you go back over it piece by piece.
Magine: been building magsbot for 3 or 4 years, it's a lot of stuff alright
DLPAnne: thats a long time
Magine: ok, here's one more trick as class ends :D
Magine: maggy do deleteinstance @instance
[Maggy]: Your wish is my command!
Magine: heheh
DLPAnne: she left>
DLPAnne: ?
Magine: yep
Magine: she deleted herself :D
DLPAnne: lol
DLPAnne: hey Eve wanna be deleted?
[Eve]: Nooooooooo
Magine: lol
DLPAnne: lol
DLPAnne: Eve do deleteinstance @instance
Magine: well, from this class i'm thinking that i may have to split a few future sessions into two...
DLPAnne: I have learned alot from this one and I reall appreciate your time in trying to teach us
Magine: i'm glad to anne :)
BitMaster: I'm sorry if I interrupted ..
DLPAnne: you didnt
Magine: this was the easy stuff, i hope it goes as smoothly when we get to the programming part :D
Magine: bit, you were not disruptive :)
DLPAnne: lol yeah me ttoo
BitMaster: That's the part I would like to learn more of.
DLPAnne: yeah me too
BitMaster: The basics are pretty much.. ummm.. basic
Magine: bit, yeah, i just figured i should start at the very beginning
Magine: i figured people could skip the intro class if they already figured this part out