Site hosted by Angelfire.com: Build your free website today!
FURRE! Your Furcadian Network
---
- home / help / bots / ZMud
Events
Help
Literature
Art
Archives
Forums
Guilds
Feedback
Roleplay
Contact
advanced search
Furre!
|- Software
|- Patches
'- Dreams

ZMud Bot Tutorial - By Gental Soul
Before you begin, download ZMud from http://www.zuggsoft.com/

If you don't understand something at first glance, please fool around with it before immediately sending in a question. Perhaps you need to make it case-sensitive/non-case-sensitive or whatever. I can't answer all of the questions that have been coming in lately. Some of them are vague, some require me to go in to way too much detail, and some look like they're written in a foreign language.

For example: You say you tried this sample trigger and it didn't work. Well, great. It works for me so you must be doing something wrong. BE SPECIFIC. What exactly did you put in the command/pattern boxes? Is it case sensitive? Are you using different special characters than were in the original zMUD settings file? I need to know these things, or I could just type up a list of about 1,000 things that you might be doing wrong and send it out with every letter I get saying, "This sample trigger doesn't work. What am I doing wrong?" If you feel like you're so screwed over and you can't get any sample trigger on this page to work for you, I'm putting my novelty bot on the web for your downloading pleasure. It has almost any trigger you could imagine on it: accounts, random numbers, and a few other failed experiments.

Contents:

These appear to be links, but are not. Everything falls in chronological order of this tabel of contents.

Getting started (Information for the beginning botmaker)
Creating an alt
Connecting a bot to Furcadia
Sex/Species/Markings guide
Basic Commands
Tips for beginners
From other sources

Other commands
Looking at furres
Emitting, ejecting, looking, and all that jazz

Triggers and Wildcard Characters

Dreams
Entering dreams
Uploading dreams

Tricks of the trade
Signs
Other Tips
Special characters
Separator characters

Contacting Gental Soul

--------------------------------------------------------------------------------

Getting Started

Creating an alt:
In your Furcadia directory, there's a file called Furcadia.ini. Find it, and rename it, or create a new Furcadia directory without the ini file. Once you have done this, run Furcadia. You will be asked to create a new character, the character to be botted. Once you have created the character, logged it into Furcadia, and gotten the 'Welcome to Furcadia' message, close Furcadia. Rename the new Furcadia.ini file to alt.ini, and change the old one back to Furcadia.ini. You now have an alt file.

Connecting a bot to Furcadia:
Run zMUD. Go to the connection wizard. Now, by some strange unspoken law, I can't state the Furcadia address/port on this website, so I'll tell you the easiest way to find them. Run an MSDOS prompt, and go to the c:\windows\ directory. Type 'netstat.' You will be given a list of all open connections. Close all connections except for one Furcadia window and run it. Ta-dah! the Furcadia IP address/port! Feed these to the connection wizard, and connect. The welcome screen message will be printed, along with a bit of jumble and 'dragonroar.' Now, open the alt.ini file. Go back to zMUD and type 'connect name|of|alt password' in the text entry field. **Furcadian names really use |'s instead of spaces. For example, Rat Man would be Rat|Man, Sun Child would be Sun|Child. Next, the server requests the color code of the connected furre. Go back to the alt.ini file and look for 'color=COLORCODE' Copy the colorcode, which is ten characters long. Three additional characters are added to the end of the colorcode to verify the species/sex/markings. The colorcode is submitted to the server in the form of 'color COLORCODE???'

Sex/Species/Markings characters:
11th character - Gender [Space] = Female ! = Male.
12th character - Species [Space] = Rodent ! = Equine [quotation mark] = Feline # = Canine $ = Musteline.
13th character - Markings [Space] = Plain ! = Stripes."

To give your bot a description, type 'desc Hi, I'm a bot!" You have now successfully connected to Furcadia through an alternate client! Now, what do you do?

Basic Commands:
m 7, m 3, m 1, m 9- These move the bot one space in the direction that the keypad key usually moves a furre.
<,>- Rotate the bot.
gostart- pretty self-explanatory.
who- Lists users.
get- get/drop
"Hi there!- The bot says "Hi there!"
:kills its creator- The bot will kill you.
wh Gental|Soul I love you- The bot will whisper "I love you" to me.

Tips for beginners:
**VERY HELPFUL TIP** Assign all basic movement commands to macro keys. Hit ctrl+k to edit a macro key.
**Another VERY HELPFUL TIP** Assign the login commands to macro keys.

*********

From other sources:

A manual on how to make zMUD bots by Xaa:

How to make a Bot:
Step 1) Create an alt who will be turned into a bot. If you do not know how to make an alt, give up on making a bot RIGHT NOW.

Step 2) Start Zmud. At the regular start-up pop-up box, choose 'Connect to one of my Characters in the database' Fill in the info boxes as follows: ID: Furcadia Title: BOT Host: furcadia.mpath.com Port: 8000 Addr: 204.242.182.20 Character: (Your BOT's name here) Password: (BOT's password) Comments: (whatever you want...)

Step 3) Click the offline button at the bottom of the box. Your BOT is created, but but you are NOT ready to connect yet.

Step 4) Create the Login trigger. If you don't know how to create triggers, give up on making a bot RIGHT NOW. Connect Trigger: Class: Login Pattern: press any key to continue Command: connect NAME PASSWORD;desc DESCRIPTION;color !!!!!!!!!!!!! Under the 'Options' tab: Trigger Type: Pattern When loaded: enable Trigger on: newline Other Options: Replace the !!!!!!!!!!!!! with your desired colors, species and gender codes. For the colors, copy and paste the colors code on your bot's .ini file. Remember that if any of the symbols you are using is used by Zmud (like @, for example), you will have to precede it with the ~ (tilde) character. The last three characters of the 'colors' code are species, gender, and markings. Here are the correct codes: 11th character - Gender [Space] = Female ! = Male. 12th character - Species [Space] = Rodent ! = Equine [quotation mark] = Feline # = Canine $ = Musteline. 13th character - Markings [Space] = Plain ! = Stripes.

Step 5) Click connect, login to furcadia, move your bot to allegria island FAR away from other people, and begin working on your other triggers. If you can't figure out how to move your bot to allegria, give up on making a bot RIGHT NOW." Basic Bot Commands: Bots must send the same information to the server as the Furc client. Here are the basic client commands: m 1=step SW. m 3=step SE. m 7=step NW. m 9=step NE. <=rotate counter-clockwise. >=rotate clockwise. [quotation mark]message=speak message. -message=yell message. wh NAME message=whisper NAME message. :message=emote message. get=ctrl-g. use=ctrl-U. who=ctrl-W. quit=ctrl-X." Making a bot enter a dream: Dream Entry Trigger: Class: DreamEntry Pattern: ^]marco (*)$ Command: polo 04~;; Under the 'Options' tab: Trigger Type: Pattern When loaded: enable Trigger on: newline Other Options: "

--------------------------------------------------------------------------------

Other Commands

Looking at another furre:
Look at a furre by typing:
l(2 spaces)(3coodinate characters)
The coordinate characters tell the client the location of the furre. These appear what I like to call a 'visual string.'
<-#$,%<<4*<(> I
<-Tells the Furcadia client to receive a visual string.
Red- Furre colors
Purple- coordinates (use these characters when looking at a furre)
Yellow- Pose (sitting, standing, etc.)
So to look at this furre type:
l(space)(space)<(>

Using the emit, eject, and look commands:
These commands must be preceded with ". The Furcadia client tells the server that these commands are spoken, so any other client must also tell the server that.

--------------------------------------------------------------------------------

Triggers and Wildcard Characters in zMUD

The following are the most common wildcard characters used in zMUD bot programming. For a more complete listing of wildcard characters and strings check the zMUD help file.
Deep Blue II will be playing the sample bot.

* - match anything- ANYTHING can take the pace of a *. If nothing fills the space the trigger won't be recognized.
EX:
Pattern {(}*: Hello, Deep Blue.
Command: "Hello!
Deep Blue will "Hello!" when anyone says hello to her.

( and )- Save the enclosed text as saved string %1-%9.
EX:
(*) will save any characters in the parenthesis.
so...
Pattern: {(} (*): Hello Deep Blue.
Command: "Hello %1 :)
Deep Blue will say hello to whoever said hello to her.
( Mandy: Hello Deep Blue.
"Hello Mandy :)
( Deep|Blue|II: Hello Mandy :)
If you need to be more specific as to what type of characters to save, check the help file for a list of wildcard strings.

{ and } - these nullify any wildcard characters within.
Lets look at the story of the brothers Egor and Eric.
Egor, the dumb botmaker, never put {}'s around ('s that indicate a speech/action string. So whenever his bot responded to hello's, his responses came out like this:
( Mandy: Hello, Egor's dumb bot.
"Hello ( Mandy :)
Poor Egor. Eric, his wiser brother, always put {}'s around the ('s that indicate a speech/action string. His bot responded like this:
"Hello Mandy :)
In plain English YOUR PATTERNS SHOULD NEVER LOOK LIKE THIS:
((*): Hello insertbotnamehere.
^This inside parenthesis would be added into the response. Always cancel any wildcard characters that appear in Furcadia strings with { and }

The {*|*|*} pattern: Text can match any of the specified strings. EX:
{Hello Deep Blue.| Hiyas Deep Blue. |Heyas Deep Blue.}
Deep Blue will respond to any of ^those^
Pattern: {(}(*): {Hello Deep Blue| Hiyas Deep Blue. |Heyas Deep Blue.}
Command: "Hello %1 :)
will make Deep Blue respond to:
(Mandy: Hello Deep Blue.
(Mandy: Hiyas Deep Blue.
(Mandy: Heyas Deep Blue.
with:
"Hello Mandy :)

--------------------------------------------------------------------------------

Dreams

To enter a dream:
A sample trigger:

Class: load
Pattern: marco 01
Command: polo 04~%1

This command was made back when polo 04 still worked. Coincidentally, the command to enter a dream now is 'polo 04%1' so you'll have to use the quote character(~) before the % to make sure it doesn't look for a saved string. Or you could change the parameter character from % to something like ÿ. See the Other Tips section.
If all else fails use this DS to "botproof" your dream:

(0:1) Whenever somebody moves,
(1:19) and they (moved from/are standing at) position (0,0),
(5:15) move the furre to (start space), or to someplace nearby if it's occupied.

Uploading dreams:
Xaa: It can be done, but not with Zmud. The amount of data transferred exceeds what Zmud can possibly handle by several orders of magnitude. In addition, I don't recommend anyone try it unless they are an EXCELLENT programmer in C++ or VB and KNOW what they are doing with bots. Yes, I *do* know how to make bots upload dreams. Yes, I even know how to make Zmud bots upload SMALL dreams. No, I'm not going to share it. If I did, the next thing I know there's be a bot sitting on allegria doing nothing but uploading dreams and blocking everyone off just because someone decided to be a jackass.

Rikudim: I don't recommend anyone trying it. To upload a dream, you enter a process called 'handshaking,' then, you have to match every bit of data that the client sends to the server when uploading a dream *exactly* before closing the 'handshake.' Otherwise you will either upload a jumbled mess, or crash the server. If you can do it, good for you, if you can't, don't ask.

Gental Soul: I say you are playing with fire if you don't have the right tools. The handshaking process is very tricky and only few have perfected it to an art. Please do not mess with what you do not know or understand. IT could cause trouble for more then just you.

--------------------------------------------------------------------------------

Tricks of the Trade

Signs:

Xaa: Getting the bot to read signs: First, set up the DS in your dream so that when people bump a sign, the dream produces a sound heard by everyone. Next, go to your dream and set off that trigger, looking at the bot's screen to see what the sound looks like. It will be in the following format: 0 AAA BBB C, where AAA is the location of the furre that bumped the sign, BBB is the location of the sign, and C is the sound code."

Next, set up a two triggers: Class: Sign1 Pattern: 0 (*) BBB C Command: #T- Sign1; #T+ Listen1; l%1; Under the 'Options' tab: Trigger Type: Pattern When loaded: enable Trigger on: newline Other Options: "

Class: Listen1 Pattern: ^~(~(You see (*).~)$ Command: #T- Listen1; #T+ Sign1; wh %1 ; Under the 'Options' tab: Trigger Type: Pattern When loaded: disable Trigger on: newline Other Options: "

--------------------------------------------------------------------------------

Other Tips

On special characters:
Special characters are characters like @,#,;,-, etc.These can be a thorough pain in the ass sometimes. Special characters in zMUD don't agree with Furcadia. What to do about it:
In zMUD, go to the view menu, go to preferences, and go to special characters. (Don't attempt this if you're new at botmaking.) You only really need the variable character(@), the parameter character(%), the command character(#), and the separator character(;), so disable the others. Then change the remaining to alt+keypad characters. (Hold alt and press 0-2-?-? on the keypad, where ?'s are random numbers.) Make them something you're not likely to forget.

Separator characters:
Ah, a botmaker's best friend.
The default separator character is ;, read the section on special characters to change it. These characters make it possible to execute multiple commands with one line of text. For example: >;>;>;> will turn a bot four times.

QuickTips:

*When using separator characters in a trigger command, press the button right next to the command textfield. This will open up a command window which will allow you to see all the commands that will be executed, and in what order. This will give you some insight as to how zMUD handles multiple commands, and will make command editing a TON easier.

---------------------------------------------------------------------------------

Contacting Gental Soul:
Please *do* hesitate to send questions. Of course if you ask me a bot question on Furc then I may ignore you.

Any other comments or ideas? Contact the FURRE! Network.


Furry Banner ExchangeFurry Banner Exchange

FURRE! Your Furcadian Network
---





Website created by Bravecat.
We welcome your feedback.