Copyright: Copyright 1997 Zugg Software


ABORT

Syntax: #AB

Example

Aborts further parsing of the current command line.  Commands after this on the same line are discarded.


ABORT example

get all corpse;#ABORT;split

OK, this is somewhat contrived, but the command ‘get all corpse’ is sent, then the #ABORT stops further processing so that the ‘split’ command is ignored.


ACTION

Syntax: #AC pattern command [classname]

Related: #TRIGGER #T+ #T- #IGNORE

Example

This is one of the most powerful features of zMUD.  It allows you to define a command to be executed whenever the matching text is received from the MUD.

The first parameter is the text to be matched.  If the text contains a space, you need to enclose it in quotes.  This pattern can contain special pattern matching symbols and wildcards.  The second parameter is the command to be executed when the pattern is received from the MUD.  Since this command usually consists of more than one word, you must enclose it in quotes.  The third parameter is optional, and is the name of the trigger action class that this action is part of.  Triggers can be enabled and disabled when part of a class.

For advanced trigger options, you must go to the Settings dialog.  In this dialog, you can determine whether the action is triggered at the end of each line received from the MUD, or if it is just triggered at the end of receiving a block of data from the MUD.  Responding to MUD prompts such as Username and Password require a trigger that activates after a block of text is received since these prompts are not normally followed by a newline.


ACTION example

A simple trigger action

#AC {chats} {#COLOR red}

whenever a line containing the word ‘chat’ is received, the color of the line is changed to red.

Triggers for automatic logins

#AC {^Username:} {#CH}

#AC {^Password:} {#PW}

In the Preferences dialog, turn off the ‘Trigger on Newline’ option and turn on the ‘Trigger on Prompt’ so that these macros don’t wait for a newline character.  Note that the ^ character at the beginning of each pattern forces them to match the beginning of a line.

Parameters in triggers

#AC {^You get (%d) coins} {split %1} autosplit

Whenever you see a line like ‘You get [number] coins’ the number of coins is stored in the %1 parameter.  The command then uses this value to split the coins among the party members.  A class name of autoplit is used so that you can enable and disable the trigger using the T+ and T- commands.


ADD

Syntax: #AD variable amount

Example

This command allows you to perform simple arithmetic to variables.  The value given by the amount parameter is added to the current value of the variable.  If amount is not numeric, an error occurs.  amount can also be a reference to another variable, adding its current value to the value of the listed variable.  To subtract a value, use a negative amount.

This is the only specific math function seperately implemented in zMUD (for compatibility).  A full MATH command, ala TINTIN, is also available.


ADD example

#AD moves 1

Add one to the @moves variable

#ACTION {You get (%d) coins} {#AD gold %1}

When you pick up some coins, add their value to the @gold variable.


ALARM

Syntax: #ALA timepattern command

Related: #TRIGGER

Example

Allows you to set up a trigger based upon the time, rather than what is received from the MUD.  The timepattern can contain a specific time, or can include wildcards as shown below.  If preceeded with a minus (-), the connection time is used rather than the current time.

Typically, the timepattern has the format hours:minutes:seconds, although the hours and minutes are optional.  If missing, the hours or minute parameter is assumed to be an asterisk wildcard.  In place of a specific numeric value, you can use an asterisk to match any value, or you can list several values separated by the OR operator (|).  You can also use the special wildcard *value which will match when the time MOD the value is zero.  E.g. *10 matches 10, 20, 30, etc.  Finally, you can put parenthesis around the wildcards to save the values matched to the %1..%9 parameters.

You can also define a temporary, one-time alarm by specifying a plus (+) in front of the time.  The command is executed when the alarm goes off and the alarm is then deleted.


ALARM example

#ALARM -30:00 {save}

The hour isn’t specified, so it defaults to *.  Thus, this trigger saves your game every 30 minutes of connect time.

#ALARM 3:00:00 {gossip “Why aren’t you sleeping?”}

This triggers at 3am local time.

#ALARM -59:(55|56|57|58|59) {#SHOW 60-%1}

Ok, here’s a complicated one.  The pattern starts with a minus sign, so its going to look at the connection time.  Then the hour parameter is missing, so any hour will match.  The minutes is specified at 59.  The seconds match 55 or 56 or 57 or 58 or 59, and the actual value matched is saved to %1 because of the parenthesis.  The command then takes %1 (the matched seconds), subtracts it from 60 and says the result.  The final result of this trigger is on the last 5 seconds of every hour, you say “5” “4” “3” “2” “1”.

#ALARM +5 {save}

Executes the "save" command in 5 seconds.  This is a one-time alarm that deletes itself once it has executed.


ALIAS

Syntax: #AL [aliasname] [string] [classname]

Related: #VARIABLE

Example

Assign the command string to the shortcut aliasname.  Variables in string are expanded when the ALIAS command is executed.  To delay expansion of variables, use two variable characters.

If ALIAS is used with no parameters, all aliases are listed to the output window.  If ALIAS is given a single parameter, the definition of aliasname will be displayed.

Aliases can also be expanded via tab completion.  If the aliasname is entered into the command line and <TAB> is pressed, the aliasname will be replaced with the string assigned to that alias.

Text following the aliasname in the command line is stored in parameters.  These parameters %1 through %99 can be used in the string definition of the alias.  Special parameters %-1 through %-99 are also defined which represent the parameter plus all text following it.  Thus, %-1 contains all text following the alias.  %-2 contains everything past the first parameter, and so on.  Thus, in the example alias foo bar, alias is the aliasname, foo is assign to %1, bar is assigned to %2, foo bar is assigned to %-1, and bar is assigned to %-2.  Any text following the aliasname that is not used as a parameter is appended to the results of the alias expansion.


ALIAS example

Simple alias

#AL fs {fill waterskin statue}

When fs is entered, the string fill waterskin statue is sent to the MUD.

Using delayed expansion

#AL fs {fill @container statue}

When fs is entered, the value of @container is expanded, and the result is send to the MUD.  If @container has the value of jug, then the string fill jug statue is sent to the MUD.

Using parameters

#AL kk {kill %1;kick %1}

Used with a parameter.  If kk rabbit is entered, the commands kill rabbit and kick rabbit are sent to the MUD.

Delayed expansion

#AL make {#ALIAS %1 {cast %1 %%1}}

This is a complicated alias which creates other aliases.  In this case, the ‘make’ alias takes a parameter which is the name of a spell to cast.  When you use the ‘make’ alias, another alias is created with a name equal to the spell name.  Since each % is removed each time a command is parsed, the %%1 is delayed by one step.  Thus, when you enter

make heal

the command

#ALIAS heal {cast heal %1}

is entered, which creates the new spell alias called ‘heal’


ALL

Syntax: #ALL command

Example

Sends the specified command to all character windows.


ALL example

#ALL quit

sends the quit command to all active character windows.


ANSI Function Mapping

This Preferences page contains options that control how ANSI control codes are handled by zMUD.  Most of these preferences are local to the specific character.

ANSI control codes are normally used to specify the color of text from the MUD.  However, several special ANSI codes are used to specify attributes such as bold text, underline, blinking, and reverse video.  zMUD allows you to map these ANSI functions to one of several zMUD functions.  For example, if you don't like blinking text, you can map the ANSI Blink function to something else such as underlined text.  A very common setting is to map the ANSI Bold function to display highlighted colors so that you can have 16 text colors instead of the ANSI default of 8.  This is the default setting for the Bold function.  All other ANSI functions are mapped to their ANSI default.


Add Tab Word

Adds a word to the tab completion list.  The word is taken from

any highlighted text in the output window

any highlighted text in the command line

last word in the command line


Advanced Button
Advanced Button Properties

This Settings Editor dialog page allows you to edit the properties of a Button.

Buttons have many properties, so a page tab is displayed to allow you to select the Button States, Position/Size, or Advanced property pages for Buttons.

If a Variable name is assigned to a button, zMUD automatically sets the variable to a value of zero if the button is off, and 1 if it is on.  You can also use this field to specify the startup state of a button.  Simply assign a variable name and then set the Default value of the variable to one or zero to set the startup state of the button.  Note that if you set the startup state to one, the commands assigned to the button's off state will automatically be executed when the MUD character is first loaded.

The Value field is used to specify an expression that determines the state of the button.  When using the Value expression, you cannot activate the button manually...it is only updated under zMUD control and turned on when the expression is true, and turned off when the expression is false.

The Bitmap file allows you to assign a .BMP file as the icon for the button.  You should normally use BMP files with only 16 colors.  The Bitmap Margin field specifies the spacing between the bitmap and the caption of the button.


Advanced Editing

In addition to the single line of input that you can send from the command input window, zMUD contains a full-window ANSI editor for composing long messages.  To open this editor window, select Editor from the Window menu, or press Ctrl-Enter.

The command editor works like most editors.  You can type text, use the arrow keys (or mouse) to move around, cut, copy, and paste text within the editor, or copy text from the MUD output window and paste it into the editor window.  Lines can be any length, and you can use the scroll bars to display other parts of the window.  The size of the editor is the same as the output window.  In the 16-bit version, this limit is 16,000 lines.

The menu in the editor window allows you to load text from a file, or save the current contents to a file.  The Import command inserts a file at the current cursor position, rather than replacing the buffer contents with the file.  The Send command sends the contents of the editor to the MUD, and can also be activated by pressing Ctrl-Enter.  By selecting Preferences in the Options menu, you can change the string of text that preceeds each line as it is send to the MUD.  You can also turn on the Prefix Toolbar so that the field to change the string preceeding each line is visible all of the time.  You can also change how blank lines are sent to the MUD.  Normally, each line is parsed for commands before being sent to the MUD.  You can send the text verbatim by turning off the parse option in the Options menu..

The Capture command allows you to take the last N lines from the MUD output window and insert them into the editor.  The #CAPTURE command can be used in triggers to send MUD output to the editor window.  The Capture Toggle command in the Options menu can be used to turn off capturing while you are editing.

In the Text menu, you can change the bold attribute, or the color of your text.  Standard ANSI color sequences are used, and note that most MUDs filter ANSI sequences that you send (although this might change when more people using zMUD demand this colorful feature).  If you have defined a color syntax for your MUD, zMUD can convert the ANSI color in this window to the color commands used by your MUD if the Color Syntax is enabled in the Options menu.

To close this window, select Close from the File menu, or press <ESC>.  Ctrl-Enter also closes the window after sending the text in the window to the MUD.

Note that the text is not only sent to the MUD, but it is also parsed and executed just as if you entered it line by line into the single line buffer.  Thus, you can load a script from a text file, and execute it using the Send command, or by pressing Ctrl-Enter.  If you turn off the Parse option in the Options menu, then text will be sent to the MUD verbatim - it will not be parsed for commands.  This is useful for MUD builders and coders that want to send a large block of unparsed text to the MUD at once.


Advanced Mapping

The mapper in zMUD is very powerful and can be used to recreate almost any area you might encounter on a MUD.  However, the “auto” part of the mapper is fairly primitive and easily confused.  For example, you will not be able to “automatically” map a maze on a MUD.  However, using the advanced editing tools you can tweak your map.  Once you have it correct it will prove very useful for navigating that maze in the future.

In order to explore all the editing functions, start working with an Empty window offline.  This will allow us to focus on the editing functions and not on the MUD itself.

Select the Edit mode from the Mode menu.  This opens the edit panel and displays other buttons in the speedbar.  Move around to create a few rooms on the map.

Moving rooms

You can move a room by selecting it, then pressing one of the arrow buttons in the top speed bar.  Or, select the Move option from the Edit menu.  You can only move a room one square at a time.  This is because of the complex algorithm used to move rooms that are connected, or to move other rooms out of the way.  Play around with moving rooms till you get the hang of it.

Moving a room away from another will stretch the line connecting them.  Moving a room on top of another will ask you if you want to “Merge” the two rooms.  Merging two rooms makes them into one single room.

You can also add rooms to the map by selecting the Add Room function from the Edit menu, then clicking on the map where you want the room created.  Rooms can be deleted using the Delete Room or Delete Link functions in the Edit menu.  The Delete Room function removes the room, by leaves the links (described below).  The Delete Link function removes the room and all associated links.  The Erase button on the button bar is assigned to the Delete Room function.

Links

Links are used to connect rooms together.  There is a big distinction between links and the lines you see on the map.  When a link is created, the proper lines are automatically added to the map display.  However, the lines are for looks only and are not related to the actual link between rooms.  Take a look at the links by clicking on the Link tab of the edit panel.  In a “compass rose” diagram, each link is shown as a button.  On the button is the room number that the link is connected to.  Click on various rooms on your map and you will see the links displayed.  If you move the cursor over one of the link buttons, the actual name of the room will be displayed if you are working online.

To add a link, click one of the link buttons, then click on the room you want to link to.  A small line is added to the map to show the link, but you can link to any room on the map, not just the rooms adjacent.  These links are the heart of the map and are used for speedwalking and traveling on the map.  This is very important:  the lines on the map are ignored, only the actual links are used.

To delete a link, click on the link button you want to delete, then right-click on the map, or click on the Checkmark button in the status line.

You can also create “unknown” links.  Unknown links are used to specify a room in a particular direction, but not which room it actually is.  These links are used by the mapper when the exits of a room are automatically detected.  An unknown link is placed in each location so you can keep track of which places you have been.  An unknown link is shown on a link button as a question mark (?) and displayed on the map with a short line segment.  To create an unknown link, click on the link button you want to change, then click on the Question-mark button that is displayed in the status bar.

To delete a link, select the Delete Link function in the edit menu, then click on the line segment on the map you want deleted.  Both the line segment and any links associated with it are deleted.  If you select Delete Link and click on a room, the room and all its connecting links are deleted.  Beware: there is no undo function currently in the mapper.  Once you delete a room or link, it is gone.

Editing lines

Remember that line segments and links are different.  You can edit and add line segment independently of the actual underlying room links.

You can add new lines to the map using the Add line function in the Edit menu (or the Line button on the button bar).  If you then click on the map, a line segment will be added (although it might not look like what you want yet).  If you want to add multiple lines, hold down the Shift key when you click on the map and the Add Line function will remain selected.

To edit a line segment to look the way you want, click on it.  In the edit panel, a box showing a blow-up of the line segment will be shown.  You can click in this box to add or remove segments from the line.  This lets you make corners, diagonals, and lines that bend.

There is one problem with lines you add manually:  if you start moving rooms around you’ll notice that these lines don’t generally move with the rooms.  The mapper has no knowledge of connections when it comes to extra lines -- they are there just for looks.  Thus, you should only add lines once your room layout is the way you want it.

One-way links

If you create a line segment next to a room and there is no link defined in that direction, a one-way link is displayed.  This is just a visual indicator to help you understand that even though there is a link there, it doesn’t go anywhere.

Searching for Rooms

Using the Find command in the Edit menu, you can search for rooms that match a pattern you specify.  Enter words into the Room Name, Room Description, and Room Notes fields.  Rooms that contain these words will be displayed when you click the Find button.  You can search in the current zone (default), or All Zones or a specific zone that you select from the Zone drop down list.

After clicking the Find button, any rooms that match your specification will be displayed in a list.  If you click on a room in this list to select it, the corresponding room on the map will be selected.  You can select multiple rooms by holding down the Shift key to select a range, or the Ctrl key to select individual rooms.  You can set the currently selected room to be the current location on the Map by double-clicking the room, or by clicking the Set button.  To speedwalk to a room, select the room and click the Walk button.  You can also display the properties for the selected rooms using the Property button.

Spreadsheet Editing Mode

Instead of editing the map graphically, you can select Spreadsheet Mode from the View menu to see your map as a list of rooms and link values.  Each room has a unique room number (fixed by zMUD which may be different from the vnum value of the room) and is displayed on its own line.  The standard exits defined in View/Directions are shown as columns.  A link to another room is displayed as the destination room number in the column for the direction of the link.  You can manually edit these link numbers to change the map.  The graphical map will update automatically as you make changes.

You can delete links or set them to null links by right-clicking the cell and selecting from the menu.  Note that links to other zones and non-standard exits cannot be edited in spreadsheet mode.

To create a normal, two-way link, double-click on the starting cell, then click on the destination cell.  You can also drag cells and drop them to new locations to move links.

The room name that is displayed represents the label value for the room.  Editing this cell is the same as editing the Label field for the room.  Setting this cell to an empty value restores the display of the actual room name as the label.

Spreadsheet mode is most useful for creating maps of maze areas.  In such cases you can set the room label to a unique value for the room.  For example, drop a particular object in the room and set the label to that object name.  Then, when you return to the room and see the object laying there, you will know what room of the maze you are really in.

Non-standard exits

While you can create non-standard exits (like enter, portal, etc) by manually creating a link and editing it's properties, you can also create one while walking around your MUD creating your map from the MUD command line.  Simply prefix the non-standard direction with the MapDir character (defaults to >) and the mapper will create the new room as you move.  So, for example, if one of the exits from the room is "enter", simply type ">enter" on the command line and a room will be created and linked with the Other exit called "enter".  Normally the mapper will put the new room in a vacant spot near the original room.  To force the room to be created a certain cardinal direction from the original room, put the cardinal direction after the other exit seperated by another ">" character.  So, for example, to create a new room to the east, you would type ">enter>e".  This is only needed when you first need to create the room.  Once the room is created, simply typing "enter" should follow the existing link to the room.


Advanced Programming

In the section on variables and triggers you learned the basics about programming in zMUD.  However, zMUD is a powerful event-driven programming language, and you have barely touched the surface of what is possible.  In this section, a more detailed explanation of command parsing will be presented, and functions will be introduced.  If you fully understand how zMUD parses its commands, you will find that zMUD is capable of doing most anything you desire.

Command Syntax and Parsing

Every time you enter a command and press Enter, the command text is parsed.  This parsing several steps:

break the input using the separator character (;) into individual commands

determine the focus of the command

execute the command

When commands are executed, the type of each parameter determines whether the parameter will be expanded, evaluation, or left alone.  For nitty-gritty details of the zMUD Programming syntax, read the zMUD Programming Language Manual on the web at http://www.zuggsoft.com/zmud/prog.htm.

For example, the #VAR command takes a String parameter, which is expanded, so

#VAR temp 5	assigns the number 5 to the variable temp

#VAR hp {100/@temp}

#SHOW @hp	displays 100/5

However, the #MATH command takes an Expression which is evaluated, so

#VAR temp 5	assigns the number 5 to the variable temp

#MATH hp 100/@temp

#SHOW @hp	displays 20

The #FUNC command takes a Literal which is left alone, so

#VAR temp 5	assigns the number 5 to the variable temp

#FUNC hp 100/@temp

#SHOW @hp	displays 100/@temp

One final word about parsing and variable expansion.  Normally, each variable must be separated by spaces to allow proper parsing.  Thus, if the variable @a has the value test, you must normally say @a ing to get @a to expand.  If you say @aing zMUD looks for a variable called aing.  You can use the curly braces {} to surround the name of the variable to solve this problem.  Thus, @{a}ing expands to testing.

You can use the above syntax to perform indirect variable addressing.  Let’s say that the variable @b has the value a.  Refering to @{@b} expands the value of @b, resulting in @{a} which expands to test.

If you ever want to use one of the special zMUD characters like @ or %, you can use the tilde character (~) to “quote” the special character.  Thus, zugg~@zuggsoft.com would tell zMUD not to interpret @ as a variable character.  To actually use a tilde character, use two of them.

Functions

In addition to variables, zMUD allows you to define functions.  Think of functions as variables with parameters.  Parameters are used much like they are with aliases, except that since they are expanded within a command string, the syntax for calling a function is a bit different.

You declare functions just like variables, using the #VARIABLE command.  However, in the definition of the function, you can use %1, %2, etc to refer to parameters to be supplied by the caller.  For example, #VARIABLE kk {kill %1;stun %1} defines a function called @kk that takes one parameter.  You expand and execute this function by using the @ character in front of the function name, then put the required parameters in parenthesis (much like in a programming language).  Thus @kk(zombie) will expand to kill zombie;stun zombie.  Recall that this is similar to the kk alias that we defined in the Introduction to Aliases section, but unlike aliases, functions are expanded during the parsing phase anywhere in the command, rather than performed at the execution phase.

To add more power to zMUD, several predefined functions are supplied.  They provide the tools necessary for some very powerful trigger processing.  By using the predefined functions in combinations with your own functions, the sky is the limit!


Advanced Topics

zMUD is a very complex program.  The combination of triggers, variables, and aliases combine to form a powerful event-driven programming language.  To enhance this language are functions, introduced in this section.

Also, zMUD isn’t just for players.  It includes many features designed for world builders and MUD coders.  One of these is the ANSI editor window which allows you to send more than one line to the MUD, and imbed ANSI color sequences.

The following topics are covered in more detail:

Advanced Editing

Advanced Programming


Aliases

This Settings Editor dialog page allows you to edit the properties of an Alias.

The Name field gives the shortcut name of the alias, and the Commands field lists the commands assigned to the alias.  You can put multiple commands on separate lines, or separate them with the command separator character (default of ;).

The Comment field assigns a comment or note to document the function of the Alias and is optional.  The Class drop-down list at the bottom allows you to assign this alias to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


Auto Login

The first time you log into a new MUD, zMUD tries to automatically detect your character name and password information in order to create triggers to log you in automatically the next time.

If the information shown in this dialog is correct, click Yes and zMUD will create the autolog triggers for you.  If the information is wrong, click No.  If you just created a new character on this MUD, the prompts are different than those given when you log in with an existing character, so click No and let zMUD detect the information again when you log in the next time.

If you want to prevent this dialog from appearing, click the Stop Asking button..


BACKUP

Syntax: #BA

Related: #PATH #RETRACE

Example

Remove the last direction from the currently recorded path.


BACKUP example

If the current path is .nsew then #BA will set the path to .nse.  If the current path is .n4s then #BA will set the path to .n3s.


BEEP

Syntax: #BEEP [value]

Related: #PLAY

Example

Plays the current beep sound.  If you specify a numeric value, then the corresponding windows event is played instead.  The default beep sound has a value of zero.

Note that zMUD does not pause while the sound is playing.  Thus, playing two beeps in a row will only sound one beep, since the first one is still playing when you start the second.  To play two beeps, use the WAIT command to insert a delay.


BEEP example

#BEEP 16

play the sound for windows event 16

#BEEP;#WAIT 500;#BEEP

sounds two beeps with a 1/2 second delay.  Note that zMUD continues to process other events during the delay, so this won’t slow you down.


BUTTON

Syntax: #BU number

Example

Triggers the numbered button.  This is typically assigned to a macro key.  The number parameter can be a variable reference, but must evaluate to a numeric value.

This command can also be used to define a button.  This syntax is used by the ascii export and import scripting routines.  The syntax is:

#BUTTON number Off-caption On-command On-caption Off-command Value-expression Variable-name Bitmap-filename Width Height Top Left Off-color On-color Seperator-Flag Bitmap-margin Classname


BUTTON example

#BU 1

triggers the first button, just as if you had clicked it.


Background
Background Colors

This Preferences page contains options that control what background colors are used by zMUD.  Most of these preferences are local to the specific character.

Although ANSI defines 8 standard background colors, zMUD allows you to map these values to any color your system is capable of displaying.  To change one of the colors, click the button next to the color number and select a new color from the displayed color pallette.

To set the colors to ANSI default values, click the "Set colors to default" button.

If the "Lock Background" option is selected, then changes to the background color sent by the MUD will be ignored by zMUD.


Basic Usage

Once you are connected to the MUD, you will typically be prompted for your character name and password.  zMUD tries to auto-detect this, and will pop-up a dialog with your character name and password and ask if you want zMUD to create an auto-login trigger for you.  If you click OK, then the next time you log-in, zMUD will automatically enter your character name and password.  If you click Cancel, this trigger will not be created for you.  Of course, the next time you log in, zMUD will ask about creating the trigger again.  If you want to stop zMUD from auto-detecting your login process, simply go into the character database and fill in a value for your character name.

Note that the text you type appears in the bottom Command Line entry field.  When you press <Enter>, the text in this field is sent to the MUD.  It is also echoed to your text window if you have the Echo flag enabled (default is enabled) using the current command color (changeable in the Color preferences).

When you enter your password, it will also be echoed to the screen.  To prevent this, use the #PW command.  Type #PW and press <Enter>.  The password for this character that you entered in the Character Database will be sent to the MUD, but it will not be echoed to the text window.  Also note that # is the default command character and you can change this in the Preferences dialog as described later.

The Command Line

Once you have entered your character name and password, answer any other questions displayed by the MUD.  All of the text that you type will be shown in the command line.  You can use the <Backspace> key to edit this line.  You can also move the insertion point within the command line by clicking the mouse at the point you want to start typing.  If you have a separate set of arrow keys on your keyboard, you can use the right and left arrow to move within the command line.  Note that the keys on the numeric keypad have macros assigned to them by default so they cannot be used as arrow keys.  When you press <Enter>, the text in the command entry field is sent to the MUD.  If the Echo flag is enabled, it will be shown in the large text window in the current command color

You can enter multiple commands on the same line using the Separator character, which defaults to semi-colon (;).  Thus, eat bread;drink water will send the two commands eat bread and drink water to the MUD in quick succession.  Also, when commands are sent to the MUD from the command line, a newline (CR/LF) is always added to the end automatically.  To prevent this newline from being sent, you can put a tilde (~) character at the end of the line.  The text (without the tilde) will be send to the MUD without an automatic newline.

The Output Window

You can scroll the main MUD window by clicking the scrollbars to the right and below the main window.  You can also use the PgUp and PgDn keys on the keyboard (but again, not the number pad).  When you scroll the window, the screen is split, with the scrollback shown above and the live text from the MUD shown at the bottom.  The split bar can be dragged to any position to see as much or as little live text as desired.  Once the screen is split, the Shift-Up and Shift-Down arrows can be used to move line by line, or the PgUp and PdDn keys can be used to scroll a page at a time.  You can still type commands in the command line and send them to the MUD while the screen is split.  To unsplit the window and automatically return to the bottom of the scroll buffer, click the Pause button in the lower right corner of the window, or press the Ctrl-Z key, or press the ScrollLock key, or select the Split command from the Window menu, or type #FREEZE on the command line.  You can also unsplit the window by dragging the scroll bar to the bottom.

You can search for text in the output window using the Find command in the Edit menu, or by pressing Ctrl-F.  You can search backwards (default) and forwards through the buffer.  Since this buffer can grow quite large, especially in the 32-bit version of zMUD, the Find command is very handy for rapidly locating past text.  The screen is automatically split when the text is found so that you can view the scrollback buffer and the live text at the same time.

You can also copy text from the output window and paste it into other programs.  When you highlight text with the mouse (click the left button at the starting location, drag the mouse with the left button still held, then release the mouse button at the end location) the screen is automatically frozen to prevent scrolling from disturbing your selection.  When you release the mouse button, the text is automatically copied to the clipboard.  You can select large portions of text (more that a screenful) by left clicking the start location, the left clicking while holding the Shift key at the end location.  If you double-left-click, the word under the mouse is highlighted then copied to the clipboard. If you left-click in the narrow margin to the left of a line, the entire line will be selected.

Contents of the screen are stored to the clipboard in both plain ASCII text format and in color ANSI format.  When you paste to an external program like Notepad, the plain text format is used.  If you paste to the Command Editor the ANSI color format is used to preserve MUD colors.  If you paste to the Command Line, plain text is used unless you have defined a color translation syntax in the color preferences in which case the ANSI color is converted to color commands for your MUD.  If you paste more than one line of text into the command line, the line breaks are replaced with the command separator character (;).


Button Position
Button Position/Size

This Settings Editor dialog page allows you to edit the properties of a Button.

Buttons have many properties, so a page tab is displayed to allow you to select the Button States, Position/Size, or Advanced property pages for Buttons.

To set the button to the default width and height, select the Auto Size option.  Otherwise you can turn this option off and select your own width and height for the button.  The button on the MUD Window will be updated as you change the size or position if you have the "Automatically Show Changes" option selected.

If the button bar is along the top or bottom of the window, buttons are normally displayed to the right of the previous button.  If the button bar is along the left or right edges of the window, buttons are normally displayed below the previous button.  You can change this by turning off the "Auto Position" option and specifying the button position manually.

Selecting a Button Bar location of None turns off the display of the button bar in the MUD window.


Buttons
Button States

This Settings Editor dialog page allows you to edit the properties of a Button.

Buttons have many properties, so a page tab is displayed to allow you to select the Button States, Position/Size, or Advanced property pages for Buttons.

Push

Sets the button to be a simple push buttons.  A push button has a single state and simply executes the Commands when the button is clicked

Toggle

Toggle buttons have two states: On and Off.  Select the state you wish to edit from the State field.  Each state has a caption displayed on the button, and the Commands to execute when the state changes.

Seperator

Not really a button, but simply adds a spacer to the button bar to seperate other buttons.  Control the width of the seperator in the Position/Size tab.

Multistate

Not currently implemented.

For each possible button state, the button has a caption and a set of commands that are executed when the button is pressed.  You can change the color of the caption using the Color button to the right of the caption field.

The Comment field assigns a comment or note to document the function of the Button and is optional.  The Class drop-down list at the bottom allows you to assign this button to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


C+

Syntax: #C+ [name]

Related: #C-

Example

Starts capturing lines and sending them to the specified window.  If ‘name’ is omitted, lines are sent to the command editor (assuming capturing is enabled within the editor).  Otherwise, the lines are sent to the named window.  The window is created if it doesn’t exist.  If the Capture Commands option is on in the preferences, then commands entered into the command line will also be captured to the window.


C+ example

#C+ temp

starts copying all lines received from the MUD to the window named temp.


C-

Syntax: #C-

Related: #C+

Example

Stops capturing text from the MUD.  Opposite of C+.


C- example

#C-

Wow, imagine that!


CAPTURE

Syntax: #CAP [number] [name]

Related: Editor window

Example

Captures the last number lines of text, and copies them into another window.  If number is missing, the last line is copied.  If number is -1, all lines are copies.  If ‘name’ is specified, the lines are sent to the named window (the window is created if it doesn’t exist).  If ‘name’ is omitted, the lines are sent to the command editor window.


CAPTURE example

#CAP

capture the last line from the MUD and copy it into the editor window.

#TRIGGER {tells you} {#CAP tell;#GAG}

When a line containing the string ‘tells you’ is received from the MUD, the capture command copies the line to the tell window, and the gags it from the current window.


CASE

Syntax: #CA index command1 [commandn]

Example

Allows you to select a command from a list to be executed.  The index parameter determines the command to execute from the list given by command1..commandn.  If index is greater then the number of commands, it wraps around.  For example, if there are four commands and you ask for the fifth, the first is returned.  This allows you to use the predefined variable %random to select a random command.

If the index is negative, results are undefined.


CASE example

#CASE 2 {first command} {second command} {third command}

sends the string second command to the MUD

#CASE @joincmd {join} {rescue}

if the variable @joincmd is 1 (or 3,5,7...) the string join is returned, otherwise the string rescue is returned.

#CASE %random {Hello} {Hi there} {Hiya} {Hi}

returns a random string from the given list to the MUD.


CHARACTER

Syntax: #CH

Related: #HOST #PW

Example

Returns the name of the current character from the Character Database


CHARACTER example

If the current character name is Zugg, then #CH sends Zugg to the MUD.


CLASS

Syntax: #CLA classname state

Example

Sets the state of a class.  The specified class name is enabled if the state expression is true (1) or disabled if it is false (0).  If you just specify #CLASS with no parameters, a list of classes is displayed with the status of each class indicated.


CLASS Example

#CLASS Automapper 1

Turns on the Automapper class.

#CLASS

lists all classes and their status


CLOSE

Syntax: #CL filenum

Related: #FILE

Example

Close the file given by filenum.  It must have already been opened using the FILE command.

You can also use the Close command to close a window by specifying the name of the window in place of the filenum parameter.


CLOSE example

#CLOSE 1

Closes file number 1

#CLOSE Tell

Closes the window named "Tell"


CLR

Syntax: #CLR

Example

Clear the screen.  The scrollback buffer is uneffected.  To clear the entire scrollback buffer and reclaim the memory, use the Empty menu command.


CLR example

How about: #CLR


COLOR

Syntax: #CO attribute [pattern]

Related: #HIGHLIGHT

Example

If the pattern parameter is left out, this command changes the color of the last line received from the MUD.  The color attribute can be a numeric attribute (compatible with the attribute values used by the text modes of DOS) or can be a combination of string values listed below, separated by commas.

If the pattern is included, a trigger is created to color any line matching the given pattern with the specified color.

Color values:

black	0

blue	1

green	2

cyan	3

red	4

magenta	5

brown	6

grey	7

yellow	14

white	15

bold	128

to make a color brighter, add 8 to the base value.  For example, 9 is bright blue.  To change the background color, rather than the foreground, multiply the base value by 16.  For example, to get a red background, use 4*16 or 64.  To make the foreground font bold, add 128 to the value.

Thus, a bold white on a blue background would be 128 + 1*16 + 15 = 159.


COLOR example

#CO red

changes the color of the last line received to red.

#CO bold,red

changes the last line to bold font and colors it red

#CO 159

set color of last line received to bold white on blue background.

#CO red {tells the group}

same as #ACTION {tells the group} {#CW red}.  Whenever a string is received from the MUD containing the pattern tells the group, the phrase is colored red.  Only the phrase is used because #COLOR secretly uses the #CW command.  If you really want the entire line colored, you must create the trigger manually using:

#TRIGGER {tells the group} {#COLOR red}


CONFIGURE

Syntax: #CONFIG filename

Example

Allows you to specify the configuration file being used by the Automapper.  Useful for swapping between different configurations such as Brief and Full under script or macro control.


CONFIGURE Example

#CONFIG brief

Loads the brief.zfg configuration file into the mapper


CONNECT

Syntax: #CON

Related: #DISCONNECT

Example

Disconnects, then reconnects to the current MUD session.  Save as File/Reconnect menu command.


CONNECT example

#CON

drops the session, then reconnects.  If you are using auto-login triggers, you should be back to where you were.


CR

Syntax: #CR

Example

Send a blank line to the MUD.


CR example

#CR

send a blank line to the MUD


CW

Syntax: #CW color

Related: #COLOR

Example

If used after a successful trigger, this command will color the phrase matched by the trigger with the specified color.


CW example

#TRIGGER {Zugg} {#CW red}

Whenever a line is received containing the word “Zugg”, these words are colored red.  Note that this is similar to the #COLOR command which would color the entire line red instead.


Character Database

The Character Database is the main window first opened when you run zMUD.  You can also access it any time by selecting "Another Character" in the File menu, or clicking the Chars button in the main toolbar.  The Character Database is used to create, edit, and manage all of your MUD characters.  A MUD character is defined as a specific character that you have created (or will create) for a specific MUD on the Internet.

In the main character display, each of your characters is displayed as an icon with a title.  By default, the title of the icon is the name of the character and the name of the MUD.  For example, "Zugg on Mirkwood" is the character named Zugg on the MUD named Mirkwood.  To connect to one of your existing characters, select the character by clicking on its icon, then click the Connect button in the tool bar for the character dialog.  You can also just double-click on the icon to connect to it, or just press the Enter key if you prefer using the keyboard.  When you connect to a character, zMUD will contact the MUD for that character and attempt to log you in automatically.

If you want to work on your character settings (aliases, triggers, etc) without actually connecting to the MUD, select your character and click the Offline button (or press the O key).  Your character window will open as normal, but no connection will be made to the MUD game itself.  When you are working on your character offline, you can connect to the MUD by selecting the Reconnect command from the File menu.

The Edit button allows you to edit the properties of your character.  Click the Edit button or press the E key to edit your character.

The New button allows you to create a new MUD character.  Click the New button or press the N key to create a new character from a list of known MUDs.

The Delete button deletes the currently selected character.  Be careful, there is no way to "undo" a deletion.  You can also just press the Delete key on the keyboard to delete your current character.

The View button allows you to change how your characters are displayed.  It works similar to the View options in the Windows Explorer.  You can view your characters by large icons, small icons, in a list, or in detail.  When viewing the detailed list you can sort on any column by clicking on the column heading.  Clicking a second time reverses the sort order.  For example, clicking on the Date column once will display your characters by the date you last connected to them, with your most recent characters at the top.  If you click on the Date column again, the oldest character will be displayed first.

Many of these functions are also available by right-clicking on the screen.  If you right-click a character you can Connect, work Offline, Delete, Edit, and change the View settings.  As with most 32-bit Windows 95 and Windows NT programs, right-clicking in zMUD usually brings up a context-sensitive menu.

Finally, there is a hidden feature that allows you to open an empty MUD window.  Just press the ESCAPE key and a default, empty window will be displayed.  You can use this to edit the DEFAULT.MUD settings, or for general zMUD testing and debugging.  Keep in mind that you cannot connect to a MUD with an empty window because no hostname or port has been specified.


Character information
Edit Character (Character Information)

Your MUD character has many properties that can be edited.  On this screen you can edit your character name, password, ID, and comments.

The tab control along the top of this window allows you to also edit your MUD information, Files information, and Notes information.

The Name and Password fields contain the name and password of your character on the MUD server.  You usually enter this information when you log into the MUD.  The first time you connect to a MUD, these fields will be blank and the MUD will ask you to create a character and specify a password.  The next time you log into the MUD and manually enter your name and password, zMUD will detect this and will automatically fill in these fields in this database screen and will create a trigger to automatically send this information to the MUD the next time you log in.

Make sure you do not set these values to blank if you have an autolog trigger activated.  If zMUD sends a blank value to your MUD, the MUD will usually disconnect you.

The Comment field is used to enter a short reminder to yourself about this character.  It can be used for any purpose you want.

This database screen also shows the date and time you last connected to the character along with the total amount of real time you have been connected to the character on the MUD.


Classes

This Settings Editor dialog page allows you to edit the properties of a Class.

The Name field gives the name of he class, and the options below allow you to enable or disable this class when the MUD character is first loaded.  You can enable or disable the class with the button right of the class name.

The Comment field assigns a comment or note to document the function of the Alias and is optional.


Color Schemes

This Preferences page contains options that control what colors are used by zMUD system messages.  Most of these preferences are local to the specific character.

Info Color

Used to display informational messages from zMUD.  Information messages can be turned off in the Command Parser section.

Command Color

Color used to echo commands entered from the command line.  Command echoing can be turned off in the Command Parser section.

Default Color

The color used to display normal text sent from the MUD.  Note that the MUD can override the text color with ANSI color commands.  However, this color is used when the MUD resets the text color to its default value.  The zMUD default is green on black to simulate VT100 terminals.  Some MUDs expect a default color of grey on black.

Highlight Color

Color used to indicate text highlighted by the mouse.

Status Color

Default color used for text in the Status Window.

Window Background

Color used for the background of default, info, and command colors.

The Scheme pulldown menu allows you to select from "VT100", "ANSI", "Windows", and "User-defined" color schemes.  You can also save your color scheme to a disk file using the Save button, and load a scheme previously saved using the Load button.


Colors
Color Schemes

This Preferences page contains options that control what text colors are used by zMUD.  Most of these preferences are local to the specific character.

Sample MUD output is shown in a small window.  Examples of each type of text output are shown within it.  To change the colors used by zMUD, click a color box to the right of the type of text you wish to change.  The leftmost box sets the foreground text color, the right box selects the background color.  The Window Background box in the upper right sets the background color for all types of text messages.

Your color scheme can be saved to a disk file using the Save Colors button.  The Load Colors button can also be used to load a saved color scheme.  The Color Scheme pulldown box can also be used to select various default schemes.  The VT100 scheme selects the default green-on-black text used on old VT100 terminals.  The ANSI scheme sets gray on black text.  The Windows scheme uses the colors set within Windows for your zMUD colors.


Command Editor Options

This dialog allows you to set several options used by the Command Editor.  The Line Prefix contains a list of strings that can be sent at the beginning of each line by the editor.  It is also accessed from the main editor window in the Prefix Toolbar.

The Blank Line Replacement option determines what is sent to the MUD instead of sending a blank line.

The word wrap settings control word wrapping within the editor window.

The autoclear option works similar to the option for the main command window.  If autoclear is on, then the editor contents are cleared each time you press Ctrl-Enter to access it.


Command Example

You can get an example of how to use the command currently in the command line by selecting this function.  You can also press ALT-F1 (as long as you have not assigned any macros to this key).


Command Help

You can get help on the command currently in the command line by selecting this function.  You can also press Control-H or F1 (as long as you have not assigned any macros to those keys).


Command Parser

This Preferences page contains options that control the zMUD command parser.  Most of these preferences are local to the specific character.

Show Triggers (local)

Controls whether a message is displayed to the screen whenever a trigger fires.  The default is off.  This is normally only used for debugging purposes.

Echo Commands (local)

Controls whether commands entered into the command line are also displayed in the MUD output window when Enter is pressed.  Default is on.  Echoed commands are displayed in the command echo color.

Echo messages (local)

Controls whether various zMUD informational messages are displayed to the MUD output window.  Default is on.  Information messages are displayed in the information color.

Echo scripts (local)

Determines whether commands from scripts and triggers are echoed to the screen.

Capture Commands (local)

Controls whether commands echo to the MUD output window are also captured to the capture window when capturing is turned on (#C+).  Default is on.

Gag Password (local)

Controls whether any line containing your character's password is gagged (not displayed).  Default is on.  Since you should always choose a password that is not a normal word you should never have to turn this option off.

Trigger on Commands (global)

Determines whether triggers are executed on commands you send to the MUD.

Allow [] for eval (local)

Controls whether brackets [] are parsed in the command line to indicate immediate evaluation of expressions.  Default is on.

Allow <> for expand (local)

Controls whether brackets <> are parsed in the command line to indicate immediate variable expansion.  Default is on.

a=b syntax (local)

Controls whether the syntax var=value is parsed in the command line to set zMUD variables.  Default is on.

Strip ' quotes (local)

Controls whether zmud strips single quotes on the command line (used to indicate a literal string).  Default is off.

Strip " quotes (local)

Controls whether zmud strips double quotes on the command line (used to indicate a literal string).  Default is off.

Expand Vars (local)

Controls whether variables in the command line are expanded using the current Variable expansion character (default of @).  Default is off.

Send Delay (local)

Specifies the number of milliseconds to delay between sending lines from the #SEND command or when sending text from the editor.


Command Reference

[Function Reference] [Predefined Variables] [Expressions]

Each command should be preceeded by the Command character.  The default command character is # but can be changed in the Preferences dialog.  You can abbreviate each command using the letters shown in boldface.

Commands:

[number] repeat following text [number] times

ABORT abort further parsing of the current command line

ACTION create or display a trigger action

ADD add a value to a variable

ALARM create an alarm trigger

ALIAS create or display an alias

ALL send a command to all windows

BACKUP remove last direction from current path

BEEP beep the speaker (or play a wave file)

BUTTON trigger a button

C+ start capturing to a window

C- stop capturing to a window

CAPTURE capture lines and send them to the editor or a window

CASE select a command from a list

CHARACTER returns the name of your character

CLASS enable or disable a class

CLOSE close a file

CLR clear the screen

COLOR change color of the last line of text

CONFIGURE change the configuration of the mapper

CONNECT reconnect to the current session

CR send a new line

CW color the matched word on the last line

DDE send a DDE macro to a server.

DEFAULT save special characters and reset them to defaults

DISCONNECT disconnect from the current session

DOOR create a door on the map

ECHO echo string to current MUD window

ERASE erase a file from the disk

EVAL evaluate an expression

EXEC execute a command

FILE open a file for reading and writing

FIND find current location on map

FORALL loop through a string list and execute command for each item

FREEZE split the screen to view scrollback

FUNCTION create a user-defined function

GAG remove last line from screen

HELP get help on commands

H+ retrieve the next command in the history buffer

H- retrieve the previous command in the history buffer

HISTORY display the history of previous commands

HIGHLIGHT highlight the last line of text

HOST return the name of the current host

IF perform a conditional test

IGNORE toggle the processing of trigger actions

INPUT put text into the command buffer

KEY define a macro key

KILLALL delete all aliases, macros, trigger actions, tab-completion words

LAUNCH launch another application

LMAP loop through rooms on the map

LOAD load a settings file

LOOK reload description of current room on map

LOOP execute command several times in a loop

LOG start a log file or toggle logging

MAKEROOM create a new room on the map

MAP add a direction to the current path

MATH perform complex math and expression parsing

MARK mark the beginning of a path

MEDIA send commands to your multimedia device

MENU execute a menu command

MERGE merge rooms on the map together

MESSAGE display a message in a small window

MOVE move a direction on the automapper

NAME change the name of the current window

NOOP nothing

NODEF restore special chars saved with #DEF

NODIR remove last direction from mapper queue

NOMAP prevent the matched line from being parsed by the mapper

OK confirm a Slow Walk step

PATH save or display the current path

PICK select commands from a list

PLAY play a wave, midi, avi, cd player, or other multimedia

PROMPT prompt for the value of an alias/variable

PW return your current password

READ read and execute a script from a file, or read a record from a file

RECALL teleport to recall location on map

RECORD record an alias

RENAME rename an alias, variable or path

RESET reset the file back to the beginning.

RETRACE retrace a path

SAY echo text to the screen

SAVE save the current settings file

SCROLL display matching lines in scrollback buffer

SEND send a text file to the MUD prefixed by a command

SESSION open a new session

SHOW echo text to the screen

SLOW execute a path in Slow Walk mode

STATUS set the definition of the status bar

STEP resume an aborted Slow Walk and step ahead

STOP abort a Slow Walk

STW set status window definition

T+ turn on a class of triggers

T- turn off a class of triggers

T? display time remaining in timer

TAB add word to tab completion list

TELEPORT teleport to a location on the map

TEMP create a temporary trigger

TIMER toggle the timer

TRIGGER create or display a trigger action

TS set the time or origin of the timer

TYPE display all or part of a text file to the screen

TZ zero the tick timer

UNALIAS remove an alias

UNBUTTON remove a button

UNGAG prevent the line from being gagged

UNKEY remove a macro key

UNTRIGGER remove a trigger

UNVAR remove a variable

UNTIL execute commands until expression is true

URL open URL in your Web Browser

VARIABLE assign a value to a variable

VERSION display the current version of zMUD

VERBATIM toggle parse mode

WAIT delay further processing until next line is received

WALK speedwalk to a marked location on the map

WHILE execute command while expression is true

WINDOW open a new window

WIZLIST display the credits for zMUD

WRAP set word wrapping

WRITE write a record to a file

YESNO Display a confirmation dialog with buttons


Command Wizard
Command/Function Wizard

This dialog shows the commands or functions used by zMUD.  Select a command from the list on the left, and a brief description of the command along with the parameters will be shown.  You can enter values for the parameter, and the command or function syntax will be displayed in the status line.  If you click OK, the text in the status line will be transferred to the command line.

If you want more help on the command that is selected, click the “More Help” button.  To see an example of the command’s usage, click the “Example” button.


Configuring the Mapper

Because every MUD is different, it is impossible to pre-configure zMUD to automatically start mapping the MUD you play.  Before you can start using the mapper, zMUD must learn how your MUD displays rooms as you walk around the MUD.  zMUD makes extensive use of the exit information displayed by a MUD.  Because of this, make sure you have turned on any option or flag necessary on your MUD to see the exits from a room.

The automapper is intimately tied with the Direction codes used by the speedwalking module.  If you are not using the standard DEFAULT.MUD default settings file that is supplied with zMUD, make sure you edit your Direction Codes (View/Directions menu) so that they are tied to the proper map directions.  Ifyou don’t know what this means, assume you are using the proper default file and continue reading.

To configure the mapper, make sure you are connected to your MUD, then open the Automapper from the Windows menu, or click the Map button on the main toolbar.  A blank map window will be opened.  Click the Map Mode button in the mapper tool bar to begin creating a map.  Since the mapper has not yet been configured for your MUD, the Auto Configuration window will appear.

You can configure the mapper two different ways: Auto Configure (recommended), Manual Configure (only for those who know what they are doing).

Auto Configure

Automatic configuration of the mapper is the default.  In the box provided, enter a command to move you in some direction out of the current room you are in.  For example, enter north, south, east, or west depending upon the exits for the current room.  After you have entered this command, click the Next button.  The movement command you entered will be sent to the MUD and the text displayed by the MUD is captured by the mapper configuration wizard.  If you are on a slow connection or slow MUD and the wizard doesn't wait long enough to receive the full room description, click the Back button and increase the delay time on the main screen.  Keep trying until you get a clean capture of a room.

A clean capture is indicated by the screen that displays the output received from the MUD and highlights the detected room name, description, and exits in colors.  If the configuration wizard did not properly detect this information, try capturing another room by clicking the Back button and trying again.  If the wizard cannot properly detect the room information automatically, you may be able to configure the mapper manually, but you will likely have trouble with the mapper.

Manual Configuration

You should always try auto configuration first and only resort to manual configuration if absolutely necessary.  There are many combinations of parameters for the mapper, and with manual configuration it is easy to set the mapper so that it doesn't work at all.  Only advanced users should attempt to configure the mapper manually.  For detailed information on how the mapper works and how to manually configure it or manually change the parameters detected by the auto configure wizard, go to the Manual Mapper configuration section.


Connection

This Preferences page contains options that control how zMUD connects to the MUD.  Most of these preferences are local to the specific character.

Auto reconnect (local)

Controls whether zMUD automatically tries to reconnect to the MUD when a connection is lost.  Note that some MUDs require that this option be turned off in order to use zMUD on that MUD.

Connection Timer (local)

Controls whether the connection timer is displayed in the status bar above the command line.  Default is on.

Reconnect Time (local)

The number of seconds to wait before reconnecting to a MUD that has disconnected.  Note that this value cannot be set lower than 10 seconds.  This is to avoid users reconnecting to quickly while a MUD is rebooting.

Connect timeout (local)

Number of seconds to try connecting to a MUD.  Default is 5 seconds.  If you have a slow network connection or are connecting to a slow MUD, increase this value.

LF / CR (local)

Sets Linefeed (LF) line termination.  MUDs that follow the telnet protocol send a CR/LF combination after each line, so setting either the LF (default) or CR option will work.  However, some MUDs do not follow the telnet protocol and you might have to set the CR option if you have trouble recognizing lines.


Contents

zMUD allows you to connect to and play MUDs on the Internet, and provides you many useful tools, such as aliases, actions, macros, keys, buttons, scripts, maps, etc, to make your MUD life easier and more profitable.

zMUD is available as a Freeware version (v3.62a) which is not supported, and a Shareware version (v4.1 and above) which continues to be regularly updated and improved.  Support is available to registered users of the Shareware version.  The latest version of zMUD can be found at http://www.zuggsoft.com/zmud or in the TUCOWS Internet archive.  Questions, suggestions, bug reports, etc can be sent to Zugg at zugg@zuggsoft.com

zMUD was designed based upon ideas from various versions of TINTIN, the popular UNIX MUD client.  I have tried to provide compatibility with TINTIN so that users of that client will feel at home.  However, since I have never actually used TINTIN myself, I cannot promise full compatibility.  Concepts, functions, and syntax are similar, but may differ.  Of course, the graphical environment of Windows allows functions that were not possible in the text-based UNIX world, giving MUD players even more power.

zMUD has been optimized for use on DIKU and LP combat MUDs.  Since I don’t play the social MUDs, zMUD may or may not be useful in those cases.  However, in combat MUDs, zMUD excels, providing many mechanisms for outlaws, robots, etc.

Features

List of zMUD features

Getting Started

Information for new users

Advanced Topics

Information for power users

Menu Reference

Reference for all menu commands

Command Reference

Reference and syntax for commands

Function Reference

Reference and syntax for built-in functions


Creating a Character

To create a new character, click the Character button from the welcome dialog, or select the Another Character option from the File menu.  The Character Database dialog will be displayed.  zMUD keeps track of all of your MUD characters in this database.  To start with, the database will be empty.  To create a new character, click the New button.

The New Character dialog has several fields for you to enter data.  The cursor is initially placed in the ID field.  Enter a unique short name for this character -- this field is used for the title of the window, and is used in the #SESSION command (it can also be used as a parameter to zMUD to automatically launch this character when you start zMUD).  Next, enter the title or name of the MUD you will be connecting to into the Title field.  This is not necessarily the Internet name or address, but is a more description name. Press <TAB> to move to the Host field.  Enter the Internet host name or host address of the machine you wish to connect to.  Press <TAB> again and enter the port number that the MUD is running on. Now, click the Connect button to connect to the MUD.

If you leave the character Name and Password fields blank, zMUD will attempt to auto-detect these values and set up an auto-login trigger for you.  If you don’t want zMUD to create an auto-login trigger, go ahead and enter values into the Character and Password fields.

Note: your character name and password are not required to use zMUD.  They are used by the #CH (%char) and #PW (%pw) commands (functions).  Don’t worry, your password stored in the Character Database is scrambled.  As usual, use a unique password for each MUD, and never use a password that is the same as any other computer you might have an account on.

Settings Files

Associated with each MUD character is a file containing all of your preferences, colors, triggers, aliases, macro keys, buttons, etc.  This file is called your Settings File.  zMUD will automatically choose a setting file name based upon the title of the MUD.  However, you can change this by clicking the Settings tab in the Character Database.

Here, you will see two file names: the primary settings file, and the inherited settings file.  zMUD actually loads three settings files for each MUD character.  First, the DEFAULT.MUD settings file is loaded.  This file is used to set overall program defaults, such as default colors, fonts, etc.  Next, the Inherited Settings file is loaded.  Typically you will have an Inherited file related to the type of MUD (LP, DIKU, MUSH, etc) that you are playing.  Finally, the Primary Settings file is loaded, which contains the triggers, macros, etc specific to this character.  In several preferences dialogs you will see options for using Inherited Settings, or using the Primary Settings.  Note that you can normally only edit the contents of your Primary file.  To edit an Inherited File or to edit the Default file, open an empty window by pressing <ESC> from the main character window, and use the Settings/Load menu to load the file you wish to edit.  Then make your changes and save this file.

Another field in this dialog allows you to set the number of days since you last connected to a character that the character is considered old.  Old characters are shown in red in the Character Database to remind you to connect to them and prevent them from being deleted.  The default value for this setting is 10 days.

Other Character Fields

The drop down box to the right of the MUD Title allows you to specify the type of MUD you will be connecting to.  Currently, this is not used for anything other than for your own information.  The Comment field is a place for a short comment (like the class, race, or level of your character).  By clicking the Notes tab, you can enter free-form text.  This allows you to keep miscellaneous notes about the MUD and character you are playing.


Creating a Map Automatically

Once you have configured the mapper, creating a map automatically is as easy as walking around your MUD.  Just make sure that when you want to create a map your mapper is in Map Mode.  When in Follow Mode, the mapper will follow you around to existing rooms but will not create new rooms.

While you walk around your MUD, the mapper will autodetect room names, descriptions, and exits and add rooms to the map.  Rooms are indicated as squares.  Connections between rooms (called Links) are drawn as lines.

Mapping MUD areas (zones) is a tricky business.  Most MUD areas are designed to be challenging to map even by hand, so the zMUD Automapper won't always be perfect.  By default, zMUD assumes the distance between rooms is the same.  On some MUDs, moving between two rooms actually covers a long distance.  You can drag rooms on the map by clicking them with the mouse, holding the left mouse button, and moving the mouse to drag the room.  When you let go of the mouse button the room is dropped into place.  Use this feature to position the rooms as needed to make a more comprehensible map.

zMUD uses the room information from the MUD to determine if you have visited a room before.  Sometimes it will create a second room on top of another because it looks like two different rooms to zMUD.  In most cases, it really is two different rooms, and you should drag the different rooms to other locations to make the map more readable.  zMUD flags multiple rooms on top of each other by drawing a black border around the rooms.

If the mapper made a mistake and created two different rooms that are really the same, make sure they are stacked on top of each other and select the Merge option from the Edit menu.  That will cause all of the rooms stacked together to be merged into a single room.

Dragging rooms to new locations and merging identical rooms are the most common manual editing tools you will use while creating your map automatically.  There are many more manual editing functions described in the next section.  Just remember that zMUD won't move any of your rooms around the map, it will just create them for you.  To move rooms where you want them you must drag them with the mouse.  However, the advantage of this is that once you have your map looking the way you want, you won't have to worry about the mapper messing it up.


DDE

Syntax: #DDE server topic macro

Example

This command allows you to communicate with an external program via Microsoft Windows Dynamic Data Exchange (DDE).  You must consult the documentation of your external program to determine the syntax of its macros, and its defined topic names.  The server name is usually the name of the program itself (without the .EXE).  There are also built-in functions for DDE:

%dde(server,topic,item)

Communicates with the specified server and topic and returns the requested item as the value of the function call.

%ddepoke(server,topic,item,value)

sends value as the new item to the specified DDE server and topic.

%ddemacro(server,topic,macro)

does the same as this #DDE command and sends a DDE macro to the server.

If you open a DDE connection with the %ddeopen(server,topic) function, then you do not need to specify the server and topic in the other functions.  This DDE connection is global to zMUD and available in any window.  When you are finished with a DDE connection, use the %ddeclose() function.

Note the zMUD also acts as its own DDE server.  The server name is zmud, the topic name is also zmud, and the only defined item name is data.  Using a DDEPoke you can set data to any command string and cause all variables and function calls to be expanded.  You can then yuo a DDE call to retrieve the resulting value of data.  Using DDEMacro you can send a command string to zMUD and cause it to be executed as if it were typed.


DDE example

Since DDE is somewhat obscure, I have included a bunch of useful examples:

#DDE NETSCAPE WWW_OpenURL {http://pobox.com/~~zugg/zmud.html}

If you have NetScape, this command will send the specified URL and cause it to be opened.  Note that because the tilde character is used in zMUD to quote special characters, you must use two of them to send one to Netscape.

#DDE ZMUD ZMUD {remove all;drop all}

Causes the indicated commands to be sent to zMUD and executed!  Watch out!

%dde(Excel,’TEST.XLS’,’R1C1’)

Tells Microsoft Excel to load the spreadsheet TEST.XLS and returns the value of cell R1C1 (row 1, column 1)

%ddepoke(Excel,’TEST.XLS’,’R1C1’,@tank)

Sends the value of the variable tank to Excel which overwrites R1C1 in spreadsheet TEST.XLS


DEFAULT

Syntax: #DE [special-char-string]

Related: #NODEF

Example

Saves your current special characters on the stack and sets the defaults.  This is useful at the beginning of a script to make sure standard parse characters are used while reading the script.  Use the #NODEF command at the end of the script to restore the characters.

A string can be given as an argument to specify the new values of the special characters.  This is a 9 character string which must be enclosed in quotes.  Each character in the string represents one of the special characters.  To leave the character as the default, you can use the x character as a placeholder.  The characters are:

1	Command Char (#)

2	Separator Char (;)

3	Variable Char (@)

4	History Char (!)

5	Parameter Char (%)

6	Movement Char (.)

7	Focus Char (:)

8	Quote Char (~)

9	Must be a space at the end


DEFAULT example

#DEF

Saves your special characters and restores the defaults

#DEF {xx$xxxxx }

Saves your special characters, then restores defaults, then sets the Variable char (3rd char in string) to $.


DISCONNECT

Syntax: #DI

Related: #CONNECT

Example

Disconnects your current session.  Careful, because it doesn’t ask if you’re sure!


DISCONNECT example

#TRIGGER {You are BLEEDING} {#DI}

Actually not a good idea, but this will disconnect you when you start bleeding, leaving you linkdead.  Note that on most MUDs the monster will keep hitting your linkdead character.


DOOR

Syntax: #DOOR direction [name]

Example

Creates a door on the map in the direction indicated.  You can optionally specify the name of the door.


DOOR Example

#DOOR n gate

creates a door to the north named "gate"


Directions

This Settings Editor dialog page allows you to edit the properties of a room exit or Direction.

Each direction must be assigned to a single speedwalk character, listed in the Direction field.  In order to reverse walk a path, you must also specify the speedwalk character of the reverse direction in the Reverse field.  In the Commands field, enter the MUD commands that are used to specify the direction.  If you want more than one command to trigger the given direction, separate the multiple commands with a vertical bar (|).  For example, if you want the commands n and north and nor to trigger the n direction, put n|north|nor in the Command field.  In the Map field, select the mapper direction that corresponds to this MUD direction.

The Comment field assigns a comment or note to document the function of the Direction and is optional.  The Class drop-down list at the bottom allows you to assign this direction to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.

Tip:  Sometimes you need to open a door while executing a path.  To do this, define a new direction with the character o in both the Char and Reverse Char fields, and then put open door in the Input Field.  Now when you are recording a path and you enter open door, the character o will be added to the path.


Directories

This Preferences page contains options that control where zMUD looks for certain files on your local disk.  Most of these preferences are global.

For each file you can tell zMUD to look in the ZMUD.EXE directory, the Current directory, or an Other directory that you specify.

zMUD stores this Directory information in a ZMUD.INI file stored in the same directory as ZMUD.EXE.  If you select a different location for ZMUD.INI, the ZMUD.INI in the ZMUD.EXE directory will still be used to set file locations before the second ZMUD.INI file is actually read.

These directory settings are mainly provided for system administrators that have set up zMUD on a network.  Note that each user of zMUD must still be registered in such a setup.  Do not attempt to share a single MUDCHAR.DAT file between several computers or zMUD will disable itself.  In general only change these directory settings from their defaults if you know what you are doing.


ECHO

Syntax: #EC string

Related: #SAY

Example

Echo the string to the top window.  Like the SAY command, except SAY echoes to the window it was issued from.  The difference is when performing trigger actions.  Using SAY, the trigger will echo the string to the window that issued the trigger.  Using ECHO it will echo to the window the user is currently viewing.


ECHO example

#TRIGGER {The glow fades} {#ECHO {Sanc out in window %window}}

When your sanctuary spell runs out in any window containing this trigger, the window that currently has focused is given the message that Sanctuary has run out.  The {} around the message is needed for zMUD to expand the variable %window.


ERASE

Syntax: #ERA filenum

Related: #FILE

Example

Erases the file opened as file number filenum.


ERASE example

#FILE 1 old.log

#ERA 1

erases file named old.log.  Note that the FILE command prevents you from accessing files outside the ZMUD directory, or from accessing EXE, HLP, or MUD files.


EVAL

Syntax: #EVAL expression

Related: #SHOW

Example

Evaluates the given expression and echoes the result to the output window.  Similar to the #SHOW command except the SHOW command simply expands its parameters while this command evaluates the parameter as an expression


EVAL Example

#EVAL 100/4

displays 25 to the window

#VAR a 100

#EVAL @a+1

displays 101 to the window


EXEC

Syntax: #EXEC command

Example

Executes the specified command.  Since the command can contain variables which are expanded, this command can be very powerful.

Note: Use this command at your own risk!

If you use this in a trigger, you open yourself up to abuse from other players that will try to set off yor triggers themselves.


EXEC example

#TRIGGER {^Zugg tells you (*)} {#EXEC %1}

Wow, what a trigger!  Whenever Zugg tells you to do something, you will do it.  Note the importance of using the ^ character to anchor the pattern to the beginning of the line.  Without this precaution, somebody could say ‘Aurora tells you ‘Zugg tells you to drop all’’ which would cause you to inadvertently drop everything you are carrying!


Edit Character
Edit Character (MUD Information)

Your MUD character has many properties that can be edited.  On this first screen you can edit the Internet Host and Post for the MUD, the MUD Name, and the Type of the MUD.  You can also lookup the Internet IP Address for the MUD Host, or Ping the MUD to see if it is currently running.

The tab control along the top of this window allows you to also edit your Character information, Files information, and Notes information.

The Host and Port fields are the most important.  Every MUD has an Internet Host Name and an Internet Port number.  The Host Name is a series of names (not numbers) separated by dots.  For example, www.zuggsoft.com is the Host Name of the Zugg Software web server.  In general, a Host Name refers to the name of a computer connected to the Internet.  A single computer is capable of running several different MUD games, all on the same computer system.  To specify the MUD game that you want, you need to use the Port Number.  Most MUDs will publish the port number that you need to use.  If a number is not given, the default Port Number is 23 (23 is the standard port number for Telnet sessions).

The MUD Type field allows you to select the general type of MUD that you are creating a character on.  This field is used for information only.

The icon used to display this character is shown on the right of the page.  Click the button over the icon to change the icon.  This will bring up an icon selection dialog.  Select the icon you want for this character from the list that is shown.  You can import your own icons into this list using the Import button.  You can only import .ICO icon files.  You can also delete icons you don't want in the list anymore, but you cannot delete any of the internal zMUD icons that are displayed at the beginning of the list.

Most computers run the Domain Name Service (DNS) in order to convert an Internet Host Name into the Internet IP address needed to actually connect to the game.  zMUD will automatically attempt to look-up the IP address for a Host when you connect.  You can manually look-up an address by clicking the Lookup button.  If your computer does not support the DNS system, or your MUD does not have a registered Host Name, just enter the known IP address (a set of 4 numbers separated by dots) into the Host field.  Entering an IP address into the Host Name field disables the automatic DNS lookup that zMUD performs.  Do not attempt to edit the IP Address field; that field is just used to display the results of a Lookup operation.

PING is an Internet protocol used to determine if a host computer is reachable.  Clicking the Ping button will sent an echo request to the Host computer and wait for a response.  This is done five times, and the number of times a response was received and the average time between the echo request and response will be displayed.  If you do not get five responses, then some of the echo request packets were lost on the Internet.  This can be caused by a noisy modem, bad connection somewhere on the Internet, or a very busy Internet router.  This type of packet loss can cause "lag" when playing the MUD.  Lag is a delay between commands that you send to the MUD and the response that it generates.  In general, you should try playing MUDs that do not have much lag.


Editing your Map

While the Automapper does a fairly good job automatically mapping simple areas, you will often want to tweak the map yourself to make it look better or more accurate.  Sometimes, for example when mapping a maze, you might turn off the automapper and create a map completely from scratch.  Once a map has been made, it is a very useful speedwalking tool, so even though you might have to create a map by hand, it still beats using paper.  This section will cover all of the manual editing functions.

To use any manual editing functions, your mapper must be in Map Mode so that the drawing tools are shown to the left of your map.

Selecting Objects

To select a room of a link between rooms, click on it with the left mouse button.  The selected object will highlight (default is red).  To select multiple objects, hold down the Shift key when you click on new objects.  Shift-clicking toggles the selection status of an object, so to de-select it, just Shift-click a second time.

You can also select multiple objects by drawing a box around all the objects you want selected.  Simply click in an open area on the map, hold down the left mouse button, and move the mouse to display the selection box.  When you release the mouse button, everything within the selection box will be selected.

Moving Rooms

To move a room (or all of the selected rooms), click on the room with the mouse, hold the left mouse button, and move the mouse to drag the room to a new location.  Release the mouse button to drop the room in the new location.

You can also move a room or selection of rooms using the Move dialog in the Edit menu.  This dialog allows you to specify the number of squares to move the room in any direction, including up and down.  Using the Move menu is the only way to move rooms to a different level (up or down).

Deleting Objects

To delete objects, select the objects as described above, then click the Delete tool in the drawing toolbar on the left of the map.  Or just press the Delete key on the keyboard.  Objects that you have deleted can be recovered by clicking the Undo button on the toolbar.  However, only one deletion can be undone.

Adding New Rooms

To add a new, blank room to the map, click the Add button (rectangle tool) in the toolbar on the left of the map and click on the map where you want to add the room.  Select Properties from the Edit menu to enter a room name and description for this blank room.

Linking Rooms

Connections between rooms are called links and are added with the Link (line) button in the toolbar on the left of the map.  To connect two rooms together, click the link tool, then click the edge of the first room (or just inside the edge) then click the edge of the second room (or just inside the edge).  A line will be drawn between the edges of the two rooms.  The top edge of the room represents north, the bottom edge: south, the right edge: east, the left edge: west, and so on.  The diagonal corners of the room represent the diagonal movement directions.

The above method for adding a link is called the two-click method (because you click twice: once on the first room, and once on the second).  You can also add a link using the click and drag method.  To do this, select the Link tool.  Then, click on the edge of the first room, but hold down the mouse button.  Then move the mouse to the edge of the second room and release the left button.

You also use the click-and-drag method to move a link.  Click on the end of the link you want to move and hold down the left mouse button.  Move the mouse to the new room you want the link connected to and release the button.  The link will be changed to point to the new room.

Links are deleted just like rooms: select the link then click the Delete tool or press the Delete key.

Links can Bend

Sometimes you need to connect two rooms that are not adjacent to each other.  While the mapper tries to draw the link properly, sometimes it will be drawn through other rooms making the map look ugly.  You can add bends to a link to change how the link is draw so that it can be drawn around other objects.

To add a bend to a link, right click somewhere on the link and select Add Bend from the popup menu.  When the link is selected, the bend is shown as a square box.  You can click on this box, hold down the mouse button, and drag it to another location on the map.  If the Snap To Grid option is on in the Options menu, the bend can only be placed in certain locations on the map to make it easier to line up straight lines.  You can turn off the Snap To Grid option to drag the bend to any location on the map.  You can add as many bends to a link as you want.  Using this feature you can even create a circular link!

To delete a bend that you no longer need, right click on the square box that represents the bend and select Delete Bend from the popup menu.

One-way links and Doors

Sometimes on a MUD you move in a direction and then cannot go back.  This is called a one-way link and is represented by an arrow on the map.  To change a link into a one-way link, right click where you want to put the arrow-head and select One Way from the popup menu.

To add a door to a link, right-click the link and select Door from the popup menu.  When you walk across a link that contains a door, the mapper will automatically send an "open door" command to your MUD that you can configure in the map properties.

Adding Labels

You can add text labels anywhere on the map by clicking the Text tool in the toolbar to the left of the map.  Then, click on the place on the map you want to put the upper-left corner of the label.  A text-edit box will be drawn on the map and you can type in the label you want.  Press the Return key to finish adding the label, or press Escape to abort.

To move a label, just drag and drop it like you would move a room.  Labels can be selected and deleted just like rooms.  To change the text on a label, click the label once to select it, then click it again to open the text-edit box.  When done making your changes, press Return to accept the changes, or press Escape to abort the changes and return the text to its previous value.

Stacking and Merging Rooms

Any number of rooms can occupy the same location on the map.  If there is more than one room in the same spot on the map, a black border is drawn around the room to indicate the stack.  To remove rooms from a stack, simply drag and drop the room somewhere else.

You can combine all rooms in a stack using the Merge command in the Edit menu.  The name and description of the room on the top of the stack is used for the combined room.

Editing Object Properties

Rooms and Links have properties that you can edit by right-clicking them and selecting the Properties option.  The properties of these objects are described in detail below:

Room Properties

The most obvious properties of a room are its name, description, and exits (links).  The first page of the Room Property dialog allows you to view and edit the room name and description.  Also, below the description, you can add notes about the room (such as what objects or monsters it contains).

On the second page of room properties you can edit the exits (links) attached to the room.  These Link Properties are described in detail in the next section.

On the third page of room properties you can change the appearance of the room.  By default, the room is displayed as a 3D box with the colors defined for the overall map.  You can change the color of the room by clicking the room color button, and can also turn off the 3D look if desired.

You can also add a label that is attached to the room.  Simply click on the direction you want the label to be drawn.  By default, the name of the room is displayed in the Label.  However, you can change this by editing the Shortcut Name field in the next page of the properties.

The fourth page of room properties allows you to edit miscelaneous information about the room.  The VNUM is used by wizards to identify rooms by number.  It is also used by all of the internal zMUD functions to access a room under script control.  Make sure that two rooms in the same zone do not have the same number.

The Shortcut Name is a short name for the room used to display the room label from the Appearance properties.  It is also used to identify the room with the #WALK command for scripted speedwalking.

The Cost to enter the room is used by the speedwalk algorithm to compute the shortest path between rooms.  If your MUD implements different movement costs for rooms you can enter the value in this field.  Note that at this time, zmud assigns costs to rooms and not links.

The number of mobs in the room and the number of objects in the room are left for compatibility with the old v4.x mapper and currently have no function in the new mapper.  However, the values are saved and may be used in the display of the map in a future version.

The Command to execute when you enter the room is a command (or series of commands or scripts separated by the command separater (;) character) that is sent to the MUD whenever you enter the room.  For example, if the room is a shop, you might put the "list" command in this field to display the shop inventory automatically when you enter a room.

The Reload flags on the right of the page are used to tell the mapper whether to reload part of the room information the next time the room is entered while in Map Mode.  zMUD uses these options with the #LOOK command to reload all properties of a room, but you can use them manually if you like.

Finally, the Room Name options on the right of the page allow you to override the default speedwalking detection for individual rooms.  Normally, the first line of the room description is used to flag the success of a speedwalk step.  You can use the room name and match either the beginning of the line, end of line, or both by changing these options.  They only effect this individual room, and not the other rooms on the map (which are controlled by the master map properties).

Link Properties

You can change the properties of a link by right-clicking and selecting Properties from the popup menu.  You can also edit links by selecting a room and displaying the Exits page of Room properties.

In any case, all of the links for a room will be displayed, with the currently selected Link highlighted.  You can change the link that you are editing by selecting it from the list on the left side of the dialog.

In the center of the dialog, the properties for one side of the link are shown, and on the right side the properties for the other end of the link are shown.  At the top of each section is the name of the room that the link is connected to.  The room in the middle is the room that the room properties and list of links is displayed for.  The room on the right is the destination room of the link.  As you move the mouse over these room names, the corresponding rooms will highlight on the map.  To move to the properties of the destination room on the right, click the Jump To Room button to the right of the room name.

For each end of a link you can control the direction used to draw the link and to speedwalk through the link.  The 8 cardinal directions, as well as up and down are shown as buttons.  As you click these buttons, the link will be displayed in the new direction on the map.  You can unselect all directions to prevent the link from being drawn at all.

The Other button is used to create links for non-standard directions.  If you click the Other direction, the link is shown as a small circle to the lower right of the room.  In the field next to the Other button you enter the command that will move you on the MUD to the destination room of the link.  For example, if you type "enter" to enter a room on your MUD, put the word "enter" in the Other direction box.

Note that entering a value into the Other Direction box overrides the normal movement command for the room no matter what link direction is selected.  For example, if you have "enter" in the Other box, but have the North button selected, the link will be drawn to the north of the room, but you will still need to type the "enter" command on the MUD to tranverse the link.  Going North will not traverse the link.  Thus, the way a link is drawn and the movement command used to cross the link are two different values.  You can really get yourself confused with this, so be careful.  For example, you can put "west" in the Other Direction box, but show the link to the East!  What power.

Below the Link Directions are the options for One Way links and Doors.  Note that doors can be one sided (select Door on one end of the link, but Normal on the other end).  The open door command is only issued when traversing a link that is marked as a door.  By default, the open door command just uses the direction of the door.  For example, a door to the north is opened with the "open north" command.  Some MUDs require the name of the door to be used.  Place the name of the door in the field next to the Door button, and use the %2 parameter in the Door Command string of the Map properties to represent the name of the door in the open command.  Doors can also be locked, but currently only two-sided doors can be locked.  The locked door is only displayed visually and has no other function at this time.

Sometimes links connect rooms across the map rather than adjacent rooms.  You can create a "broken" link with a label by entering a value into the Link Label field and turning off the Draw Link option.  For example, you can put the text "A" in the Link Label and turn off the Draw Link option.  At each end of the link, a short line stub will be drawn on the room in the proper direction, and the label "A" will be drawn next to the label.


Emulation

This Preferences page contains options that control how zMUD emulated various terminal types or protocols.  Most of these preferences are local to the specific character.

ANSI Color (local)

Controls whether ANSI color codes are recognized from the MUD.  Default is on.

VT102 emulation (local)

Controls whether VT102 terminal codes are recognized from the MUD.  Default is on.

MrTerm emulation (local)

Controls whether shortened VT102 codes as used by the MrTerm (Mortal Realms terminal) program are recognized.  Default is on.

Telnet protocol (local)

Controls whether telnet options are recognized from the MUD.  Telnet options are used to communicate the terminal type and screen size to the MUD but some MUDs do not follow the strict telnet protcol and do not support this feature.  Default is on.

Character mode (local)

Controls whether individual characters are immediately sent to the MUD or whether entire lines are set (the default).  In Character mode, the cursor is places within the MUD output window instead of the command line.  This mode is used for running some character editors such as emacs or vi from zMUD and more strictly emulates a normal telnet client.

Emulate control codes (local)

Controls whether any control codes are recognized by zmud or whether they are displayed on the screen.  Default is on (recognize control codes).  This option is normally used for debugging purposes.


Expressions

[Command Reference] [Function Reference] [Predefined Variables]

zMUD implements full expressions.  Expressions can contain variables, and most common operators.  Parenthesis can be used to override default operator presedence.  When evaluating an operation, if all parameters of the operation are numeric, then a numeric operation is used, otherwise a string operation is used.  The following operators are recognized (v1 and v2 represent variables, or other expressions):

v1 + v2	add value1 to value2.  If values are not numeric, the text values are concatenated.

v1 - v2	subtract value2 from value1

v1 * v2	multiply value1 by value2

v1 / v2	divide v1 by v2.  Any fraction is discarded.

v1 \ v2	divide v1 by v2 and return the modulo

v1 & v2	returns the logical AND of value1 and value2

v1 and v2	same as above

v1 | v2	returns the logical OR of value1 and value2

v1 or v2	same as above

v1 xor v2	returns the logical XOR of value1 and value2

v1 = v2	true if value1 is the same as value2

v1 > v2	true if value1 is greater than value2

v1 < v2	true if value1 is less than value2

v1 >= v2	true if value1 is greater than or equal to value2

v1 <= v2	true if value1 is less than or equal to value2

v1 <> v2	true if value1 is not equal to value2

v1 != v2	true if value1 is not equal to value2

v1 =~ v2	true if the string v1 matches the pattern in v2

-v1	return the negative of value1

!v1	return the logical NOT of value1

If the pattern matching=~ operator is used, any saved pattern parameters are available in the true-command or false-command if expression is part of an IF command.  However, you must use %% in front of the pattern to access the trigger pattern match variable rather than the alias parameters.

The constants: true, yes, on are defined with a value of 1, and the constants: false, no, off are defined with a value of 0.


FILE

Syntax: #FI number name

Related: #READ #WRITE

Example

Open a file for reading and writing.  zMUD provides 10 files.  Files numbered 1-5 are text files that can be read sequentially, or appended to.  Files numbered 6-10 are string record files that can be read and written randomly.  If the numbered file is already opened, the previous file is closed.  The filename given in name is restricted to the current directory containing ZMUD.EXE and cannot refer to a EXE, HLP, or MUD file.  This protects you from accidentally modifying important files on your disk.


FILE example

#FILE 1 test.txt

assigns text.txt to file 1.


FIND

Syntax: #FIN

Example

Finds the current location on the map.  Issues the MUD Look command and compares the current MUD room description with the map database and sets the map location to the matching room.


FIND example

#FIN

Same as using the Find command in the mapper menu.


FORALL

Syntax: #FO list command

Example

The specified list contains items separated by | characters.  This command loops through the list, assigning each element in turn to the %i variable, and executes the command.


FORALL example

list=“sword|ring|shield”

#FORALL @list {repair %i}

Loops through the equipment in the list and repairs each one in turn.


FREEZE

Syntax: #FR [value]

Example

This command causes the output screen to split, displaying the scrollback buffer.  Text from the MUD continues to be received, and triggers continue to execute, however, the screen does not scroll.  If value is 0, the screen is unsplit, otherwise the screen is split.  If value is omitted, the current split state is toggled.  This command is the same as pressing Control-Z, selecting Freeze from the Window menu, or clicking in the lower right corner of the output window next to the scroll bars.


FREEZE example

#FR 1

splits the window

#FR

toggles the current split window state


FUNCTION

Syntax: #FU name value

Example

This command is used to create a user-defined function.  Name is the name of the function, and value is an expression to assign to the function.  You can use the parameters %1 to %99 to refer to arguments passed to your function


FUNCTION Example

#FU fact {%if(%1<=1,1,%1*@fact(%eval(%1-1)))}

creates a user defined function to compute the factorial of a number.  If the argument is less than or equal to one, one is returned, otherwise the argument is multiplied by the factorial of the argument minus one.  Note that arguments to functions are normally just expanded and not evaluated, so we need the %eval function to force the subtraction of one.

#EVAL @fact(5)

will display 120 given the above definition

#SHOW @fact(5)

will display 5*4*3*2*1 given the above definition


Features

zMUD has unique features for both beginning MUD players, as well as for power wizards builders and coders accustom to clients like TINTIN.  Here is a list of major features:

Macro keys

assign text or commands to any key combination on the keyboard

Aliases

assign text or commands to shortcut names to save typing

Triggers

execute commands based upon patterns received from MUD.  Sophisticated pattern matching functions are provided.

Variables

both text and numeric variables saved with your session

Functions

Built-in as well as user defined functions.  zMUD contains a powerful programming language.

Buttons

a unique GUI interface allows commands to be executed by clicking buttons, or allows you to easily toggle features such as Triggers.

Paths

let you record directions to MUD locations, and even play them back in reverse.  Called speedwalking in some clients.  Path commands can be customized.

Mapper

A built-in mapping module creates maps of your MUD as you walk around and provides manual editing features for those tough-to-map locations.

Multiple Chars

Using a Multiple Document Interface (MDI), zMUD allows you to play multiple characters at the same time in different windows.  Commands can easily be sent between windows, or to all windows.

Spam protection

prevents you from sending the same string to the MUD too many times and being flagged a spammer

ANSI

full ANSI color support.  Colors are user-configurable.

VT100

full VT100 terminal emulation, including cursor movement and scrolling regions.  Great for MUDs with status lines

Telnet

Works in both line-based MUD mode as well as character-based Telnet mode.  You can use zMUD to log into your Internet Provider’s UNIX shell account.

Multimedia

Allows you to trigger sounds, MIDI, movies, etc.

Scripts

store commands in a text file and read them in as a script

Character Database

keeps a database of all of your MUD characters, and detailed notes for each one.

Tab completion

allows you to enter long strings of text by typing the first few characters and then pressing <TAB> to fill in the rest.  Shift-<TAB> recalls the last long word sent by the MUD that started with a given character.

History

command history of last commands with customizable storage limit

Logging

log your session to a file for review at a later time.  Log file supports ANSI color

Timer

a built-in timer allows you to take control of ticks

Status line

customizable line shows the status of variables and triggers

Customizeable

colors, fonts, sounds, special characters can all be modified and saved.

Settings files

saves all settings (aliases, macros, etc).  You can have a single settings file for several characters.

Online Help

extensive online help system provides both reference and examples.  Context-sensitive command help is also a keystroke away.

Command Wizard

command and function wizards show zMUD programming syntax and help you create commands and functions

Connection Wizard

contains a master list of MUDs to make connections easier

Compatability

90% compatibility with TINTIN and TINTIN+ text-based clients.  Includes a TINTIN++ script importing and conversion facility.

WinSock

uses WinSock networking to provide interoperability with all systems, as well as SLIP/PPP with Trumpet WinSock software

Fast

Benchmarked against other Windows MUD and Telnet clients as the fasted scrolling client available

GUI

provides both a GUI interface as well as a traditional command line interface.  Output can be scrolled and word-wrapped, and window can be frozen to prevent unwanted scrolling, and splitscreen shows scrollback at same time as live text.  Scrollback buffer can be as large as 16,000 lines of text (unlimited in 32-bit version)

Windows 95

developed and tested as both a 16-bit and 32-bit Windows '95 application.  16-bit version also works on Windows 3.x.  32-bit version tested with Windows NT 4.0.


Feedback

This dialog allows you to send feedback to the author of zMUD.  It is very important that you enter a proper email address or the author will not be able to send a reponse back to you.  Enter your email address, the subject of the email, and the text of the email, then click the Send button.  Information about your registration status, zMUD version, and Windows version will be sent along with your message automatically to help the author debug your problem.

Use the Option tab to specify a different SMTP gateway if the default does not work.


Files information
Edit Character (Files Information)

Your MUD character has many properties that can be edited.  On this screen you can change the name of your primary and inherited settings file and the name of a folder to organize the files for this MUD.

The tab control along the top of this window allows you to also edit your MUD information, Character information, and Notes information.

A Settings File is used by zMUD to store your preferences, aliases, macros, triggers, paths, buttons, etc.  By default, a Settings File is created for you based upon the name of the MUD.  For example, if you create a character on the Mirkwood MUD, a Settings File called MIRKWOOD.MUD will be created.  If you want to have several characters on the same MUD and do not want to share a Settings File, change the primary filename to something unique for your character.  You can click the folder icon to the right of the input box to browse your local disk for a file.  However, you should generally only use a settings file within the current directory or folder.  Loading a settings file from a different directory can cause wierd behavior in zMUD.

Each character can have two Settings Files: Primary and Inherited.  When zMUD loads your character, it first loads any settings in the DEFAULT.MUD file.  This is used to initialize many zMUD settings and cannot be disabled.  Next, settings in your Inherited Settings file are loaded.  Most people do not use this feature, but it allows you to set up common settings that you want to share between several characters.  Inherited settings files can be in the current directory or folder, or can also be stored in the directory containing the ZMUD.EXE file.  After loading your Inherited Settings file, then your Primary Settings file is loaded.  It contains settings specific for this character.

Since you can end of with many files for a particular MUD (including map files, sound files, and settings files), zMUD provides an easy way to organize your MUDs into their own folders or subdirectories.  By default, zMUD creates a Folder based upon the name of the MUD you are playing.  If you want to move your settings into a different folder, enter the name in the Folder field.  IMPORTANT NOTE: If you rename your folder within Windows, the value stored in zMUD is not updated, so make sure you update it by hand or zMUD won't be able to find your settings info.  In general, you should not modify files or directories in your zMUD directory by hand.  Always use the Folder field in this database screen to change the name of your zMUD folders.

At the bottom of this screen you can change the amount of time since you last connected to this character that zMUD uses to flag the character as old.  Old characters are displayed in the main character screen with an exclamation (!) mark next to them.  This is a reminder to log onto the character to prevent it from being deleted by the MUD administrators.  Each MUD has a different policy on deleting old characters.  The zMUD default for flagging old characters is 10 days.


Fonts

This Preferences page contains options that control the text fonts used by zMUD.  Most of these preferences are local to the specific character.

Output Window Font

Controls the output font of the current MUD window.  The default font is Courier 10pt.  Proportional and True Type fonts result in somewhat slower scrolling than fixed-space screen fonts.

Command Input Font

Controls the font used in the command line.

Edit Window Font

Controls the font used by the screen editor built into zMUD.

Status Window Font

Controls the font used by text in the Status Window.

Vertical Space adjust

Controls the vertical spacing of the Output Window font.  Some Windows fonts do not report the proper spacing and end up with extra space between the lines.  To remove this space, set this value to a negative number.  Change it until the spacing of the font is more appealing.  Note that missetting this parameter can also cause lines to display over each other or cut off characters that decend below the text line.

To change the font, just click on one of the font boxes or the font button to the left of the box.  A standard Windows font change dialog box will be shown.  Select the desired font and size and click OK to save your change.  Changes to fonts take effect immediately.  Note that style changes (bold/italic) to the Input font are currently ignored.


Foreground
Foreground Colors

This Preferences page contains options that control what text colors are used by zMUD.  Most of these preferences are local to the specific character.

Although ANSI defines 8 standard colors and 8 highlighted colors, zMUD allows you to map these values to any color your system is capable of displaying.  To change one of the colors, click the button next to the color number and select a new color from the displayed color pallette.

To set the colors to ANSI default values, click the "Make regular colors Dim" button.  To flip the dim and highlighted characters to make a default ANSI MUD look brighter, click the "Make regular colors Bright" button.

If the "Use colors from Inherited settings file" option is selected, the default mapping from the DEFAULT.MUD file will be used regardless of what values you change in this page.  To actually use the colors you have set, turn off the inherited option.


Function Reference
Functions Reference

[Command Reference] [Predefined Variables] [Expressions]

The following functions are defined within zMUD:

Color/Appearence:

%ansi(fore,back)

return the ANSI codes for the given colors

%btncol(button,back,fore)

change the color of a button

%btnimage(button,filename)

change the image assigned to a button

%color(fore,back)

converts a descriptive color into an attribute value

DDE:

%ddeopen(serv,topic)

open a DDE connection to the specified server and topic

%ddeclose

close a DDE connection

%dde(serv,topic,item)

fetch data from a dde server

%ddemacro(serv,topic,s)

tell the specified dde server to execute the macro in s

%ddepoke(serv,topic,item,value)

poke the data in value to a dde server

Lists:

%ismember(s,list)

return true if s is a member of the given string list

%additem(s,list)

add the string s to the specified string list

%delitem(s,list)

delete item s from the given string list

%numwords(list,"|")

return the number of items in the given stringlist

%word(list,i,"|")

return the ith word of the given stringlist

String Manipulation:

%len(s)

return the length of the string s

%pos(p,s)

return the position of pattern p in string s.  Return 0/false if not found

%begins(s1,s2)

true if string s1 starts with string s2

%ends(s1,s2)

true if string s1 ends with string s2

%concat(s1,s2,s3..)

return all strings concatenated together (up to nine parameters)

%copy(s,i,n)

return a portion of string s, starting at character position i, and returning n characters.  Strings are 1-based.

%delete(p,i,n)

return the string s with n characters starting at position I deleted.

%remove(p,s)

Remove substring p from string s

%insert(p,s,i)

return the string s with pattern p inserted at position I.

%replace(s,p,r)

return s with all occurrences of p replaced with r

%left(s,n)

return the leftmost n characters of the string s

%leftback(s,n)

return the leftmost part of s, n characters from the end

%right(s,n)

return the rightmost part of s following n characters

%rightback(s,n)

return the rightmost n characters of the string s.

%repeat(s,n)

return s repeated n times

%trim(s)

trim spaces from beginning and end of s

%trimleft(s)

trim leading spaces from s

%trimright(s)

trim trailing spaces from s

%numwords(s,d)

return the number of words in the string s delimeted by the substring d.  Default for d is a space.

%word(s,i,d)

return the ith word of the string s delimeted by substring d.  Default for d is a space.

String Formatting:

%upper(s)

return the string s in uppercase

%lower(s)

return the string s in lowercase

%proper(s)

convert s to proper case (lowercase except for first letter)

%format(f,a,b,c,d...)

use a format string to format the values of a,b,c, etc.  Format strings consist of a string of characters, with special format specifiers of the type %w.dx where w is the width of the field, d is the number of decimal places, and x is the format type.  Format types for x include: s for string, n for number (commas every 3 digits), f for floating point, m for money (currency).

%time(format)

return the current date/time.  If format is nil (or missing), a long format is used.  Otherwise, use characters such as dd, mm, mmm, yy, hh, mm, ss, etc in the format string to return that part of the current date/time

User Input:

%prompt(v,s,p)

prompt the user for a value for the variable v.  If s is present, it is used as the caption of the prompt. If p is present, use password mode so that the value entered by the user is not echoed.

%pick(s1,s2,s3,...)

display a picklist and let the user choose one or more strings from the list.  If more than one are chosen, they are returned separated by |.  See #PICK for more options

%yesno(s)

Displays question in string s and returns true or false depending upon which button is clicked. See #YESNO for more options.  If more than two buttons are displayed, the result is the button number, making this useful in conjunction with #CASE.  With only two buttons, 0 or 1 is returned, making this useful in conjunction with #IF.

File I/O:

%filesize(i)

returns the number of lines or number of records in the ith file (opened with the #FILE command)

%grep(i,s)

search the ith file and return lines that match the pattern in s

%read(i,rec)

read the specified record from the ith file.  If rec is omitted, zero is assumed.  For text files, rec is the line number to be read (0 reads the next sequential line).

%write(i,s,rec)

write string s to the ith file at record rec.  For text files, rec is ignored and s is appended to the file.  If rec is 0, s is written to the end of the file.

Math:

%abs(i)

return the absolute value of I

%max(a,b,c,d...)

return the maximum value of the parameters

%min(a,b,c,d...)

return the minimum value of the parameters

%mod(a,b)

return a modulus b

%random(i,j)

return a random integer >= I and <= J.  If J is omitted, then I specifies the maximum value, and 0 is used as the minimum value.

Conditionals:

%if(expression,true-value,false-value)

if expression is true, return the true-value otherwise return the false-value

%case(i,s1,s2,s3...)

if I=1, return s1, if I=2, return s2, etc.  Up to 8 strings can be given

Type checking and conversion:

%defined(s)

returns true of s is a defined alias, variable, macro, or path

%isnumber(s)

true if s represents a valid number

%null(s)

return true if s is the null string

%number(s)

convert a string to a number

%ascii(s)

returns the ascii value of the first character of the given string

%char(i)

return the ASCII character associated with the number I.  This function is also used to translate the system characters (;:@%!.)to their current values if they have been changed.

Miscellaneous:

%alias(s)

expand the value of alias s

%expand(s)

expand variables and functions with the string s

%literal(s)

returns the parameters untouched by expansion or evaluation

%numbuttons()

returns the number of defined buttons

%trigger(class)

return true if the specified trigger class is enabled

%clip(s)

return or set the text in the clipboard

%exec(s)

executes arguments as commands and returns results separated by | character

%eval(p)

evaluate parameter p as an expression and return the result

%numparam()

returns the number of parameters passed to an alias

%param(n)

return the nth parameter passed to an alias

%getglobal(name)

return the value of global variable name (stored in the INI file)

%setglobal(name,value)

set the value of the global variable name (stored in the INI file)

Mapper:

The following functions are defined to access the data in the mapper.  Items in brackets [] are optional.  If the room or zone parameters are omitted (or set to ‘’) then the current room or zone is used.  Whenever a parameter specifies the room number, the ID (short name) of the room can be used instead.

%lastdir()

Returns the current direction on the mapper command stack

%look(s)

sets or returns the "look command" used by the mapper

%numrooms()

Return the number of rooms in the current zone

%roomname( room, [s])

Return or set the name of the room to string s

%roomdesc( room, [s])

Return or set the description of the room to string s

%roomnum( room)

Returns or set the number of a room

%roomid( room, [s])

Return or set the short name (ID) of the room to string s

%roomcom( room, [s])

Return or set the command assigned to the room to string s

%roomnote( room, [s])

Return or set the Notes of the room to string s

%roomexit( room, [s])

Return or set the exit string of the room to string s.  The exit string is a string list, with each direction seperated by |

%roomobj( room, [i])

Return or set the number of objects in the room to i

%roommob( room, [i])

Return or set the number of mobs in the room to i

%roomcost( room, [i])

Return or set the cost of entering a room to i

%roomkind( room, [i])

Return or set the type of the room to i.  0 = normal, 1 = water, 2 = fly, 3 = trap.  Add 128 to set Do Not Enter flag.

%roomflag( room, [i])

Return or set the Reload flag of the room to i (0 = false, 1 = true)

%roomlink( room, dir, [i])

Return or set the link in direction dir to the room number i.  To delete a link, i=-1, for an unknown link, i=-2

%roomportal( room, s, [i], [z])

Return or set a non-standard exit (portal).  Assign the room number i and zone number z to the non-standard exit string of s.

%walk( i)

Return the speedwalk string needed to get to room i

%numzones()

Return the number of zones in the map

%zonename( zone, [s])

Return or set the name of the zone to string s

%zonenum( zone)

Return the number of a zone


GAG

Syntax: #GA [pattern] or number

Related: #UNGAG

Example

If the pattern is omitted, this command deleted the last line received from the MUD.  If pattern is included, any line from the MUD matching the pattern is deleted from the input screen.  This allows you to remove text that you don't want to see.  The last syntax is equivalent to #ACTION pattern '#GAG'.

The numeric argument to the GAG command specifies the number of lines to GAG.  If the number is omitted, a single line is gagged.  If the number is negative, the indicated number of lines prior to the current trigger line are gagged,


GAG example

#GA

removes the last line received from your screen.

#GA Zugg

removes any lines received from the MUD containing the string Zugg

#GA gossips

removes any lines received from the MUD containing the string gossip.

#TRIGGER {chat} {#GAG 2}

removes any line containing the string "chat" along with the next line.

#TRIGGER {chat} {#GAG -1}

removes the line prior to any line containing the string "chat"


Getting Started

The very first time you start zMUD, you will need to read and accept the licensing terms.  If you have not registered your copy of zMUD, you will then see the registration dialog.  Registration can be done by either running the REGISTER.EXE program provided with zMUD and following its instructions, or by using your Web Browser.  If you want to register using a credit card, click the URL shown in the Register dialog and your Web Browser will be connected to the proper Internet site (only tested with Netscape and Internet Explorer – does not work on Windows 3.x).

After the registration dialog, you are presented with zMUD’s main welcome dialog.  Behind this dialog you can see the texture-mapped background of the main window, with a menu bar along the top, and the command input window along the bottom of the screen.  As you connect to MUDs, individual MUD windows will be displayed on top of the main window’s background.

The steps in getting started with zMUD are:

Network Setup

Quick Start

Create a new character

Character Database

Basic usage

User Interface

Introduction to Macros

Introduction to Aliases

Introduction to Variables

Defining and Using Paths/Speedwalking

Introduction to Triggers

Introduction to Buttons

Introduction to Multiplaying

Introduction to Mapping


H+

Syntax: #H+

Related: #H-

Example

Retrieves the next command from the command history.  This only works if you have previously used #H- to retrieve the previous command.  This command is normally assigned to the down-arrow key.


H+ example

test1

test2

#H-

#H+

the #H- retrieves the test1 command, while the #H+ retrieves the test2 command.


H-

Syntax: #H-

Related: #H+

Example

Returns the previous command from the command history buffer.  This command is usually assigned to the up-arrow key.


H- example

test1

test2

#H-

Retrieves the command test1 from the history buffer.


HELP

Syntax: #HE [command]

Example

Without any parameters, this command displays the Help table of contents.  If you specify a command, help on that command is displayed.


HELP example

#HELP alias

displays help about the alias command


HIGHLIGHT

Syntax: #HI [pattern]

Related: #COLOR

Example

If pattern is omitted, this command makes the last line received from the MUD bold.  If pattern is included, any line matching the pattern received from the MUD is made bold.  This last syntax is equivalent to the command #ACTION pattern '#HIGHLIGHT'.


HIGHLIGHT example

#HI

make the last line received from the MUD bold.

#HI Zugg

highlight any line received from the MUD containing the string Zugg.


HISTORY

Syntax: #HIS

Example

Displays the last 20 commands in the output window.  The number preceeding each command is the command line number.  You can execute one of the previous commands by preceeded the command line number with the history character, which defaults to !.  !! executes the most recent command.  You can also execute a previous command using !pattern where pattern matches the text at the beginning of a previous command.

You can also pop up an interactive history dialog by right clicking in the output window, or by left clicking on the arrow button at the left of the command input line.  The dialog shows the last 20 commands.  If you single-click on a line, the command is copied into the edit line at the top of the dialog.  You can then edit the command and press <Enter> to execute it.  If you double-click on a command, it is sent directly to the MUD without allowing you to edit it, and the history dialog will close.  To close the dialog without executing a command, right click on it.

Tab completion can also be used with history.  If you use the history character (!) to specify a command, either numerically, or by using a pattern, then press <TAB>, the matching command will be copied into the command input buffer for editing.


HISTORY example

#HI

displays the last 20 commands

!!

executes the last command again

!3

executes the third command in the history buffer

!k

executes the last command beginning with the string k

!k<TAB>

retrieves the last command beginning with the string k for editing in the command line.


HOST

Syntax: #HO

Related: #CHAR #PW

Example

Send the name of the current MUD host.


HOST example

If the current host name is foo.bar.edu then #HO sends the string foo.bar.edu to the MUD.


IF

Syntax: #IF expression true-command [false-command]

Example

Allows conditional execution.  If the expression is true, then the true-command is executed.  If the expression is false, then the false-command (which is optional) is executed.  Expressions can contain variables and operators.


IF example

#IF @autosplit {split @gold}

If the @autosplit variable is non-zero, then the value of @gold is expanded, the string split is sent to the MUD followed by the value of @gold.

#IF (@gold < 100000) {emote is poor} {emote is RICH!}

If the value of the @gold variable is less than 100000, then the string emote is poor is sent to the MUD, otherwise the string emote is RICH! is sent to the MUD.

#IF (@line =~ "You receive (%d) coins") {split %1}

If the value of the variable @line matches the pattern You receive %d coins, then the number of coins matched is stored in the %1 parameter, and the string split is sent to the MUD, followed by the parameter.  Note the nested quotation marks needed to properly parse this command.


IGNORE

Syntax: #IG

Related: #T+ #T-

Example

Toggle the execution of all trigger actions.


IGNORE example

#IG

start ignoring all triggers.

#IG

turn execution of triggers back on again.


INPUT

Syntax: #IN string

Example

Copy the string into the current command buffer, replacing the current contents.


INPUT example

#IN get @item

Expand the value of the @item variable and place the command get followed by this value into the current command buffer.


IP Address Lookup

This Preferences page contains options that control how zMUD converts host names into IP addresses.  Most of these preferences are local to the specific character.

In order to connect to a MUD, zMUD needs to know the IP address (four numbers separated by dots) of the MUD.  However, you normally use a Host Name to refer to a MUD since the actual IP address of a MUD can change if they move to a new server.  So, zMUD must normally convert a host name into an IP address.  The Internet protocol used to perform this conversion is know as the Domain Name Service (DNS).  zMUD queries your default DNS server and gives it the host name.  The DNS server responds with the current IP address of that host name.  If your DNS server cannot be contacted, then zMUD cannot convert host names and you must then enter the IP address itself into the Hostname field.

The DNS protocol is called an "unreliable" protcol because successful transmission of the information is not guarenteed by the network.  If you have a bad network connection, packets can be lost and DNS packets are not automatically retransmitted.  Thus, zMUD tries several times to contact the DNS server if the first attempt fails.  The parameters on this screen control these retries.

zMUD starts with a quick DNS conversion attempt and waits only the number of seconds in the "Min Timeout" field for a response.  If you have a fast DNS server and a good network connection, this first attempt will usually succeed.  If it fails (no response within the Min Timeout number of seconds), then zMUD increases the delay time for a response by the "Timeout Inc" value and tries again.  If there is still no DNS response, zMUD again adds the Timeout Inc value and continues doing this and retrying until the Max Timeout value is reached.  If a successful DNS conversion cannot be made in the Max Timeout number of seconds, zMUD gives up and displays an error dialog asking you to input the IP address yourself if you know it.

The default parameters are Min: 1, Inc: 1, Max: 5.  Thus, zMUD will first try for one second, then two seconds, then three seconds, then four seconds, and finally for five seconds.  If you DNS server is down or misconfigured, zMUD will therefore wait 15 seconds before displaying the lookup error message (1+2+3+4+5 = 15).


Importing Settings

This dialog allows you to import settings from another MUD file.  The settings in the file being imported are shown on the left.  The settings to be imported into memory are shown on the right.  You can highlight items in either list, the click one of the arrow buttons in the middle to copy it from one side to another.  The settings that you have copied to the list on the right are imported into memory when you click the Import button.

The filter list below the left window selects the type of information being imported.  You can import aliases, triggers, buttons, macros, variables, paths, colors, etc.


Introduction to Aliases

Aliases are another way to simplify your life of MUD playing.  Basically, aliases allow you to assign any command to a shortcut abbreviation.

The easiest way to create an alias is to type the command or words you want to make a shortcut for, then press Control-A, or select Make Alias from the Action menu.  You will be prompted for the shortcut abbreviation you wish to assign the command to.  For example, enter the text fill waterskin statue and press Control-A.  Then enter fs and click OK.  Now, whenever you enter fs in the command buffer, the string fill waterskin statue will be sent to the MUD.

Note that aliases are only translated if they are the first word in a command.  In the example described above, if you entered the text say fs on the command line, the string say fs is sent to the MUD and fs is not translated.

Alias Preference dialog

You can edit all of your aliases using the View/Aliases menu command.  This brings up the alias dialog.  All of your aliases (like fs from the above example) are displayed in the list on the left.  As you click on these aliases you can edit them on the right.  To define a new alias, click the New button and enter the name and commands for the alias.  You can copy an existing alias using the copy button, and delete an alias using the button with the picture of a trash can on it.

This is an example of a standard zMUD Preferences dialog.  It has a list on the left with edit controls on the right.  The OK, Cancel and Help buttons are along the button.  Along the top of the dialog is a menu strip that lets you access the other preferences such as macros, triggers, etc.  To the left of the menu strip is a button with a stick pin on it.  When you click this button, the window will stick to the top of the screen and not get covered up by other windows.  This button toggles so if you click it again the dialog returns to a normal window that can be obscured by other windows.  Note that the status of the stick button and the position of the dialog is saved in your ZMUD.INI file.  Along the bottom of the dialog is a help bar that displays information about the field that the mouse is positioned over.

The ALIAS command

Another way to define an alias is using the #ALIAS command.  Commands are typed entirely in the command input line at the bottom of the screen, but perform a function for zMUD and normally don't send any text to the MUD.  Commands are provided for users of text-based MUD clients like TINTIN, and are similar in syntax.  To create an alias with the ALIAS command, type #ALIAS shortcut {command text}.  The command text will then be assigned to the shortcut abbreviation that you supply.  You can also list all aliases by just entering #ALIAS, or you can list the definition of a single alias using #ALIAS shortcut.

Aliases can also contain Parameters.  Parameters are the text following the shortcut.  For example, if you enter fs foo bar, fs is the alias shortcut, foo is the first parameter, bar is the second parameter.  Parameters are assigned to specific numeric variables %1 through %99.  In the previous case, %1 would contain foo, and %2 would contain bar.  You can use these parameters in the alias itself.

For example, define the alias #ALIAS k {kill %1}.  Now when you enter k rabbit, the command kill rabbit is sent to the MUD.  Now, this isn't a very useful example, because if you add text after an aliases (like rabbit in the above example) and the alias doesn't use it as a parameter, the extra text will just be appended to the result of the alias translation.  Thus #ALIAS k kill followed by k rabbit will do the same thing.  However, with parameters you can get more sophisticated.  For example, the alias #ALIAS kk {kill %1;kick %1} followed by kk rabbit will send the commands kill rabbit and kick rabbit to the MUD.

One last tidbit...if you assign a command to the alias atconnect, it will be executed whenever you connect to the current MUD.  Other special aliases include: atexit which is executed when you exit zMUD, and atdisconnect which is executed when you disconnect from the current MUD.


Introduction to Buttons

Combining the concepts of aliases, triggers, and variables are Buttons.  Buttons not only make it easier for novice users to use these features, but provides significant functionality to power users that is not found in text-based clients such as TINTIN.  Buttons can be clicked to execute a command, their caption can display the value of a variable, and they can act as a toggle to turn a feature (like triggers) on and off easily.

To define a button, right click on the button you wish to edit, or select Make Button from the Action menu.  There are currently two types of buttons: push buttons and toggle buttons.  A push button is clicked to execute a command and releases as soon as you release the mouse.  A toggle button changes between being off (up) or on (down).  The type of button is controlled by the Variable field.  If you assign the name of a variable to this field, the button will be a toggle button, and the variable will contain the state of the button (0 for up/off, 1 for down/on).

In the Off Caption, enter the text you wish to display on the face of the button when the button is in its normal, off position.  The next field is for the caption to be displayed when the button is pressed in, or on (this field is grayed out if the button is not a toggle button).  If you leave the On Caption blank, it will use the same value as the Off Caption.  You should limit captions to about 10 characters so that they fit on the button face.  The value of the caption fields are evaluated, so you can put an expression containing variables and the result will be displayed on the button.

We'll skip the Value field for a moment, and move to the On Command field.  Enter the command you wish to execute when the button is pressed (from Off state to On state).  In the Off Command field, enter the command you wish to execute when then button is released (from On state to Off state).

The Value field is used to externally control the state of the button.  You can do this with just the variable (e.g. if you assign 1 to the variable in the Variable field, the button will activate itself, if you assign 0 to this variable the button will deactivate itself).  However, the Value field allows greater control as to whether the button is pressed or not.  If the expression in the Value field is true, the button is in the On state (pressed).  If the expression in the Value field is false, the button is in the Off state (released).

So, how about an example?  In the Introduction to Triggers we created an autosplit trigger.  We can make this trigger much more user friendly by using it with a button.  Select Make Button from the Action menu.  In the Off Caption field, enter the text AutoSplit.  In the On Command field enter emote is auto-splitting;#t+ autosplit.  In the Off Command field enter emote stops auto-splitting;#t- autosplit.  In the Variable field, enter autosplit.  Click OK to save the button definition.  Now you have a button labeled AutoSplit, and it is currently off.  Click the button.  The command emote is auto-splitting is sent to the MUD (telling your group members what you are doing), and the autosplit trigger is enabled.  The semi-colon (or Separator character) allows you to specify more than one command on the same line.  Note that the button now appears in the On state (is pressed in).  This gives you the visual clue that your AutoSplit function is enabled so that you don't forget.  Click the button again.  The text emote stops autosplitting is sent to the MUD, and the autosplit trigger is disabled.  The button now appears in the Off position.  Now you don't have to waste two keys on the keyboard to turn your autosplit trigger on and off, and in addition you have a nice visual clue as to whether your trigger is active or not.  Try to beat this in a text-based MUD client!

Advanced Settings

In the advanced settings tab you can control many attributes of your buttons.  You can set the color of the button, change the size or location, and assign a graphic (BMP file format) to the button.  This allows you to create button bars that can be very complex.


Introduction to Macros

One of the first ways to make zMUD do more than just a dumb TELNET client is to assign commands to keys on your keyboard.

To assign a command to a key, press Control-K, or select Define Key from the Action menu.  You will be prompted to press the key combination that you wish to assign a command to.  Almost any key on the keyboard can be assigned a command, in combination with the Shift, ALT, and Ctrl keys.  You cannot override any of the zMUD command keys (like Control-K).  If you assign a command to a Windows key (like F10, or Alt-A), your command will work and the Windows function will be disabled - be careful.  Also, note that zMUD automatically activates the NUMLOCK mode to allow you to assign macros to the keypad.  If NUMLOCK is off, the keypad functions as the cursor keys.  Since the cursor keys are used to edit the command buffer and recall from the command history, you should refrain from assigning macros to the arrow keys (although you can if you want).

Once you press the key you want to assign a command to (for example, the NUM8 key, the 8 key on the keypad) you will be prompted for the command.  Enter the text you wish to be sent to the MUD when you press this key.  For example, if you were assigning a command to the NUM8 key, you could enter the text north.  Now, when you press the NUM8 key, the text north is sent to the MUD.  Notice that when you press a macro key the text in the command entry field is selected, but is otherwise undisturbed.  This is a very useful feature.  For example, if there is a monster to the north that you want to hit quickly before it can hit you, you can enter kill monster in the command entry field, press the NUM8 key (to move north) quickly followed by pressing <Enter> to send the kill command to the MUD.

The setting files DIKU.MUD and LPMUD.MUD contain some sample macro key assignments that I have found useful for these two types of combat MUDs.

Macro Chaining

If you want the text assigned to the macro key to be put into the Command Line rather than sent directly to the MUD, put a tilde (~) at the end of the text assigned to the key.  Then, when you press the macro key, the text will be added to the command line and your cursor will be placed right after the text so that you can complete the command and press return.

You can also chain macros using the above feature.  When you press the macro key that has the tilde at the end, the text is placed into the command line.  If you then press a normal macro key, the text is added to the command line and the finished command is sent to the MUD.

Here’s an example: assign the text open door ~ to the F8 key.  I assume you have the normal directions like north, south, east, etc assigned to the numeric keypad.  When you press F8, the text “open door “ is put into the command line.  If you now press the 2 key on the keypad (south), the word south is added and the command open door south is sent to the MUD.  All in just two keystrokes!


Introduction to Mapping

The Shareware versions of zMUD have a mapping module built-in that allows you to create maps of your MUDs.  These maps are interactive and in addition to simply giving you a visual picture of your MUD, allow you to speedwalk anywhere based upon room names, automatically opening doors while walking, and much more.  Maps can also be printed for offline use. The automapper adds a whole new perspective on MUDding, both for new users as well as advanced users.

Here are some of the basic features of the mapper:

Automatic configuration of mapper for your specific MUD

Zones allow maps within maps. Each zone can be multi-level

Can speedwalk to a room by double-clicking on the map

Room names and descriptions (and exits) automatically captured from the MUD

Can automatically generate map (to some extent) as you walk around

Manual editing functions for tweaking the map

Handles multiple levels (up/down), along with all 8 normal directions (n.s,e,w,ne,nw,se,sw) and non-standard exits defined by the user.

Cost of room traversal can be adjusted to improve optimal speedwalking

Versatile parsing can handle many MUD formats

Can read map “templates” and link them into your own maps

Handles one-way exits for maze areas

Handles doors with auto-opening code during speedwalking

Select one of the help topics below, or press the Next button to go to the next mapper topic:

Configuring the Mapper

Creating a Map Automatically

Editing your Map

Using Zones

Speedwalking with the Map

Advanced Mapping


Introduction to Multiplaying

If you connect to more than one character or more than one MUD (using the Another Character menu command or the Connection Wizard), zMUD will put each character into a different window.  This allows you to control multiple characters at once (called multiplaying and is banned on many MUDs).

The commands that you type in the command box are sent to the character window that currently has the focus.  This is usually the window on top.  You can change the currently focused window in several ways: select the window from the list given in the Window menu, select it from the “tablist” of windows shown at the bottom of the screen (just above the command line) when more than one window is open.  You can also cycle through the open windows using the Ctrl-N or Ctrl-Tab keys.

Each window has a name associated with it.  The default name for a window is the ID of your MUD character.  You can change this name using the #NAME command.

To send commands to a different window, precede your command with name: where name is the name of the window you wish to get focus, and : is the focus character (which can be changed in the Preferences).  The indicated window will be brought to the top and focused, and the command will be sent to that character.  To send a command to a different window without changing the focus, precede your command with :name: where name is the name of the window you want to command sent to.  In this case, your current window will be unchanged. If you do not specify any window name, and just enter :hi then hi will be sent to all windows.

Note that when referring to windows by name, you don’t have to spell out the entire name, just use enough characters to uniquely determine the window.  For example, if you have a window named zugg, then typing z:hi is enough to send hi to the zugg window.  You can also refer to windows by there number (shown next to the name in the Window menu).  For example 1:hi sends hi to the first character window.  Variables are also allowed before the colon.  If the variable @tank contains the value zugg, then @tank:hi will send hi to the zugg window.

Note that you can also mix these focus commands within your command line.  For example, entering zugg:eat;aurora:drink will send the eat command to zugg’s window, and the drink command to aurora’s window.  Aurora’s window will have the focus at the end of this.  Let’s look at some more examples to make this clearer.  In all of these examples, assume that we have two windows, Zugg and Aurora, and that Aurora’s window currently has focus.

eat;zugg:drink

tell aurora to eat and zugg to drink.  Gives zugg the focus.

zugg:eat;drink

tell zugg to eat and drink and give zugg the focus

:zugg:eat;drink

tell zugg to eat (dont change focus) then tell aurora to drink

zugg:eat;::drink

tell zugg to eat and give him the focus.  Then, change the focus back to aurora and tell her to drink.

Finally, you can use tab completion to change window focus without sending any commands to the window.  Typing zugg: and pressing <TAB> will give the zugg window focus and bring it to the top.  The command buffer will then be cleared, awaiting commands to be sent to this window.

Window Activity

When you have more than one window open, each window is listed along the bottom of the screen in a “tab bar”.  Each tab shows the name of the window.  If you move your mouse over the tab, more information about the window, such as the MUD name and character name will be shown.  To activate a window, just click on a tab.  This is the same as clicking on the window itself, or selecting it from the list in the Window menu.

To the right of the window name in each tab is an activity indicator.  When the indicator is a simple circle, that indicates the current window that has focus.  Other status indicators include:

red dot	session has been disconnected

green dot	session has received new text since the last time it was active

yellow dot	session has disconnected, but was able to automatically reconnect

yellow bolt	session is connecting


Introduction to Paths
Introduction to Paths/Speedwalking

Paths are a very powerful feature that allow you to save the directions to a location and then replay these directions at high speed at a later time.  This is also called speed walking in other MUD clients.  Not only is this useful for getting to common areas within the MUD, but the directions are replayed fast enough to get you past some aggressive monsters (agros).  This is not fool-proof as some MUDs have high aggressive monsters that will hit you anyway.  Also, when leading a party, sometimes the monster will still hit one of your other party members.  However, it works most of the time and you will find yourself using Paths quite a bit.

To record a path, enter the #MARK command, or select Speedwalking from the Action menu and press the Start Recording button.  Then use your normal movement commands to walk to the final destination.  Then, use the #PATH command to save the directions by entering #PATH shortcut.  Or, you can select Speedwalking from the Action menu, press the Stop Recording button and enter the shortcut name for this path.

Paths are saved as aliases preceded by a special character called the Movement character, which defaults to a period (.).  To replay the path directions, go to the start of the path that you saved earlier with the #MARK command, and enter .shortcut.  The directions saved in the path shortcut will then be replayed at high speed.

You can also send a set of directions at high speed using the Movement character by entering directions.  For example .neesuwd will send north, east, east, south, up, west, down to the MUD at high speed.  You can proceed any direction with a number to repeat it that many times.  The above path could be abbreviated .n2esuwd.

While recording a path (after entering the #MARK command), you can inspect the current path being recorded at anytime by entering #PATH (with no parameter).  The current path relative to the marked starting location will be shown in the direction syntax described above.  If you make a mistake and go the wrong direction, you can use the #BACKUP command to erase the last direction from the currently recorded path.  It will also attempt to move you to your previous location (e.g. if you went north by mistake, then did #BACKUP, you will be moved south).

A useful function that zMUD has added over other clients that have path features is the ability to reverse a path.  For example, let's say you have the path .2s2wn assigned to a shortcut called magic (gets you from temple to magic shop).  When you enter .magic while in the temple, you are taken to the magic shop.  Now you buy whatever you need, and then you want to return to the temple.  You can use the #REVERSE command to reverse the path by entering #REVERSE magic.  You can also use the shortcut syntax of two dots: ..magic.  The path .s2e2n will be sent to the MUD.  If you enter #REVERSE with no parameters, than the currently recorded path (since the last #MARK) will be reversed.  Kind of like leaving a trail of breadcrumbs.  Note however, that in many cases, going east to a room doesn't necessarily mean that entering west will go back.  The #REVERSE command only works in "Euclidean" areas of your MUD.

Note that speedwalking relies upon definitions of commands like north, south, down, etc.  You can add your own commands and short-cuts (such as o for open door) using the View/Directions menu command.


Introduction to Triggers

Triggers can be tricky, but are also the most powerful feature of zMUD.  Triggers (called actions on other MUD clients) allow you to execute a command whenever a particular string of text is received from the MUD.  While this sounds simple, it has powerful implications.

To define a trigger, you use the #TRIGGER (or #ACTION) command.  The syntax is #TRIGGER {pattern} {command}.  Whenever the pattern text is received from the MUD, the command is executed.  You can also define and edit triggers using the View/Triggers menu command to display the Trigger dialog.

Let's start with a simple example.  When you are working in a group, it is important to see anything that someone in the group has to say.  When someone in the group talks, the MUD usually says something like Zugg tells the group 'heal me'.  To ensure you don't miss this important information, let's change the color of the line to red using the #COLOR red command.  Thus, the trigger would be defined as #TRIGGER {tells the group} {#COLOR red}.

That was easy, and triggers like this can really enhance your MUD playing.  Here's another useful example: #TRIGGER {You are thirsty} {dr}.  With an alias like #ALIAS dr {drink @container} this trigger will keep your stomach happy and full by automatically drinking whenever you are thirsty from whatever container you have.

Extracting text from the MUD

Patterns can contain more complicated expressions and wildcard characters, and parts of the matched pattern can be stored in special parameters for use in the command string.  Parameters were introduced when Aliases were discussed.  The way you store part of the pattern into a parameter is by surrounding the part of the pattern with parenthesis.  One of the wild-card strings for a pattern is %w which matches any word.  So, for example #TRIGGER {(%w) tells you} {tell %1 I am busy} will match any string from the MUD that has a word followed by the string tells you.  Thus, when you receive the string Zugg tells you 'Hi', you will automatically send the command tell Zugg I am busy to the MUD.

Here's another really useful one:  #TRIGGER {You get (%d) coins} {split %1}.  Since %d matches any set of numeric digits, whenever you pick up some gold coins, you will automatically split them to your group!

Trigger Classes

Now, you wouldn't want the above trigger to be active all of the time.  Splitting coins when you are not in a group is not recommended.  To assign a name (called a Class name) to a trigger, provide the name as the optional third parameter to the #TRIGGER command.  For example: #TRIGGER {You get (%d) coins} {split %1} autosplit.  Then you can turn the trigger on with #T+ autosplit, or turn it off with #T- autosplit.  Assign these two commands to macro keys or buttons and you have full control over when you split and when you don't.


Introduction to Variables

Variables are very similar to aliases.  The important difference between aliases and variables is that aliases are only expanded when at the beginning of a command, while variables are expanded anywhere.  To expand the variable, you precede its name with the @ character.  Note that this is different then TINTIN where variables start with a $.  You can change the variable character in the Preferences dialog if you wish.

To define a variable, you still use the #VARIABLE command.  For example, #VAR container waterskin stores the string ‘waterskin’ into the variable container.  To return the contents of the variable, precede its name with the @ character.  For example, fill @container would expand to fill waterskin.

Another assignment syntax is also provided.  As with some programming languages, you can use the syntax variable=value to assign a value to a variable. All variables are stored internally as character strings, just like aliases.

So, the illustrate the use of variables, with the variable @container defined as shown above, you could now create an alias #ALIAS fs {fill @container statue}.  Now when you enter fs on the command line, the current value of the container variable (waterskin from the above example) is expanded and the command fill waterskin statue is sent to the MUD.

Variables are only expanded in the command line when the Expand Vars option is turned on in the General Preferences.  If Expand Vars is turned off and you want to expand a variable in the command line, enclose the variable reference in angle brackets (<>).  For example, if you type fill @container on the command line, fill @container will be sent to the MUD.  However, if fill @container is being executed within an alias or script, then it will be properly expanded.  To force it to expand on the command line, you would enter fill <@container> or turn on the Expand Var option.

System Variables

There are also several predefined system variables that are maintained by the system.  These variables all begin with the parameter (%) character.  Changing temporary variables does not change the modified status of your settings file, so you aren't prompted to save your settings when you exit.  These system variables are used just like regular variables, except with the % character instead of the @ character.


KEY

Syntax: #KE key command

Example

Assign a command to a key.  key should be the full name of the key, for example, F1, or CTRL-A, or ALT-F2.

As an alternative syntax, you can use <key>=command as an assignment statement.


KEY example

#KEY F1 eat bread

assign the eat bread command to the F1 key

<ALT-D>={drink water}

assign the command ‘drink water’ to the ALT-D key


KILLALL

Syntax: #KILLALL

Example

Erase all macro keys, aliases, variables, triggers, buttons, tab completion words.  Even default values inherited from default.mud or the parent settings file are deleted.


KILLALL example

#KILLALL

deletes everything (well almost).  This command cannot be abbreviated.


LAUNCH

Syntax: #LAUNCH commandline

Example

Launches an application.  The command line should contain the name of the EXE file to launch, along with any command line parameters needed.


LAUNCH Example

#LAUNCH notepad.exe

execute the Windows notepad program

#LAUNCH {notepad.exe test.txt}

Open the test.txt file into the notepad program


LM example

#LMAP ‘3sn’ {#SHOW %roomname(%i)}

From the current map location, move 3 squares south, then one square north.  At each step, display the name of the room


LMAP

Syntax: #LM path command

Related: #LOOP

Example

Loop through the given speedwalk path and execute the command for each room on the map along the path.  The variable %i is set to the room number.


LOAD

Syntax: #LOA filename

Related: #SAVE

Example

Load the specified settings file into the current window.  Note the the current settings file is not saved!  Any variables in filename are expanded.


LOAD example

#LOAD dc

Load the dc.mud settings file (.MUD is the default extension)

<F1>={#LOAD combat};<F2>={#LOAD social}

loads the combat.mud file when you press F1, and loads the social.mud file when you press F2


LOG

Syntax: #LO [filename]

Example

Given a filename parameter, this command creates a logfile with the specified file name.  If the file already exists, it is opened for appending.  If the file does not exist, it is created.  If the filename is omitted, then the logging flag is toggled.


LOG example

#LO test.txt

start logging all input from the MUD to the file test.txt

#LO

toggle the logging flag.


LOOK

Syntax: #LOOK

Example

Executes the MUD Look command and loads the displayed name, description, and exits into the current room on the mapper.


LOOK example

#LOOK


LOOP

Syntax: #LOO range command

Example

Execute the command a number of times given by the range.  The range consists of a minimum numeric value, followed by a maximum value, separated by a comma.  If only the minimum value is given, then a loop of 1,value is assumed (executing the command the number of times stated by the value).  The current value of the loop variable is stored into the %i variable for use in the command.


LOOP example

#LOO 3 north

sends the command north to the MUD three times

#LOO 1,4 {get coins %i.corpse}

sends the commands get coins 1.corpse, get coins 2.corpse, get coins 3.corpse, get coins 4.corpse to the MUD

#LOO @num {eat bread}

sends the eat bread command to the MUD the number of times contained in the @num variable.


Layout
Window Layout

The Window Layout dialog allows you to change various window tiling options.

None

No automatic tiling is done.  You can freely move and resize your windows and their positions are saved in your settings file

Maximized

All windows are maximized.  Windows do not obscure the menu bar.

Horizontal

All windows are tiled horizontally.  All windows are treated equally.

Vertical

All windows are tiled vertically.  All windows are treated equally.

Smart Multiple

Windows for a single MUD character are stacked above each other, with multiple MUD characters tiled next to each other.  Main MUD windows occupy more space than subwindows.

Smart Single

Only a single MUD character is shown at a time, but the windows for a given character are stacked above each other.  Main MUD Windows occupy more space than subwindows

Full Screen Width

In some tiling options, you can turn off the forced full-screen width and resize the width of windows manually.

The Restore Saved button will turn off tiling and restore the last window sizes and positions that were saved.


Logging

This Preferences page contains options that control logging lines to files.  Most of these preferences are local to the specific character.

Log Commands (local)

Controls whether commands typed on the command line and echoed to the MUD window are also written to the log file.  Default is on.

Log after triggers (local)

Controls whether logging is done before or after triggers are executed.  Default is to log before triggers.  For example, if you have a trigger that gags a line, logging before will write the line that is gagged to the log file, while logging after triggers will not cause this line to be written to the log file.

Log ANSI color (local)

Controls whether ANSI color codes are written to the log file.  To create a normal ASCII text file, turn this option off.  However, to create color log files that can be displayed by the internal zMUD ANSI editor, turn this option on.  Default is off.

Save scrollback Buffer

If enabled, the entire contents of the scrollback buffer are written to the log file when it is first opened.

Log Autosave interval (local)

Specifies the number of minutes before automatically saving the log file.  To turn off autosaving, set this value to 0.  Default is 5.

Map Autosave interval (local)

Specifies the number of minutes before automatically saving the map files.  To turn off autosaving, set this value to 0.  Default is 5.


MAKEROOM

Syntax: #MAKE direction [name] [description]

Example

Create a new room on the map in the specified direction.  The Name and Description of the new room can be specified optionally.


MAKEROOM Example

#MAKE n {Temple} {You are in the temple}

Creates a new room on the map to the north with the name "Temple".


MAP

Syntax: #MAP direction

Related: #PATH

Example

Add the specified direction to the current path being recorded.  Also sends the location to the mapper to move you on the map


MAP example

#MAP north

if the current path is .s then the path is updated to be .sn.  If the current path is .2n then the path is updated to be .3n.  Then you are moved one square north on the map.

#TRIGGER {%w leaves (%w)} {#MAP %1}

Follows the leader of your group and updates the map location


MARK

Syntax: #MA

Related: #PATH

Example

Mark the beginning of a path.  Clears the currently recorded path.


MARK example

#MA

clears the current path and marks the beginning of a new path.  Turns on path recording.


MATH

Syntax: #MAT variable expression

Related: #ADD

Example

Assigns the value of the expression to the given variable.  Expressions can contain numeric, logical, and text functions.  Any variables in the expression are also expanded.


MATH example

#MATH test (1+3)*4

assigns the value of '16' to the variable @test.

#MATH test2 @test-4

if @test has the value of 16, the value of 12 is assigned to @test2

#ALIAS add {#MATH value %1+%2}

add 3 4

the value of 7 is assigned to the variable @value


MEDIA

Syntax: #ME function

Related: #PLAY

Example

Sends a command to your current multimedia device.  Usually, you use this command after starting to play something with the play command.  Any variables in function are expanded.  Possible values of function are:

back	step the media backwards

close	close the current file

eject	eject the media

next	go to next track

pause	pause the playing of the media

play	start playing the media

prev	go to the previous track

resume	resume playing after a pause

rewind	send media back to beginning

step	step the media forwards

stop	stop playing the media


MEDIA example

#MEDIA next

if you are playing a CD, this moves to the next track


MENU

Syntax: #MEN command

Example

Executes the specified menu commands.  Specify each menu command exactly as displayed in the menu.  For submenus, each menu must be listed separated by | characters.  Thus, the Exit command is specified as File|Exit.  There is no way for zMUD to fill in any dialog value, this command just executes the menu command as if the user clicked on the menus.


MENU example

#MENU {File|Exit}

Exits zMUD! (You wouldn’t really do this, would you?)

#MENU {Actions|Make Button}

Pops up the Make Button dialog box.


MERGE

Syntax: #MER

Example

Merges rooms that are stacked in the current location on the mapper.


MERGE Example

#MERGE


MESSAGE

Syntax: #MES string

Example

Displays a small window containing the specified string as a message.  The window is small and surrounded by a red border.  There is a button in the window to close it.  If the window is not closed within 10 seconds, it closes automatically.  Optionally, you can specify the time for the window to remain open as the first argument, and give the message string as a second argument.


MESSAGE example

#MESS Sanctuary is out!

Displays the specified message in an alert window.

#MESS 1 "Quick message"

Displays the message for only 1 second


MOVE

Syntax: #MO direction

Example

Move in the specified direction on the mapper.


MOVE Example

#MOVE north

forces the mapper to move one room to the north.


MSP Settings

This Preferences page contains options that control how the MUD Sound Protocol (MSP) is used by zMUD.  Most of these preferences are local to the current character.

The MUD Sound Protocol allows the MUD server to trigger sounds to play on the local computer.  The sounds are usually provided by the MUD in an acrhive that you extract into the Sounds subdirectory of your current character folder.  zMUD allows you to change several of the behaviors of this sound protocol and to remap any sounds requested by the MUD.

A list of MSP sounds received from the MUD so far are shown on the left.  If your MUD doesn't support MSP or hasn't sent any MSP triggers, this list will be blank.  You can select an MSP sound from the list by clicking on it.  You will then see the filename of the actual WAV or MID file.  You can change this filename to map the sound or music to a different file.  You can also enable or disable the sound individually, or enable or disable the entire class of sounds (if your MUD supports MSP sound classes).

The General MSP Options effect the entire sound system and allow you to enable or disable MSP support, and to control whether the MSP triggers sent by the MUD are echoed to your output window.  You normally only turn on the Echo option for debugging purposes.


Macro Keys

This Settings Editor dialog page allows you to edit the properties of a keyboard Macro key.

The Key field gives the name of the key on the keyboard that the macro is assigned to.  If you don't know the proper name of a key, click the key button to the right of the Key field and press the key on the keyboard you want to assign this macro to.  The Commands field contains the commands executed when the macro key is pressed.

Normally, text assigned to a macro is sent to the MUD immediately.  To put the text in the command line and not send it immediately to the MUD, put a tilde (~) character at the end of the command.  Also, macro text placed in the command line normally replaces the current contents of the command line.  To append the macro text to the command line instead, begin the macro command with a tilde (~) character.

The Comment field assigns a comment or note to document the function of the Macro and is optional.  The Class drop-down list at the bottom allows you to assign this macro to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


Make Alias

You are prompted to name an alias created from the following text:

any highlighted text in output window

any highlighted text in command line

entire contents of command line

Note that any expansion of variables is delayed so that two variable characters are not needed.


Make Trigger

You are prompted for the commands to be assigned to the pattern.  The pattern is taken from any highlighted text in output window

Note that any expansion of variables is delayed so that two variable characters are not needed.


Manual Mapper configuration

How the AutoMapper works

Before you can configure the mapper manually, you need to understand how the mapper works.  The mapper first groups text received from the MUD into paragraphs.  Paragraphs are lines of text seperated by a blank line or a line that looks like the MUD prompt.  A MUD prompt is defined as a line with several punctuation characters, more numbers than letters, or a simple text string surrounded by brackets (configurable).

Once the mapper has grouped lines into paragraphs, each paragraph is searched for exit information.  Exit information is defined as lines containing keywords from the View/Directions settings, and optionally an exit keyword (which defaults to the string "exit").  Once the paragraph and line(s) containing the exit information are found, the mapper uses its configuration information to flag the room name (if present) and room description (if present).  Because the mapper starts its search based upon the exit information, getting the exits identified properly is the key to configuring the mapper.

Manual Configuration

There are two methods to manually configure the mapper.  The first method allows you to highlight text from the MUD to tell the mapper where the room name, description, and exit information is stored.  The second method allows you to manually change the underlying numeric parameters of the mapper.

To configure by highlighting text, select the Manual Configure from the Config menu.  On the left is an edit box that you must enter text from the MUD info.  You can type into this box, paste text from another source by pressing Ctrl-V or using the Paste button, open text from a log file (without ANSI color codes) using the filename field, or click the Capture button to capture text from your MUD (using the movement command configured for auto configuration).  Once the desired text is entered into the box on the left, click the Next button.

The next screen asks you to highlight the line containing the room name.  If no room name is present (for example, LPmuds in Full mode), click the No Room Name option.  When you are done, click the Next button.

Next you should highlight the lines containing the room description. If there is no room description (such as when in Brief mode), click the No Room Description option.  Note that the presence of a room description makes speedwalking safely through the map much easier, so you should try to use a mode on your MUD that shows a room description if possible.  When done configuring the room description, click the Next button.

Next you highlight the line(s) containing the room exit information.  If exit information is always displayed on a single line (except for word wrapping done by zMUD itself), make sure the Single Line Exit option is checked.  If the exit information is contained on the same line as your MUD prompt, select the Exit in Prompt option.  Click the Next button when done, then click the Finish button.

The manual configuration wizard still contains part of the auto configure code.  When you first enter the text to parse and click the Next button, the auto configure wizard will still try to guess at your configuration settings.  Thus, on each of the above screens, text will already be highlighted indicating the wizard's best guess.  This is simply a way to tweak what the auto configure wizard would have used.

To completely change the configuration manually with no interference from the auto config wizard, select Configuration Settings from the Config menu.  The mapper properties dialog will be displayed, and the section for the Room Name configuration will be shown.

Room Name Configuration

If the MUD displays a room name, make sure the Room Name option is checked.  If the MUD does not display a room name, such as for an LPmud in full mode, uncheck the Room Name option and go to the next page.

If the MUD has a room name, you can specify the paragraph number and the line number within the paragraph.  Paragraphs are numbered starting at zero for the last paragraph received, and increasing as you move back into the scroll buffer.  So, the most recent paragraph is zero, the next most recent is one, and so on.  Line numbers within the paragraph start at zero for the first line of the paragraph.

If you are in wizard mode on your MUD and you want zMUD to look for the room number (called vnum) in the line containing the room name, click the Parse vNUM option.

Normally when speedwalking, the mapper will use the room description to trigger a successful walking step.  However, if you want to use room names to confirm walking steps instead, you can tell the mapper whether to match room names at the beginning or end of a line.  Matching names at the end of the line is usually the best option since many MUDs display the MUD prompt before a room name some of the time.  However, if your MUD displays the room name as part of the exit information (such as on Medievia), you do not want to match room names at the end of a line since they will match in the exit info of the previous room.

Room Description Configuration

If the MUD displays a room description, make sure the Room Description option is checked.  Again mark the paragraph containing the room description based upon the numbering scheme described in the previous section, and mark the starting line of the description information.  If the room description covers more than one line, check the Multiline Description option.

Room Exit Configuration

The room exits is the most important section to configure properly.  If the mapper is unable to detect room exits, then it won't be able to find the room name or description.

You should normally make sure the Room Exit option is checked.  If your MUD does not display room exit information, you can turn this option off, but the mapper probably won't work.  As described in the Room Name section, set the paragraph number and starting line number for the room exit information.

If Exit information spans multiple lines sometimes on your MUD, select the Multiline option.  If the exit information is contained within the MUD prompt, select the Exit In Prompt option.  If the exit information is displayed in the same line as the room name, select the Exit In Room Name option.

In the View/Direction settings, each direction can have multiple commands.  For example, north is defined as "n|north" which means either "n" or "north" match this direction.  Normally the mapper will look for any of the names listed in the View/Directions for detecting directions.  However, if you select the Use Short Exit Name option, only the shortest name for the exit will be searched for.  This helps the mapper ignore exits in the description (that usually use the long name) if the exit line always just contains the short version of the exit.

To help the mapper find exit information when you are in a room without exits, the mapper uses an exit keyword.  This is a word or phrase that is always present in the exit line.  By default, this keyword is "exit".  On some MUDs you might want to make this "obvious exit" to make it more unique.  To more unique this phrase is, the easier time the mapper will have at finding the exit information.  The Exit Line Contains Key option tells the mapper whether to look for this keyword or not (you will usually want this on).  If the exits occurs on the line immediately following the exit phrase, select the "Exits After Keyword option.

Other Configuration

The final configuration screen allows you to set some miscellaneous options.  In this screen you can specify whether lines containing a simple text string followed by a bracket (>, ], ) ) character is considered to be a prompt.  This is turned off by default but is needed on some MUDs with simple prompts.  In general, making your prompt more complicated will help the mapper work better.

Mapper Tricks

If the mapper still cannot be configured to work properly, there are some advanced tricks you can use that will modify your MUD output before the mapper has a chance to see it.  You can do this using Triggers with the #SUBSTITUTE command.  With this, you can remove any special characters that are giving the mapper trouble, or add characters that the mapper needs.  You can tell the mapper to ignore lines altogether using the #NOMAP command.  Finally, with triggers you can insert text or blank lines to help the mapper.


Map Zones

A map zone is like an area on your MUD.  A zone can contain as many rooms on as many different levels as you want.

When you want to create a new zone, select the room (or rooms) you want to move to a new zone, and select Move Rooms to Zone from the edit menu.  A list of current zones stored in the Master Map will be displayed.

You can move rooms to an existing zone by selecting the zone and clicking OK.  Note that the rooms may not be displayed exactly where you want them so you will probably move the rooms around the zone when you are done.

From the zone list, you can also create a New Zone.  Click the New Zone button and you will be prompted for the name of your new zone.  As you enter the name of the zone, the filename to store the zone will be created automatically.  Edit the filename as desired and click OK to create the new zones and move the selected rooms to that zone.


Memory

This Preferences page contains options that control how zMUD uses memory (RAM).  Most of these preferences are local to the specific character.

zMUD actually uses memory very efficiently but also uses a lot of memory in order to provide a large scrollback buffer and to achieve the highest scrolling speed possible.  Fast scrolling is the number one design parameter in zMUD and using more memory makes this possible.  However, you still have some limited control over the memory usage.

When zMUD creates a new window, it only allocated memory for a small number of lines (usually a screenful).  As more text is received, zMUD continues to allocate lines in blocks of a screenful until the Max Lines setting for that window is reached.  When the maximum number of lines is reached, old lines are discarded as zMUD scrolls.

You can set the maximum number of lines for the main MUD windows, the child windows created with the #CAPTURE and #WINDOW commands, and for the editor.  You normally want the main MUD window and editor settings large to handle a large scrollback.  Note that the scrolling speed of zMUD is indepedant of the number of lines in the scrollback buffer.  On 32-bit systems, the number of lines in the scrollback is limited only by your available memory (RAM).  zMUD requires about 512 bytes per line.


Menu Reference

Click on the menu command that you want help on.

File

Open	connect to a new character or host

Reconnect	re-establish connection to current character

Disconnect	disconnect from the current session

New Log	open a new log file

Append Log	append to an existing log file

Log	toggle logging state

Close Log	close a log file

Print Setup	setup the current printer

Print	print the current screen, buffer, or selection.  You can also toggle color or B&W.

Exit	disconnect from MUD and leave the program

Edit

Cut	cut text from the input command line

Copy	copy selected text from the input command line

Paste	paste text into the command line

Copy DDE link	copy DDE link information into clipboard

Select All	select the entire contents of the command line

Clear	clear contents of command line

Find	search for a string in the scrollback buffer

View

Preferences	View/edit General, colors, fonts, sounds, special characters, and memory options.

Aliases	View/edit Alias settings

Variables	View/edit Variable settings

Triggers	View/edit Trigger settings

Macro keys	View/edit Macro key settings

Buttons	View/edit Button settings

Tab Completion	View/edit tab completion words

Speed Menu	View/edit speed menu settings

Speed Walking	View/edit speedwalking paths

Directions	View/edit speedwalking directions

Settings

New	clear all settings

Load	load settings from a file

Save	save settings to a file

Save As	save settings to a different file

Import	allows you to import ASCII script files, or TINTIN++ script files

Export	Allows you to export macros, aliases, triggers, etc in ASCII format for later importing.

Parse	toggle parsing of command line

Enable Triggers	toggle whether triggers are enabled

Actions

Make Alias	create an alias

Record Alias	record an alias from the command line

Make Trigger	create a trigger action

Define Keys	assign a command to a key

Make Button	create a new button

Add Tab Word	add word to tab completion list

Record Path	record a path from the command line

Speedwalking	manipulate paths and control speed walking

Timer	manipulate the tick timer

Synch Timer	resynch the tick timer

Define Status bar	edit the status bar and status window settings

Layout

Layout	change the tiling layout options

Fullscreen	maximize the current window to cover the entire screen

Maximize	maximize the current window but dont cover the menu window

Show in task bar	toggle whether icon for window is displayed in task bar

Next Window	switch to the next window on the screen

Split Window	split the window to view the scrollback buffer

Clear Window	erase the screen (but not the scrollback)

Empty Scrollback	clear screen and scrollback buffer

Window

Command History	display the command history

Editor	open the full-window command editor

Status	display the status window

AutoMapper	display the automapper window

Help

Contents	show table of contents

Search	search the online help database

Reference	display command reference

Getting Started	display the Getting Started help section

Command Wizard	get help and examples of zmud commands

Function Wizard	get help and examples of zmud functions

Send Feedback	send feedback to the author of zMUD

Register	enter your registration code for the Shareware version

About	version, credits, and copyright info


NAME

Syntax: #NA string

Example

Change the name of the current window.  The default name of a window is the name of the MUD character.  With this command you can change the name to anything you want.  This name is saved with the character.


NAME example

#NAME tank

gives the current window the name of tank.  Now when you say tank:command the command is sent to this window.


NODEF

Syntax: #NODEF

Related: #DEFAULT

Example

Restores the special characters saved by the #DEFAULT command.  Usually used at the end of a script to restore the previously saved values.


NODEF example

#NODEF

Pretty simple.  Make sure you use the #DEF command to save the chars before restoring them with #NODEF.


NODIR

Syntax: #NODIR

Example

Removes the last direction from the command queue stored in the mapper.  This command is used in triggers to ignore the last direction when a move step was unsuccessful.


NODIR Example

#TRIGGER {^You can't go that direction} {#NODIR}

#TRIGGER {(%w) is closed} {#DOOR %lastdir() %1;#NODIR}

Both of these examples get the mapper back in synch be removing the last direction moved to prevent a room from being created in that direction.  The second example is more complex and actually creates a door in the given direction before removing the command from the stack.


NOMAP

Syntax: #NOMAP [pattern]

Example

Prevents the mapper from parsing the line that matches the specified pattern.  If the pattern is omitted, then the line previous matched by a trigger is ignored by the mapper.


NOMAP example

#TRIGGER {gossips} {#NOMAP}

#NOMAP {gossips}

Each of these commands does the same thing.  This prevents any line containing the word “gossip” from being parsed by the mapper.


NOOP

Syntax: #NO

Example

Does nothing!  (Wow, what a powerful command)


NOOP example

You really need an example of this one???


Network Setup

To use zMUD, you must have a connection to the Internet.  Usually this connection is made through dialup software that uses SLIP or PPP protocols, but it might also be through a direct LAN connection.  If you can run other network software such as Web Browsers or email programs, your computer is probably set up properly to run zMUD.  If you have trouble connecting to MUDs using zMUD, consult some of the topics below for more help.

AOL Users

To use the 32-bit version of zMUD, your network software must support 32-bit programs.  Earlier versions of AOL software did not support this.  So, if you are having trouble using zMUD on AOL, make sure you upgrade to their latest Win95 software that supports 32-bit applications.

Proxies and Firewalls

Some people are connected to the Internet via a Proxy Server or Firewall.  zMUD v5.21 and greater support SOCKS4 compatible Proxy Servers, or regular Telnet Proxy servers.  To configure zMUD for these types of connections, select the Preferences option in the Edit menu at the main Character screen, or select Preferences while inside zMUD.  Go to the Proxy settings page.  Select whether you are using a SOCKS4 or a Telnet proxy.  SOCKS4 is the preferred option and is supported by most modern firewalls.  Simply enter the hostname or IP address of the Proxy server, along with the port that its SOCKS4 service runs on, which is usually 1080.  If your server requires a username to connect, enter the proper name into the username field.

For a Telnet Proxy, enter the hostname or IP address of the Telnet Proxy server, along with the port that it is running on, which is usually port 23.  Then you need to specify the command needed by your Telnet Proxy to connect to an outside MUD.  Usually this command is just the MUD host name and the MUD port number, seperated by a space.  Use the %host variable for the hostname and the %port variable for the port number.  Any other variables or zMUD functions may be used in this command to form a proper command to send to the proxy server to connect you.

Note that for any of the Proxy server setup to function, you must have DNS installed and running properly on your computer.  Check with your Network or System Administrator to ensure that this is set up properly.

Cannot Lookup IP Addresses

The Domain Name Service (DNS) provides a mechanism to convert hostnames into the numeric IP address needed for zMUD to connect to a MUD.  You must have DNS set up properly to use zMUD, or else you will have to specify the IP address manually in the Hostname field for the MUD in the Character database.  Most network providers set up the DNS server information automatically when you connect.  If you experience problems with this, contact your Internet Provider or your Network Manager.


New Character

When you click the New button to create a new MUD character, a list of your existing MUD characters along with a list of all known MUDs on the Internet is displayed in a list on the left.  If you know the host name and port of the MUD you want, you can just enter it into the Host and Port fields and click Save to save the new character.  Otherwise, you can browse the list of MUDs shown on the left.

The list of MUDs is taken from the MUD Connector at www.mudconnector.com.  This web site maintains an up-to-date list of MUDs.  You can update the file used by zMUD by right-clicking the list of MUDs and selecting the Update option.  This will download a new MUD list from the MUD Connector.  You can also get a new list by going to the URL http://www.mudconnector.com/zmud/mudlist.txt in your web browser, then selecting the Save As option in the File menu and saving the list to the file MUDLIST.TXT in your zMUD directory.

MUDs are categorized by Type (DIKU, LP, MOO, etc).  Most people have certain types of MUDs they like to play and are only interested in MUDs of similar type.  In this case, just click the '+' icon next to the type of MUD you desire and the list will expand to show all MUDs of that type.  If you know the MUD by name and do not care about MUD types, click the Categorize button at the top of the list and select "All" from the menu to display all MUDs alphabetically.

As you select a MUD in the list on the left by clicking on it, details of that MUD are displayed in the window to the right.  These details are taken from the MUD Connector and might vary from MUD to MUD.  Some MUDs provide a URL to a more detailed web page.  You can click on this URL to open your web browser to that page.

To create a character on the same MUD as one of your other characters, just select the character you want to copy from the list under the "Characters" topic on the left.

Once you have picked a MUD Host and Port, click the Save button to save the character.  You will be returned to the main screen where you can connect to the MUD or edit the character further.  Or, you can just press the Connect button directly from this dialog without pressing Save first.  To abort the creation of a new character, click the Cancel button.


Notes information
Edit Character (Notes Information)

Your MUD character has many properties that can be edited.  On this screen you can enter any notes about this character that you want.

The tab control along the top of this window allows you to also edit your MUD information, Character information, and Files information.


OK

Syntax: #OK

Related: #SLOW #STOP

Example

Confirms the currently pending slow walk direction.  This command is typically triggered by a macro to indicate that the previous movement was successful.


OK example

#TRIGGER {^Exits} {#OK}

#TRIGGER {^It is pitch black} {#OK}

When either of these two strings are received from the MUD, the pending Slow Walk direction is confirmed, allowing slow walking to continue.


PATH

Syntax: #PA [pathname]

Related: #MARK #RETRACE #MAP

Example

If pathname is omitted, the current path being recorded is displayed.  If pathname is given, the currently recorded path is saved to the variable specified by pathname.  The direction character (.) is prepended to the variable name automatically.


PATH example

#PA

displays the current path being recorded

#PA magic

saves the current path to the variable .magic.


PICK

Syntax: #PI val1 [val2 [val3 ...]]

Example

Display a pickbox with val1, val2, val3, ... listed on each line (up to 99 values can be specified).  The user can select one or more of these lines and return them.  The values are returned separated by the current command separator (;) and executed as commands.  If the user presses <Escape> then no commands are executed.

The PICK command recognized two special arguments.  An argument of the format p:string displays the specified string as the prompt for the dialog.  An argument of the form o:1 specifies that only one selection is allowed to be chosen.  Also, each value can start with an asterisk * to indicate that it is selected by default when the dialog is displayed.

To display captions for each item that are different from the command, use the syntax caption:command.  The caption is displayed in the list, but the command is executed.


PICK example

#PI {get all corpse} {get all.coins corpse} {sac corpse}

displays a picklist with three values.  If the user selects the first and third option, the string ‘get all corpse;sac corpse’ is returned and executed.

#PICK {p:Select an action:} {o:1} {kill @mob} {kick @mob} {*stun @mob}

displays a picklist with three values.  The string “Select an action” is displayed as the prompt for the dialog box.  The o:1 option specifies that only one value can be selected from the list.  The * in front of the third item specifies the default item to be chosen by pressing Enter.

#PICK {p:Select an action:} {o:1} {kill:kill @mob} {kick:kick @mob} {*stun:stun @mob}

Same as the above example, except shorter captions are displayed in the list rather than the entire commands.


PLAY

Syntax: #PL filename

Related: #MEDIA

Example

Plays the specified multimedia file.  The file type is determined from the file extension of the filename.  Tested formats are WAV, MID, AVI.  If filename refers to a drive (as in D:), the drive is assumed to point to a CDROM with a musical CD in it.

Note that zMUD does not pause while the media is playing.  Also, only one media can be playing at any given time.


PLAY example

#PLAY start.wav

play the startup wav audio file

#PLAY D:

start playing the CD on drive D:

sound=ouch.wav

#TRIGGER {hits you} {#PLAY @sound}

plays the file ouch.wav whenever you are hit.  There are real possibilities here!


PROMPT

Syntax: #PR VariableName caption passwordchar

Example

Pops up a dialog box to prompt you for the value of the specified variable.  The option caption is displayed as the caption for the prompt.  The optional passwordchar is used to echo the characters that are typed.  Use a passwordchar of * for standard password prompts.


PROMPT example

#PR tank

Displays a dialog box asking you to enter the value for the @tank variable.  The current value of the variable is the default.

#PR tank "Enter the name of the tank"

Same as above but provides a more useful prompt to the user

#PR password "Enter a password" "*"

Displays a prompt where the characters typed are echoed as * characters


PW

Syntax: #PW

Related: #CHAR

Example

Sends the password of the current character to the MUD.  This password is not echoed to the output window.


PW example

#PW

sends your password to the MUD.


Pattern Matching

Patterns can contain several special character for wild-card matching.

*	match any number of characters or white space

?	match a single character

%d	match any number of digits (0-9)

%w	match any number of alpha characters (a-z) (a word)

%a	match any number of alphanumeric characters (a-z,0-9)

%s	match any amount of white space (spaces, tabs)

%x	match any amount of non-white space

[range]	match any amount of characters listed in range

^	force pattern to match starting at the beginning of the line

$	force pattern to match ending at the end of the line

(pattern)	save the matched pattern in a parameter %1 though %9

~	quote the next character to prevent it to be interpreted as a wild card.

~~	match a quote character verbatim

{val1|val2|val3|...} match any of the specified strings

{^string}	do not match the specified string

&nn	matches exactly nn characters (fixed width pattern)

In specifying a range, you can list specific characters such as [abc] or you can use a range [a-c].  To use a wild card character in the string itself, preceed the special character with the ~ quote character.  For example, the pattern ~[test~] will match the string [test] rather than being interpreted as a range wild-card pattern.  Note that the quote character can be changed in the Preferences section.

To match a blank line, use the $ pattern by itself.

You can also include variables in your pattern, and the name of the variable will be replaced with its value before the pattern match is performed.


Predefined Variables

[Command Reference] [Function Reference] [Expressions]

The system maintained several predefined variables for you to use.  Each of these variables begins with an underscore character to signify that it is a temporary variable.

%action	the action executed from the last trigger

%char	the name of your MUD character

%cr	a newline character

%ctime	the number of seconds you have been connected to the MUD

%def	current list of special characters

%host	the host name of the current MUD

%i	same as %repeatnum

%lastcom	the last command executed

%lastcom2	the command before the last command executed

%lastcom3	the command before %lastcom2

%lastinput	the last line of commands executed

%line	the last line received from the MUD

%line2	the line before the last line received

%line3	the line before the line before the last line received

%param1	the first parameter from the last trigger match

%param2..%param99	the parameters from the last trigger match

%port	the current port connected to

%random	a random number from 0 to 99

%repeatnum	the current index during repeating commands, or loop command

%selected	returns the text currently selected in the output or command buffer

%selline	currently selected line

%selword	currently selected word

%title	the title of the current MUD

%trigger	the line that caused the last trigger

%window	the name of the current window


Preferences

The Preferences editor is accessed by clicking the Pref button in the main toolbar, or selecting one of the preference options under the View Preferences menu.  Note that zMUD makes a distinction between "preferences" and "settings".  Settings are objects such as aliases, triggers, macros, etc that can be placed within a class.  You can have any number of settings for a given character.  Preferences are options that you toggle or change that have a single value for a given character.  Some Preferences are also global and effect all zMUD characters.  Global Preferences are stored in your ZMUD.INI file while character-specific preferences are stored along with your settings in your character.MUD file.

Preferences are grouped into categories.  The tree heirarchy on the left shows the preference categories.  Select the type of preferences you want more help on:

General

User Interface

Command Parser

Emulation

Logging

Spam Protection

Word Wrap

Colors

Color Schemes

ANSI Mapping

Foreground

Background

Syntax

Connection

IP Address Lookup

Proxy Firewall

Directories

zmud.ini

mudchar.dat

Settings Files

Sound Files

Fonts

Memory

Slow Walking

Sounds

MSP Settings

Special Characters

Tick Timer

Windows

Layout


Quick Start

The easiest way to get started quickly with zMUD is using the Connection Wizard.  Either press the Connection Wizard button in the welcome dialog, or select Connection Wizard from the File menu.

The Connection Wizard will display a list of most known MUDs on the Internet, sorted by their name.  You can press keys to scroll quickly to the MUD name that begins with the key you press.  As you select MUDs from the list, or scroll through the list, the details of the MUD will be shown in the fields on the right.  You can also edit the information on the right if you desire.  When you find the MUD you want to connect to, simply press the Connect button.  Press cancel to exit the wizard.

MUD Listings

The Connection Wizard can read three popular mud listing file formats from the Internet.  The first two lists come from the Internet MUD Connector.  The short list is the smallest of the files, while the Big List contains long descriptions of each MUD.  To update any of these lists, you can click the World button in the upper right corner of the window.  Then click on one of the URLs shown to launch your Web Browser and retrieve the new file.  (Note, on Win 3.x systems zMUD cannot automatically launch your browser, so the URL will just be copied into the clipboard). This file should be stored in your zMUD directory to take immediate effect.

Connecting to a MUD

zMUD will attempt to connect to the MUD that you have selected.  Once connected, the MUD will normally ask for your username, followed by your password.  Once you have entered this information, zMUD will ask if you want to create an auto-login trigger for this MUD.  If you select Yes, auto-login triggers will be created, and your character name and password will be saved to the character database.  Be sure and save your settings file before you exit so that this login trigger will get saved.

That’s all there is to it!  You are now connected and playing a MUD.  You can continue through this help section for more information to help you get started with zMUD.

Troubleshooting: If you have trouble connecting to a MUD and get the error message “can’t lookup address”, then you probably have an incorrect nameserver setup.  Setting up a proper nameserver for your Internet connection is beyond the scope of this document, however, there is a work-around for this.  When using the Connection Wizard, both the host name and the host address are displayed.  If you are having trouble connecting to the name, simply click the USE button to use the address rather than the hostname.  This will prevent zMUD from trying to look up the address from a nameserver.  This will typically allow you to connect to the MUD.  If the MUD administrators ever change the address of their machine, your connection will stop working until you enter the new address.


READ

Syntax: #REA filename

#REA n [rec]

Example

Open the file given by filename and read it line by line, executing each line.  This allows you to store commands in a script file and then execute this script.  Typically the KILLALL command will be used to clear memory before reading the file.

The second form of this command reads data from the nth file (opened with the FILE command).  If n is 1-5, then the file is a text file and rec is the line number to read.  If rec is zero or omitted, the next sequential line is read.  If n is 6-10, then the file is a structured file, and the record indicated by rec is read.  If rec is zero or omitted, the next record is read.


READ example

#REA mud.txt

Read the file mud.txt line by line and execute each line as if you had typed it manually.

#FILE 1 mudlist.txt

#READ 1 10

read the 10th line from the file mudlist.txt


RECALL

Syntax: #RECALL

Example

Teleports you to the Start Location (recall location) on the map.


RECALL example

#RECALL


RECORD

Syntax: #REC [aliasname]

Related: #ALIAS

Example

Toggles the recording of an alias.  When you first enter #RECORD, zMUD starts recording all the commands you send to the MUD.  You can monitor this recording by entering #RECORD again during the recording.  When you are done and want to save the recording, enter the #RECORD command followed by the name of the alias you wish to create.  If you use an alias value of off (#RECORD off), the recording is stopped and not saved.


RECORD example

#REC

starts recording

n

w

open door

#REC

displays: Current alias: n;w;open door

#REC temple

saves the commands n;w;open door to the alias named temple and turns off recording.


RENAME

Syntax: #REN oldname newname

Example

Renames an alias, variable or path to a new name.


RENAME Example

#RENAME drink dr

renames the alias "drink" to "dr"

#RENAME @abc a

renames the variable "abc" to "a".  Note that the new name should not contain the @ character.

#RENAME .magicshop magic

renames the speedwalk path "magicshop" to "magic".  Note that the new name should not contain the . character.


RESET

Syntax: #RES n

Related: #FILE

Example

Reset the nth file back to the beginning.  The file must be opened using the FILE command.

If used without parameters, this command resets all variables back to their startup defaults and classes back to their startup state.


RESET example

#RES 1

reset file 1 to the beginning.

#RESET

resets variables and classes to their startup values


RETRACE

Syntax: #RE [pathname]

Related: #PATH

Example

Executes the specified path backwards, allow you to retrace your steps as long as you are in a euclidean section of the MUD.  If the pathname is omitted, the path currently being recorded is reversed.


RETRACE example

#RE magic

If the .magic path contains .2s2wn then this will execute the path .s2e2n.


Reconnect

Allows you to quickly reconnect to your current MUD session.  The network link to the MUD is dropped, and then zMUD immediately tries to reconnect.  If the MUD cannot be connected, a retry dialog is displayed showing a 10 second countdown.  At the end of this 10 seconds, a reconnection is attempted again.  You can cancel the reconnection attempt by clicking the Cancel button.  You can force it to try again without waiting for 10 seconds by clicking the Retry button.

This is a great function to use after a MUD reboot to ensure that you get connected as quickly as possible.

zMUD will not allow you to change this 10 second delay.  If all players using zMUD were able to attempt reconnects continuously, it would bring the poor MUD server that is trying to reboot to its knees and upset a lot of system administrators.


Registering

This dialog is used to enter your registration information.  See the zMUD web page (http://www.zuggsoft.com/) for information on how to register and how much it costs.  Once you have received your registration information, enter your registration name and registration ID into the boxes provided and click OK.  If you have any problem entering your registration information, contact the author of zMUD


Repeating Commands

Syntax: #number command

Example

The specified command is sent to the MUD the number of times given by the number parameter.  This number must be a constant.  To use variables, see the LOOP command.  The current value of the repeat counter is saved in the predefined variable %repeatnum for your use in the command.


Repeating example

#10 kill mound

send the command kill mound to the MUD 10 times.


SAVE

Syntax: #SAV [filename]

Related: #LOAD

Example

Saves the current settings file.  If you specify a filename, the settings are saved to that file instead.  Note that the name of the settings file associated with your current character is not changed by this command.


SAVE example

#SAVE new

saves the current settings to the file new.mud


SAY

Syntax: #SA text

Example

Same as the SH command.  Echoes the specified text to the screen without sending it to the MUD.


SAY example

#SA You have @gold coins

Prints You have nnnn coins to the screen where nnnn is the current value of the @gold variable.

#ACTION {aura fades} {#SA SANC IS OUT!!!!;#COLOR red}

If the string aura fades is received from the MUD, the string SANC IS OUT!!!! is displayed to your screen and colored red.


SCROLL

Syntax: #SC pattern [lines]

Example

Displays all lines in the scrollback buffer that match the specified pattern.  If you do not specify how many lines to display, zMUD displays all matching lines.


SCROLL example

#SC Zugg

Displays every line in the scrollback buffer that contains the string “Zugg”

#SC Zugg 4

Displays the last 4 lines in the scrollback buffer that contains the word “Zugg”


SEND

Syntax: #SE filename [prefix] [postfix]

Example

Sends the contents of filename to the MUD.  Each line of the file is prefixed by the prefix string before being sent and the postfix is appended to each line.


SEND example

#SEND notes.txt {tell zugg}

Sends the file notes.txt and prefixes each line of the file with tell zugg


SESSION

Syntax: #SES [character-name|hostname port]

Example

Opens a new MUD session to the specified character or host.  If you enter a single parameter, it should be the ID of a character in the character database that you want to run.  If you specify two parameters, the first is the host name or IP address of a MUD, and the second parameter is the port number.


SESSION example

#SES Zugg

Opens a new session to the entry in the character database with an ID of Zugg

#SES jitter.rahul.net 6666

opens a new session to the MUD on host jitter.rahul.net port 6666.


SHOW

Syntax: #SH text

Example

Same as the #SAY command.  Echoes the specified text to the screen without sending it to the MUD.


SHOW example

#SH You have @gold coins

Prints You have nnnn coins to the screen where nnnn is the current value of the @gold variable.  Any trigger set up for this type of pattern will get triggered.


SLOW

Syntax: #SL path

Related: #STEP #STOP #OK

Example

Executes the specified path in Slow Walking mode.  In this mode, a single direction is sent to the MUD, then zMUD waits for confirmation before sending the next direction.  Directions are confirmed with the #OK command, and aborted with #STOP.  If a Slow Walk was aborted, it can be resumed with the #STEP command


SLOW example

#SL .n2es

Sends the north command to the MUD.  Then waits for confirmation.  If confirmed, then east is sent, and so on.


STATUS

Syntax: #ST text

Example

Sets the definition used for the status line displayed beneath the output window.  This line can contain variables which are expanded before the status line is displayed.  The status line is updated whenever a variable is changed.


STATUS example

#ST {Gold: @gold  Tank: @tank}

If the value of @gold is 1234 and the value of @tank is Zugg, then the text

Gold: 1234  Tank: Zugg

is displayed on the status line.


STEP

Syntax: #STE

Related: #SLOW #STOP #OK

Example

Resumes a previous aborted Slow Walk by executing the next step in the path.


STEP example

#SLOW .n2es

North is sent, but never confirmed, so Slow Walking stops

#STEP

sends north once again to restart the Slow Walk.


STOP

Syntax: #STO

Related: #SLOW #STEP #OK

Example

Aborts the current Slow Walk.  Typically used in triggers.


STOP example

#TRIGGER {A gang member is here} {#STOP;kill gang}

If the pattern A gang member is here is received from the MUD, any Slow Walk is aborted and the gang member is killed.  You can then resume your walking with #STEP after the gang member is dead.


STW

Syntax: #STW string

Related: #STATUS

Example

Specifies the definition of the status window.  The status window is like the status line except it can contain more than one line, and can contain %ansi color sequences.  The status window can be positioned and sized anywhere on the screen (the position and sized is remembered).  You can use the %CR function to insert a newline, and the %ANSI function to change the color of text.  Right clicking on the status window also lets you set its definition string.


STW example

#STW { Hp: @hp %cr Exp: @exp %cr %ansi(red)Tank: @tank}

Defines a three line status window.  The first line shows that current hitpoints in the @hp variable, the next line shows the experience in the @exp variable, and the last line shows the name of the current tank in red.


SUB
SUBSTITUTE

Syntax: #SU string

Example

This command is used in conjunction with triggers to change the text matched by the last trigger pattern to something else.  It is useful for removing clutter on the screen.


SUBSTITUTE example

#TRIGGER {(*) tells you,} {#SUB {%1:}}

Replaces all lines received from the MUD of the form xxx tells you, with the text xxx: .  This saves room on the screen and is expecially useful in a subwindow that captures text matching a pattern.


Save Path

You are prompted for a name for the currently recorded path.  Note that the Movement character (.) at the beginning of the path name is optional and will be added for you.


Settings
Settings Editor

The settings editor is a single dialog that allows you to edit all of the settings associated with your current MUD character.  zMUD settings are defined as objects that can be assigned to a class.  Options that can only have single values are called Preferences and are modified in the Preferences dialog.

Settings consist of objects such as aliases, triggers, macros, buttons, etc.  Each object is assigned to a class (or to the default class of <none>).  Classes of objects can be enabled or disabled with the #T+ and #T- commands.  You can display a list of classes and their current state (on or off) using the #CLASS command.

The Settings Editor consists of a toolbar across the top, a list of available object types in the upper-left list, and a list of objects within the selected type in the lower-left list.  For example, if you select Aliases in the upper-left list, all of your aliases will be shown in the lower-left list.

The upper-left list of object types displays the current class heirarchy.  Object types that have classes defined have a '+' icon that allows you to expand the list to show the classes for that object.  For example, zMUD ships with several triggers defined for the Automapper and grouped into the Automapper class.  If you click the '+' icon next to the Triggers object type in the upper-left list, the classes of triggers currently defined are shown.  Click on the Trigger type to show all triggers in the lower-left list, or click on the Automapper class name to only show the triggers within the Automapper class in the lower-left list.

A single class can contain multiple object types.  For example, the Automapper class can also contain aliases, or macros, etc.

To edit one of your settings, select the specific setting you want to edit from the lower-left list by clicking on it.  The details of the setting will be shown in the right part of the dialog.  The information that you can edit is different depending upon the object type.  For example, selecting a macro will allow you to change the macro properties, selecting a trigger allows you to change the trigger properties, etc.

For information on specific properties, select the type of object you are editing:

Classes

Aliases

Variables

Paths

Triggers

Macros

Buttons

Directions

Speed Menu

Tab completion

Status bars

To delete a specific setting, select it in the list on the lower-left, then click the Delete button in the toolbar.

To create a new setting, select the type of object you want in the list on the upper-left, then click the New button.  A new, blank object will be created.  Fill in the values of the properties for the new object, then click Save to save the new object.  Click cancel to discard the new object.  If you know what type of setting you want to create, click the drop-down arrow to the right of the new button and select the object type from the list.

The Load button allows you to load settings from a specific .MUD setting file.  Note that the loaded settings do not overwrite the settings for the current character, but are just loaded into the editor for editing.  You can save the settings currently loaded into the settings editor using the Save or SaveAs button.  The Reload button reloads the settings for the current MUD character into the Settings editor.

The settings shown in the lower-left list are normally displayed in alphabetical order (except for buttons).  To display the settings in the order that zMUD loads them, right-click the lower-left settings list and select Unordered from the popup menu.  The unordered list shows the settings in the order they are loaded into zMUD.  For triggers, this is the order in which triggers are searched.  You can change this order using the Move Up and Move Down buttons that are displayed beneath the list when it is unordered.


Slow Walking

This Preferences page contains options that control how zMUD performs "slow walking".  Most of these preferences are local to the current character.

Slow Walking is used to move from one location to another safely, either in conjunction with the Automapper, or using the #SLOW command.

Timeout aborts walk

Controls whether the Timeout value shown below is used to abort the slow walk, or to flag the walk as successful.  Default is on (abort walk).

Timeout value

The amount of time to wait before aborting or completing a slow walk step.  This value is in milliseconds, so one second is a value of 1000.

Strings to determine successful slow walk

These are text strings from the MUD that indicate a successful step was taking.  They are actually trigger patterns that execute the #OK command to complete a slow walk step.  When using the mapper, the mapper will automatically add strings for the room name or description to this list.  When not using the mapper, a string such as ^Exits is used to match the exit line that is displayed when you successfully enter a room.


Sounds

This Preferences page contains options that control what sounds are used by zMUD.  Most of these preferences are global.

Enable Sounds (local)

Controls whether all sounds are on or off.  When this is off, zMUD will not use any sounds.  Default is on.

Beep Sound (global)

The sound used by the #BEEP command.

Startup Sound (global)

The sound played when zMUD is started.

Connect Sound (global)

The sound used when you successfully connect to a MUD.

Disconnect Sound (global)

The sound used when you are disconnected from a MUD.

In the input boxes, you can specify the name of a WAV file, or can enter the numeric value of the window event you wish to trigger.  Window event 0 is the standard beep sound.  Other sounds occur at 16, 32, 48, 64, etc.

When searching for WAV files, zMUD first looks in the Sounds subdirectory of your current character folder.  It then looks in the ZMUD.EXE directory, and finally in any directory specified by the Sound Files directory path.


Spam Protection

This Preferences page contains options that control zMUD's automatic spam prevention feature.  Most of these preferences are local to the specific character.

Many MUDs get upset if you send several identical commands in a row to the MUD.  For example, sending 20 consecutive "recall" commands might cause the MUD to disconnect you.  The MUD does this to avoid people chatting the same line over and over again to everyone on the MUD or to people in the same room.  zMUD can prevent the MUD from detecting multiple consecutive commands by sending a different command after a certain number of identical commands are detected.  For example, if you have the zMUD Spam Limit set to 10 and try to send 20 recall commands, zMUD will send 10 recall commands, followed by your defined Spam Command, followed by another 10 recall commands.  Note that you should never use this feature to abuse the MUD or other players on the MUD by chatting or telling the same message over and over again...that kind of behavior can easily get you banned from the MUD.  This zMUD feature is only intended to prevent normal MUDding from being accidentally interrupted by the MUD spam detection code.

Spam Limit (local)

Controls the number of consecutive commands needed to trigger the spam prevention feature.  Set to zero to turn off this feature.  Default is zero.

Spam Length (local)

The minimum length of commands detected by the MUD's spam code.  Normally, short commands such as directions are ignored by the MUD's spam code.

Spam Command (local)

Command to send to the MUD when the Limit number of consecutive commands have been sent to the MUD.  Set this to a command that doesn't do much on the MUD.  Something like "save" works well.


Special Characters

This Preferences page contains options that control special characters are used by the zMUD parser.  Most of these preferences are local to the current character.

When parsing is turned on, zMUD looks for several special characters in the command line used to execute zMUD commands or perform other special operations.  If you want to send all text to the MUD verbatim, turn off the Parsing option in the Setting menu or click the computer icon to the right of the command line.

Individual characters used for zMUD parsing can be changed or completely disabled.  If you disable a character you will lose the use of that zMUD feature.

Command Char

Used to begin zMUD commands.  Defaults to #

Separator Char

Used to separate multiple commands on the same line.  Default is ;

Variable Char

Used to expand the value of a variable.  Default is @ (TinTin uses a value of $ for this).

Parameter Char

Used to expand internal zMUD variables and functions.  Default is %

Focus Char

Used to send commands to other windows.  Default is :

Movement Char

Used to begin speedwalking and paths.  Default is .

History Char

Used to recall commands from the command history.  Default is !

Quote Char

Used to escape other special characters.  To send any special character to the MUD without parsing it, preceed it with this character.  Default is ~


Speed Menu

This Settings Editor dialog page allows you to edit the properties of a Speed Menu item..

The Speed Menu is the menu that is displayed when you right-click on the output window.  The Name field contains the name of the menu item.  This value can contain variables or functions since it is parsed before being displayed in the popup menu.  The Commands field gives the commands executed when this menu item is selected from the right-click menu.

To select a default item to execute when you double-right-click on the MUD window, select the "Make this the default" item.  Otherwise you should select the "Use last selected item" to execute the last menu item selected when you double-right-click on the MUD window.

The %selline and %selword variables are very useful in the definition of menu items since they indicate the word and line that were right-clicked.  For example, the definition:

kill %selword

will issue the kill command to the MUD along with the word you right clicked on.  Thus, if you set this as the default action, and double-right-click on the name of a mob, that mob will be killed.  This beats typing in the name of the mob.

The Comment field assigns a comment or note to document the function of the menu item and is optional.  The Class drop-down list at the bottom allows you to assign this menu item to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


SpeedWalking
Speedwalking Paths

This Settings Editor dialog page allows you to edit the properties of a Speedwalking Path.

The Path Name field gives the name of the path.  The Directions field specifies the directions assigned to the path.  You can also execute a path by clicking the Fast walk button to walk there quickly, the Walk Reverse button to walk the path in reverse, or the Slow Walk button to walk there using the slow walk settings.

The Reverse button to the right of the Directions field simply reverses the directions in the Directions field without actually walking the path.

The Comment field assigns a comment or note to document the function of the Path and is optional.  The Class drop-down list at the bottom allows you to assign this path to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


Speedwalking with the Map

While maps are useful as visual aids, they are even more important as a speedwalk tool.  Once you successfully create a map of a MUD zone, you can then use it to quickly to any location.

Consider normal speedwalking using paths.  You create a path to go from one location to another.  For example, you might create a path the takes you from the temple to the magic shop.  However, this path will only work if you are currently at the temple.  If you are somewhere else on the MUD, you must first to to the temple, then use your speedwalk path to go to the magic shop.

If you have the area mapped in zMUD, you simple double-click the magic shop room and zMUD will automatically generate the shortest speedwalk path to that location.  With an accurate map, you can move to any location within the current zone by just double-clicking on it!  This makes maps one of the most valuable tools for a MUD client.  You never have to worry about getting lost and can get anywhere you want quicker than most any other players (unless they are using the zMUD mapper too).

Currently you cannot double-click a room in a different zone but can only speedwalk to another room in the same zone.  This restriction will be removed in a future version of zMUD.

The mapper will perform speedwalking three different ways: Fast, Safe, Slow.  You can choose your speedwalking preference in the Speedwalking section of the Map Properties in the Edit menu.

With Fast speedwalking selected, the movement commands to get to the destination room are sent all at once to the MUD.  This is the fastest way to walk, but also the most dangerous.  Because they are sent to the MUD at one time, any commands you enter are now received by the MUD *after* all of the speedwalk commands.  Thus, if a monster attacks you along the way, your kill command will be delayed, and the mapper will also lose track of where you are (it will think you reached the destination when you didn't).  Even those Fast walking is Fast, it is not recommended.

Safe speedwalking is a special mapper version of slow walking.  The mapper uses the first line of the room description (or the room name if your MUD doesn't have room descriptions) to determine if a walking step was successful.  Basically, the mapper sends the first direction command, then waits for the matching room description.  Then it sends the next movement command and waits for the room description again.  The advantage of this method is that you are only moved on the map when you actually successfully move on the MUD.  Fighting monsters along the way doesn't interfere with the speedwalking.

Slow speedwalking is very similar to Safe speedwalking, except the normal Slow walking parameters are used.  This is the most useful and most recommended way to speedwalk because the Slow Walk timeout can be used to abort a speedwalk in the middle.  For example, if you encounter a monster and start fighting it, the slow walk timer will abort the speed walk and you can continue when done fighting using the #STEP command.  Also, any other slow walk triggers that you have set up will confirm the mapper movement.  Combining the power of the mapper with the power of the slow walking features in zMUD makes walking anywhere in the MUD very safe and fast.


Status Window definition
Status Bars/Window

This Settings Editor dialog page allows you to edit the properties of the status bar and status window..

The Status Line field shows the definition of the status line.  The Window field shows the text displayed in the status window.  You can have several status bar and window definitions, grouped into different classes.  All currently enabled status bar and status window definitions are appended together to form the actual display.

The Comment field assigns a comment or note to document the function of the status line and is optional.  The Class drop-down list at the bottom allows you to assign this status line and window to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


Syntax
Color Syntax

This Preferences page contains options that control conversion of ANSI color to MUD color commands.  Most of these preferences are local to the current character.

These options control how color commands are sent to the MUD, rather than how ANSI color commands are received.  Most MUDs do not allow you to send the raw ANSI escape codes to the MUD, but instead implement a syntax for specifying colors.  When using the zMUD editor to set the color of text, you can use the color syntax specified on this page to convert from the ANSI color codes used by the editor to the syntax needed by the MUD.  This syntax also effects how lines that use the %ansi function send the color information to the MUD.

First, each color is assigned a keyword, usually a single letter.  All 16 foreground colors and 8 background colors are shown and you enter the keyword that the MUD uses to refer to the color in the box provided.  For example, if your MUD uses r for dim red and R for bright red, enter r into the box next to the dim red color and R into the box next to the bright red box.  You'd probably also enter r into the red background box also.

Next, the MUD usually has a way to represent the foreground and background colors.  For example, if the MUD uses %r for foreground red and &r for background red, enter %F into the "Syntax for foreground" box and &B into the "Syntax for background" box.  Some MUDs also have a command to set both colors at once, which you would enter into the "Syntax for setting both" box.  In this example, you would enter %F&B to set both colors.  Finally, enter any command that the MUD uses to reset color back to the default value in the "Syntax for reset" box.

You can also globally enable or disable the color syntax using the option on this page.  The zMUD editor has its own option for using color syntax which you must also turn on to convert ANSI colors to color syntax commands using the editor.


T+

Syntax: #T+ classname

Example

Enable execution of all triggers with the specified classname.


T+ example

#T+ autosplit

turn on the triggers in the autosplit class.


T-

Syntax: #T- classname

Example

Disabled execution of all triggers with the specified classname.


T- example

#T- autosplit

turn off all triggers in the autosplit class.


T?

Syntax: #T?

Related: #TIMER #TS

Example

Display the amount of time remaining in the timer.


T? example

#T?

If 10 seconds are left in the timer, the string 10 secs is displayed.


TAB

Syntax: #TA word

Example

Add the specified word to the tab completion list.  If you type the first part of this word and press <TAB> the rest of the word will be filled in for you.


TAB example

#TA zugg

Add zugg to the tab completion word list.  If you now enter z then press <TAB> the ugg will be filled in for you.


TELEPORT

Syntax: #TE room [zone]

Related: #WALK

Example

Changes your location on the map to a specific location -- your MUD position is unchanged.  You can specify either a room name (the short name of a room), or room number, and you can specify either a zone name or a zone number.  If the zone is omitted, the current zone is assumed.


TELEPORT example

#TE temple Midgaard

Sends you to the room marked as the temple in the Midgaard zone

#TE 0 “New Thalos”

Sends you to room zero in the zone of “New Thalos”


TEMP

Syntax: #TEMP pattern commands

Related: #TRIGGER

Example

Creates a temporary trigger.  See the #TRIGGER command for more information on triggers.  Temporary triggers execute once and then automatically delete themselves.


TEMP Example

#TEMP {You failed your cast} {cast @lastspell}

Sets up a trigger that will execute once and then delete itself.


TIMER

Syntax: #TI [timer-state command message-flag]

Related: #T? #TS

Example

Toggles the timer.  If the timer is off, it is turned on.  If it is on, then it is turned off.  Note that the amount of time left in the timer is not effected by this command.

The optional timer-state parameter is used to determine whether to turn the timer on, off, or if missing, just toggle the current timer state.  The optional command parameter is used to specify the commands to execute when the timer expires.  The optional message-flag is used to specify whether a message is displayed to the screen when the timer is about to expire.  If this flag is 0 (false) then no message is displayed.  The default for this parameter is true, or whatever value has been set in the Timer preferences screen.


TIMER example

#TI

turns on or off the timer.


TRIGGER

Syntax: #TR pattern command [classname]

Example

This is one of the most powerful features of zMUD.  It allows you to define a command to be executed whenever the matching text is received from the MUD.

The first parameter is the text to be matched.  If the text contains a space, you need to enclose it in quotes.  This pattern can contain special pattern matching symbols and wildcards.  The second parameter is the command to be executed when the pattern is received from the MUD.  Since this command usually consists of more than one word, you must enclose it in quotes.  The third parameter is optional, and is the name of the trigger action class that this action is part of.  Triggers can be enabled and disabled when part of a class.

For advanced trigger options, you must go to the Settings dialog.  In this dialog, you can determine whether the action is triggered at the end of each line received from the MUD, or if it is just triggered at the end of receiving a block of data from the MUD.  Responding to MUD prompts such as Username and Password require a trigger that activates after a block of text is received since these prompts are not normally followed by a newline.


TRIGGER example

A simple trigger action

#TR {chats} {#COLOR red}

whenever a line containing the word ‘chat’ is received, the color of the line is changed to red.

Triggers for automatic logins

#TR {^Username:} {#CH}

#TR {^Password:} {#PW}

In the Preferences dialog, turn off the ‘Trigger on Newline’ option and turn on the ‘Trigger on Prompt’ so that these macros don’t wait for a newline character.  Note that the ^ character at the beginning of each pattern forces them to match the beginning of a line.

Parameters in triggers

#TR {^You get (%d) coins} {split %1} autosplit

Whenever you see a line like ‘You get [number] coins’ the number of coins is stored in the %1 parameter.  The command then uses this value to split the coins among the party members.  A class name of autoplit is used so that you can enable and disable the trigger using the T+ and T- commands.


TS

Syntax: #TS [value]

Related: #TIMER #T?

Example

Sets the value of the timer and starts the countdown.  At 5 seconds before the counter hits zero the string TICK IN 5 SECONDS. is displayed on the screen.  If the value is omitted, then the origin of the timer is reset.

This timer is typically used to time ticks in the MUD.  To get started, enter #TS value where value is the approximate time between ticks.  When a tick actually arrives, enter #TS without a parameter to fine tune the timer interval.  You can then set up an action that triggers on the TICK IN 5 SECONDS. string to perform an action such as resting.


TS example

#TS 60

set the tick timer to 60 seconds and begin the countdown

#TS

refine the timer interval.  Use this when the tick actually arrives.


TYPE

Syntax: #TY filenum [pattern]

Related: #FILE

Example

If pattern is omitted, the entire contents of the numbered file are displayed on the screen (starting from the current position of the file).  If pattern is given, only lines matching the pattern are displayed.  Pattern can contain full pattern-matching commands.


TYPE example

#FILE 1 mudlist.txt

#TYPE 1

displays the entire contents of the file mudlist.txt to the screen

#TYPE 1 castle

only displays lines from mudlist.txt containing the word castle


TZ

Syntax: #TZ

Related: #TS

Example

Resets the tick timer to zero but does not change its duration.


TZ example

#TZ

Resets the tick timer to zero

#TRIGGER {The sun rises} {#TZ}

Resets the tick timer when the text The sun rises is received from the MUD.


Tab Completion

This Settings Editor dialog page allows you to edit a tab completion word.

The Word field contains the tab-completion word.  These words are automatically expanded on the command line if you enter the first few unique characters and then press the <TAB> key.

The Comment field assigns a comment or note to document the function of the tab word and is optional.  The Class drop-down list at the bottom allows you to assign this tab word to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.

Dynamic Tab Completion

A second type of tab completion is used with the Shift-<TAB> key.  The last word larger than the Tab Limit (in the Preferences) that was last displayed in the output window that starts with the last character in the command line is recalled into the command line.  For example, if someone with a really complicated name such as Xenafragilicious talks to you, you can enter the X character into the command line and press Shift-<TAB> to recall the entire word.  You do not need to store words in the settings editor for dynamic tab completion...it is performed automatically.


Tick Timer

This dialog allows you to easily manipulate the tick timer commands in zMUD.  The current value of the timer (counting down to zero) is shown at the top.  The timer can be started and stopped using the Start and Stop buttons.  The Synch button is used when a tick on the MUD actually occurs.  The current tick interval will be modified to reflect the actual tick on the MUD.  Note that most tick intervals vary depending upon the lag on the MUD, so don’t think this timer will save your life or anything.  The Reset button resets the timer back to the tick interval.

The Tick interval can be set from this dialog to a given number of seconds.  The Timeout Margin indicates the point at which the Timeout Command is executed.  For example, if the Margin is 5, the Command will be executed when the timer reaches 5 seconds.

Normally when the Tick Margin is reached, a message is displayed to your screen telling you a tick is coming.  You can disable this message by turning off the Display Tick Message option


Trigger Options

This Settings Editor dialog page allows you to edit the properties of a Trigger.

Triggers have many properties, so a page tab is displayed to allow you to select the Pattern, Options, or Testing property pages for Triggers.

Normally, triggers are set to a Type of Pattern which indicates that the trigger should fire when the pattern of text is received from the MUD.  Expression triggers evaluate the expression stored in the Pattern field after each line is received from the MUD and executes the commands if the pattern expression is true.  Alarm triggers use the pattern field to specify a time when to execute the trigger.  See the #ALARM command for more information on time pattern values.

The Trigger On field determines whether the trigger pattern is detected at the end of each line (Newline), or after a full buffer of text is received from the MUD (usually at the end of a MUD prompt).  You can select both if necessary.

Case Sensitive

Determines whether the pattern matching is case sensitive or not.

Color Trigger

Turn this option on to allow patterns to contain ANSI color sequences.  An ANSI color sequence looks like %e[xxm where xx is the ANSI color value. To trigger on specific color patterns, turn this option on, select the line from the MUD output window that contains the pattern you want to match, and paste (Ctrl-V) this line into the trigger pattern field.  If the Color Trigger option was on when you pasted the line, any ANSI color codes will be pasted into the Pattern field along with the rest of the text.

Verbatim

Tells zMUD to match the pattern verbatim without parsing any special pattern characters or wildcards in the pattern.

Trigger on Trigger

When on, zMUD executes trigger matching on any output displayed by this trigger.  Care should be used with this option to avoid an infinite loop of trigger matching.

Temporary

Indicates that this trigger is temporary, and should only fire once.  Once the trigger has fired, it is automatically deleted.  Temporary triggers are not saved to your settings file.


Trigger Testing

This Settings Editor dialog page allows you to edit the properties of a Trigger.

Triggers have many properties, so a page tab is displayed to allow you to select the Pattern, Options, or Testing property pages for Triggers.

The Pattern from the first page is displayed again on this page.  Enter sample text that is received from the MUD into the Sample box and click the Test button to see if the trigger properly executes.  Also, the value of any saved wildcard patterns will be displayed for debugging of trigger commands.


Triggers
Triggers (Pattern page)

This Settings Editor dialog page allows you to edit the properties of a Trigger.

Triggers have many properties, so a page tab is displayed to allow you to select the Pattern, Options, or Testing property pages for Triggers.

The Pattern field displays the text pattern received from the MUD that causes the trigger to execute.  The Commands field shows the commands that are executed when the trigger executes.

The Comment field assigns a comment or note to document the function of the Trigger and is optional.  The Class drop-down list at the bottom allows you to assign this trigger to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


UNALIAS

Syntax: #UNA alias

Related: #ALIAS

Example

Deleted the specified alias from memory.  Careful, there is no way to get it back after you do this.


UNALIAS example

#UNA kk

removes the alias called kk


UNBUTTON

Syntax: #UNB number

Example

Delete the specified button.  Note that other button numbers are not changed by this process.  To delete a button and renumber all the buttons after it, delete the button in the Button Settings editor dialog.


UNBUTTON Example

#UNB 2

Deletes button number 2


UNGAG

Syntax: #UNG

Related: #GAG

Example

Prevents the current line from being gagged.  Typically used in a trigger to undo the GAG action of a previous trigger.


UNGAG example

#TRIGGER {Zugg} {#GAG}

#TRIGGER {tells you} {#UNGAG}

Normally, the first trigger would gag all lines that contain the string Zugg.  However, the second trigger looks for the string ‘tells you’ and ungags it.  Thus, the string ‘Zugg tells you’ will still be displayed.


UNKEY

Syntax: #UNK key

Related: #KEY

Example

Deleted the specified key macro from memory.  Careful, there is no way to get it back after you do this.


UNKEY example

#UNK <F1>

removes the macro assigned to the F1 key


UNTIL

Syntax: #UNTIL expression commands

Example

Execute the given commands until the expression evaluates to TRUE (non-zero)


UNTIL example

#VAR A 10

#UNTIL (@A = 0) {#SHOW @A;#ADD A -1}

Displays a countdown from 10 down to 1.  When @A becomes 0, the loop stops.


UNTRIGGER

Syntax: #UNT pattern

Related: #TRIGGER

Example

Deleted the trigger assigned to the specified pattern from memory.  Careful, there is no way to get it back after you do this.


UNTRIGGER example

#UNT {tells you}

removes the trigger associated with the pattern ‘tells you’


UNVAR

Syntax: #UNV variable

Related: #VAR

Example

Deleted the specified variable from memory.  Careful, there is no way to get it back after you do this.


UNVAR example

#UNV tank

removes the variable called tank


URL

Syntax: #URL url

Example

Automatically launch your web browser to display the specified URL.  Requires that you have a Web Browser that associates itself with .HTM files and that supports the Open_URL DDE call (has been tested on Windows 95 with Netscape and Internet Explorer)..


URL example

#URL http://www.pobox.com/~~zugg/zmud.html

Displays the zMUD Home Page in your Web Browser.  Note that two ~ characters are used since the first one represents the default zMUD Quote character.


User Interface

This Preferences page contains options that control the zMUD user interface.  Many of these are global preferences as indicated below:

Auto Clear Input (local)

If set, the command input line is cleared when Enter is pressed.  Otherwise the text in the command line is not cleared but is simply highlighted (default).  When the command line is highlighted, any text that you type automatically overwrites the highlighted text, so this works similar to auto-clearing but allows you to send the same command in a row several times by just hitting Enter multiple times.

Auto NumLock (global)

Controls whether the NUMLOCK key is automatically activated when zMUD is started.  Default is on.  Users with laptop computers should turn this option off.  Turn this option on to activate the movement macros assigned to the keypad.

Autosave on exit (local)

Controls whether the settings for the current character are automatically saved when you exit or whether you are prompted for the save.  Default is on.

Backup settings (global)

Controls whether backup files are made when settings are saved.  Default is on.  Backups of .MUD files are saved in .BAK files.

Tool bar (global)

Controls whether the main toolbar is displayed below the main menu.  Default is on.

Command line (local)

Determines whether a command line is displayed at the bottom of the MUD window.  If this option is turned off, a common command line is displayed in its own window

Status bar (local)

Determines whether a status bar is displayed in the current MUD window.

Help Balloons (global)

Controls whether popup hints are displayed when the mouse is positioned over a control that has hints available.  Default is on.

Clock (global)

Controls whether the clock is displayed to the right of the command line.  Default is on.

Window Tabs in Menu Window (global)

Controls whether multiple open windows are displayed in a tab list below the toolbar and menu in the main zmud window. Default is on.

Window Tabs in Command Line (global)

Controls whether windows are displayed in a tab list in the common command line window.

Scroll Amount (local)

Controls how many lines of text are buffered before being updated in the MUD output window.  If set to one, the window will be updated after each line is received from the MUD, which results in very smooth scrolling, but is also the slowest settings.  If set to zero, the window is only updated when the MUD finishes sending an entire network buffer, which results in jumpy scrolling (and may result in some lines never displayed if the buffer is larger than a screenful) but is the fastest.  The default is 5 which updates the window after every 5 lines are received from the MUD.  The default setting is a good copromise between speed and smoothness.  Note that in any setting, triggers are always tested on each line received whether it is displayed or not.

History Size (global)

Controls how many previous commands are saved in the command history.  Default is 20.


User Interface Overview

zMUD provides many special features that enhance the user interface or that allow you to customize the user interface to your preference.  In general, if you find something about the zMUD user interface annoying, there is usually a way to change it.

New Window Caption Buttons

On the caption bar of most zMUD windows are some new buttons.  In addition to the standard Minimize, Maximize, and Close buttons, many windows also have Rollup/Rolldown and Stay-On-Top buttons.  MUD Output windows and the main zMUD menu window also have a partial maximize button.

  Rollup/Rolldown

These buttons collapse the window so that just the window caption is shown (Rollup), or expands the window back to its normal size (Rolldown).

  Stay On Top

When this button is clicked, the window is set to stay on top of other windows.  This function is a toggle.  When the Stay On Top function is active, the button appears depressed.  Note that there are bugs in Windows when dealing with multiple StayOnTop windows.

  Partial expand

When the + button is clicked, the MUD output window expands to fill the entire without covering the main zMUD menu window.  When the - button is clicked, the window returns to its previous size and location.  This button is similar to the standard Windows Maximize button, but the Windows Maximize button will cause the MUD window to cover the menu window.

When this button is used on the main zMUD menu window, the + button causes the menu window to move to the top of the screen and to expand to the full width of the screen.  If the common command line is visible, it is moved to the bottom of the screen.

All of these functions are also available via the System menu (Ctrl-Space) in the upper left corner of the window.

Window

The Layout menu is used to select several window tiling options.  These options can be used to control how multiple windows are layered on the screen.

To switch between windows on the screen, click on the desired window, or select it from the Windows menu.  Also, you can display a Window Tab bar beneath the toolbar in the main zMUD menu window (by default), or along with the common command line described below.  You can also switch between windows using the Ctrl-Tab or Ctrl-N keys.  To change the name of a window, use the #NAME command.

Task Bar Icons

If you prefer having icons for your windows in the Windows Task Bar, you can turn these options on in the Windows Preferences page.  Or, if you prefer fewer icons, turn these options off.

Toolbars

Many zMUD windows contain toolbars at the top just beneath the menu bar.  The buttons on these toolbars normally consist of both an icon and a text label.  You can customize these toolbars by right-clicking on them and deciding whether you want text labels, icons, or both.

Command Lines

By default, each new MUD window has its own command line at the bottom of the window.  This allows each window to maintain a seperate command history as well.  If you prefer having a common command line for all of your MUD windows with a common command history, right-click your MUD window to bring up the Window Options menu and turn off the Show Command Line option.  This removes the command line within the window and activates the command command line.

Child windows created with the #WINDOW or #CAPTURE commands normally do not have a command line or status bar associated with them, but you can turn these on by right-clicking the window.  To save the settings of a child window, save them to a file with the same name as the window.  For example, if the window is named "Tells", save the settings to the file Tells.mud.  This allows you to customize colors, fonts, and window options for your child windows and have them restored the next time you use that window.

The status bar displayed at the bottom of a MUD window can be turned on and off via the right-click Windows option menu as well.


Using Zones

Most MUDs group rooms into "areas" or "zones".  These zones are then linked together to form the MUD that you play.  In fact, some zones were built many years ago and are shared on many different MUDs, sometimes with minor or major modification.  For example, the "Old Thalos" area is a common area on many DIKU MUDs.

The zMUD Automapper follows this same structure by splitting your map into zones that are linked together.  Each zone is stored in its own .MAP file and represents a zone or area on your MUD.  While you are not forced to split your maps into zones, it makes managing the huge MUD areas easier, and prevents you from losing as much data if one of your map files is lost or corrupted.

The main reason for creating zones is to clean up and simplify the display of your maps.  For example, when walking through town you might enter a mansion.  This mansion has several levels, an attic and basement and consists of dozens of rooms.  On the map of your town, you'd like the mansion represented by a single room.  Then, when you enter that room, you "zoom in" to see all of the rooms in the mansion.  By putting the mansion into a new zone, the rooms of the mansion do not get overlayed with the rooms of the town, reducing the clutter in the town map.

To create a new zone, select the room or rooms that you want to make into a zone, and select "Move Rooms to Zone" from the Edit menu.  First you will get a list of all current zones in the MUD map.  To move the selected rooms to an existing zone, just select the zone from the list and click OK.  To move the selected rooms to a new zone, click the New Zone button.  You will then be prompted for the name of the Zone.  As you enter the name of the zone, a filename to store the zone map will also be created.  You can accept the default zone filename or enter your own.  Click OK when done and you will see the selected rooms in a new zone, linked back to the previous zone.

Zone List

By default, when in Map mode, a list of all zones in the current MUD map is displayed in alphabetical order to the left of the map.  To display a different zone, just click on the name of the zone in this list.  You can hide this list by clicking the Hide Zones button in the upper-left corner of the map dialog.  Or you can show it again with the Show Zone button.

At the same time, the current zone is shown as a tab just above the map window.  You can keep your most commonly used zones in the tab list by dragging the zone name from the list on the left and dropping it onto the tab row.  The current zone will always be shown as the first tab, but any zones you drag to the tab list will remain on the list until you drag them back to the zone list.  Thus, you can drag your favorite zones to the tab list, then hide the master zone list to make more room for the map display window.

You can also add zones to the tab list by right-clicking the zone name in the zone list and selecting Add To Tab List.  You can remove zones from the tab list by right-clicking the tab and selecting Remove From Tab List.

Zone Links

Zone Links are like normal links between rooms except that they span zones.  By default, zone links are displayed as broken, labelled links, with the name of the destination zone as the link label.  To turn off this label, select the Link properties and turn off the Display Link option.

The biggest difference between zone links and regular room links is that the two sides of a zone link exist as two separate one-way links, rather than a normal two-way link.  Thus, when you delete a zone link, only the side of the link that you deleted is removed.  If you go to the destination zone you will still see the other end of the link in that zone.  So, to delete a zone link entirely, you must delete both ends seperately.

Also, the Automapper only has one zone map in memory at any given time.  So when you traverse a zone link while walking through the map, the mapper automatically assumes that the step is successful and loads the destination zone.  It does this because when traversing the link the mapper doesn't know the room name or description of the destination room and cannot create the trigger that is used for safe walking.  So, create your zone links in safe rooms and away from any doors that might abort normal walking.

Creating a link between two zones is as easy as creating a normal link between two rooms.  In Map mode, select the Link tool in the toolbar to the left of the map.  Then, click on the edge of the room that you want the link to originate from.  Then, move the mouse over to the list of zones on the left of the map (if the zone list is not visible, click the Show Zones button in the upper left corner of the map window).  Click on the destination zone to display it in the map window.  Then move the mouse back into the map window and click on the edge of the destination room.  You will then see the new zone link displayed on the map.  Both ends of the zone link are created, so if this is a one-way link, you'll have to manually delete the zone link that you don't want.

Cross-Zone Speedwalking

Many MUDs have important locations that you want to be able to walk to no matter where they are.  For example, you always want to be able to get back to the temple, your clan hall, or other starting locations.  Locations such as stores, repair shops, or training rooms might also be important.  You can add important rooms to the zone list by right-clicking the room on the map and selecting the "Add To Speedwalk List" command.  The name of the room will be added to the zone list indented under the current zone name.  To center the map on one of these important locations, just click the name of the room in the zone list: the zone will be opened and centered on the room you selected.  You can also edit the name of these locations by clicking once to select, then clicking again to edit, or select Rename from the right-click menu.

To speedwalk to an important location, simply double-click the name of the room in the zone list, or select Walk To Room from the right-click menu.  You cannot current speedwalk to a location in a different zone, but that feature is planned for a future version of zMUD.


VARIABLE

Syntax: #VA variable value

Example

Similar to the ALIAS command.  Assigns the specified value to a variable.  You do not need to specify the @ variable character.  This allows you to define variables independent of the user's variable character setting.

An alternative syntax is variable = value or variable := value.


VARIABLE example

#VA coins 1000

assign 1000 to the @coins variable

coins = 1000

same as above.


VERBATIM

Syntax: #VERB [value]

Example

Toggles the parsing mode.  If value is specified, then it is used to set the parsing mode.  Parsing is on if the value is non-zero.


VERBATIM example

#VERB

Same as selecting the Parse option from the Settings menu.


VERSION

Syntax: #VE

Example

Displays the current version and date of zMUD


VERSION example

You don’t really need an example of this, do you?


Variables

This Settings Editor dialog page allows you to edit the properties of a Variable.

The Variable field gives the name of the variable, and the Value field gives the current value of the variable.  The Default field can be used to assign a startup value to the variable when the character is first loaded or the #RESET command is used.

The Comment field assigns a comment or note to document the function of the Variable and is optional.  The Class drop-down list at the bottom allows you to assign this variable to a class.  You can enter the name of a new class into this field or select an existing class from the list.  The Class can be enabled or disabled with the buttons shown next to the class name field.


WAIT

Syntax: #WA [time]

Example

Delays processing of further commands on the line until text is received from the MUD.  Sometimes command from zMUD can be executed too fast for the MUD.  This command is used to slow them down.

If the time parameter is specified, the processing of further commands on the line is delayed the amount of time specified.  Time is in units of milliseconds - e.g. 1000 is 1 second.  Note that the commands remaining on the line are queued up for this time.  You can still enter other commands on the command line while waiting.  Only one WAIT can be active at a time.  Starting a second WAIT cancels the first and discards the commands in the queue.


WAIT example

west;#WA;kill citizen

sends the west command to the MUD, then waits for some output from the MUD, then sends the kill citizen command.  Without the #WA command, on some MUDs the kill citizen would be sent before you actually moved west.

#WA 2000;kill citizen

wait for 2 seconds, then send the kill citizen command to the MUD


WALK

Syntax: #WAL room

Example

Speedwalks you to the named room (short name) on the map.  The same as selecting the room from the pulldown box on the right-most edge of the mapper status bar.


WALK example

#WALK temple

Speedwalks you to the room marked as the temple within the current zone no matter where you are in the zone.


WHILE

Syntax: #WH expression commands

Example

Execute the given commands as long as the expression evaluates to TRUE (non-zero)


WHILE example

#VAR A 10

#WHILE (@A <> 0) {#SHOW @A;#ADD A -1}

Displays a countdown from 10 down to 1.  When @A becomes 0, the loop stops.


WINDOW

Syntax: #WIN name [string]

Example

Display text in another window.  If the window doesn’t exist, it is created.  Note that when the window is first created, the file name.ZCR or name.MUD is loaded (ZSC is a text script file, MUD is a binary settings file).  If a text string is specified, it is displayed in the window.


WINDOW example

#WIN tell

create a new window named ‘tell’.  It tried to load tell.zsc or tell.mud as the settings for this window.

#FORALL @eqlist {#WIN status %i}

creates a window called “status” if it doesn’t already exist.  Loop through the string list @eqlist and display the resulting items in the status window.


WIZLIST

Syntax: #WI

Example

Display the credits for zMUD.


WIZLIST example

Try it and see!


WRAP

Syntax: #WR [column]

Example

Toggles the auto word wrap mode.  If column is specified, the text is wrapped at the given column.


WRAP example

#WR

Turns on word wrapping


WRITE

Syntax: #WRI n value [rec]

Related: #READ

Example

Write a value to the nth file.  If n is 1-5 then the file is a text file, and the value is appended to the end - rec is ignored.  If n is 6-10, then the file is structured, and value is written to the record given by rec.  If rec is zero or omitted, value is appended to the file.


WRITE example

#WRI 1 {logged onto Dark Castle}

append the string to the end of text file number 1.

#WRI 6 {this is record 3} 3

writes the string as the third record in file 6.


Windows

This Preferences page contains options that control how zMUD handles windows.  Most of these preferences are global.

Create task bar icon for Automapper windows

Controls whether an icon is added to the Windows taskbar at the bottom of the screen for the Automapper window.  Default is off.

Create task bar icon for main MUD output windows

Controls whether an icon is added to the Windows taskbar at the bottom of the screen for the main MUD output windows.  Default is on.

Create task bar icon for secondary windows

Controls whether an icon is added to the Windows taskbar at the bottom of the screen for secondary windows created with the #WINDOW and #CAPTURE commands.  Default is off.

Create task bar icon for editor

Controls whether an icon is added to the Windows taskbar at the bottom of the screen for the zMUD editor window.  Default is off.

Automatically bring to front window with activity

When on, subwindows that receive activity are brought to the front so they are visible.  Main MUD windows are not effected.

Bring Menu bar to front

This option will popup the main zMUD menu window whenever the mouse is moved to the top of the screen.  This is useful when the MUD window is running in fullscreen mode.  When the mouse is moved back over the MUD window, focus returns to the MUD window.

Use size/position in default.mud

Determines whether the window size and positions saved in the DEFAULT.MUD file are used instead of the normal tiling options.


Word Wrap

This Preferences page contains options that control zMUD's word wrapping feature.  Most of these preferences are local to the specific character.

Word Wrap (local)

Controls whether zMUD performs any word wrapping of the text received from the MUD.  Default is on.

Auto Wrap (local)

Controls whether zMUD wraps lines based upon the width of the current MUD window or whether is uses the Wrap Column defined below.  Default is on.

Wrap Column (local)

Sets the fixed column used to wrap text regardless of the width of the current MUD window if the Auto Wrap option is off.

Wrap Indent (local)

Specifies the number of spaces to indent wrapped lines by on the screen.  Default is 3.


YESNO

Syntax: #YE question yes-command no-command

Example

Displays a dialog box that asks the specified question.  If the Yes button is clicked, the yes-command is executed.  If the No button is clicked, the no-command is executed.  If <Escape> is pressed, then no command is executed.

You can customize the buttons by placing the caption you want for the button in front of the command, separated by a colon.  For example {Sword:get sword} creates a button labeled “Sword” which executes the command “get sword” when clicked.  Using these custom buttons, you can add as many buttons to the YESNO command as you want.  If you put an asterisk * at the beginning of a button caption, that button is flagged as the default button.


YESNO example

#YESNO “Do you want to sac the corpse?” {sac corpse}

Displays a standard Yes/No dialog.  If Yes is clicked, the corpse is sacrificed.

#YESNO “Where to you want to go today?” {Temple:.temple} {Guild:.guild} {*Microsoft:#URL http://www.microsoft.com}

Displays a dialog with three buttons, labeled: Temple, Guild, and Microsoft, respectively.  The Microsoft button is the default button because of the * in the caption.  If the Temple button is clicked, the command .temple is executed, which speedwalks to the temple path.  The Guild button works in the same way.  If the Microsoft button is clicked, the #URL command sends your web browser to the Microsoft site.


Zuggs Multi-User Dungeon client
Zugg's Multi-User Dungeon client


abs

Syntax: %abs(i)

return the absolute value of I


additem

Syntax: %additem(s,list)

add the string s to the specified string list


alias

Syntax: %alias(s)

expand the value of alias s


ansi

Syntax: %ansi(fore,back)

return the ANSI codes for the given colors


ascii

Syntax: %ascii(s)

returns the ascii value of the first character of the string s.


begins

Syntax: %begins(s1,s2)

true if s1 starts with s2


btncol

Syntax: %btncol(button,back,fore)

change the color of a button


btnimage

Syntax: %btnimage(button,filename)

change the image assigned to a button


case

Syntax: %case(i,s1,s2,s3...)

if I=1, return s1, if I=2, return s2, etc.  Up to 8 strings can be given


char

Syntax: %char(i)

return the ASCII character associated with the number I.  This function is also used to translate the system characters (;:@%!.)to their current values if they have been changed.


clip

Syntax: %clip(s)

return or set the text in the clipboard


color

Syntax: %color(fore,back)

converts a descriptive color into an attribute value


concat

Syntax: %concat(s1,s2,s3..)

return all strings concatenated together (up to nine parameters)


copy

Syntax: %copy(s,i,n)

return a portion of string s, starting at character position I, and returning n characters


dde

Syntax: %dde(serv,topic,item)

fetch data from a dde server


ddeclose

Syntax: %ddeclose

close a DDE connection


ddemacro

Syntax: %ddemacro(serv,topic,s)

tell the specified dde server to execute the macro in s


ddeopen

Syntax: %ddeopen(serv,topic)

open a DDE connection to the specified server and topic


ddepoke

Syntax: %ddemacro(serv,topic,s)

tell the specified dde server to execute the macro in s


defined

Syntax: %defined(s)

returns true of s is a defined alias, variable, macro, or path


delete

Syntax: %delete(p,i,n)

return the string s with n characters starting at position I deleted.


delitem

Syntax: %delitem(s,list)

delete item s from the given string list


ends

Syntax: %ends(s1,s2)

true if s1 ends with s2


eval

Syntax: %eval(p)

evaluate parameter p as an expression and return the result


exec

Syntax: %exec(s)

executes arguments as commands and returns results separated by | character


expand

Syntax: %expand(s)

expand variables and functions with the string s


filesize

Syntax: %filesize(i)

returns the number of lines or number of records in the ith file (opened with the #FILE command)


format

Syntax: %format(f,a,b,c,d...)

use a format string to format the values of a,b,c, etc.  Format strings consist of a string of characters, with special format specifiers of the type %w.dx where w is the width of the field, d is the number of decimal places, and x is the format type.  Format types for x include: s for string, n for number (commas every 3 digits), f for floating point, m for money (currency).

Normally you will set d to zero since zMUD does not support floating point numbers.  The Money format uses the Windows standard currency strings.

Example:

#SHOW %format('%10.0n',123456)

will display 123,456 with 3 spaces padding the front

#SHOW %format('%3.0f %s',123,"coins")

will display '123 coins'


getglobal

Syntax: %getglobal(name)

return the value of global variable name (stored in the INI file)


grep

Syntax: %grep(i,s)

search the ith file and return lines that match the pattern in s


if

Syntax: %if(expression,true-value,false-value)

if expression is true, return the true-value otherwise return the false-value


insert

Syntax: %insert(p,s,i)

return the string s with pattern p inserted at position I.


ismember

Syntax: %ismember(s,list)

return true if s is a member of the given string list


isnumber

Syntax: %isnumber(s)

true if s represents a valid number


lastdir

Syntax: %lastdir()

Returns the current direction on the mapper command stack


left

Syntax: %left(s,n)

return the leftmost n characters of the string s


leftback

Syntax: %leftback(s,n)

return the leftmost part of s, n characters from the end


len

Syntax: %len(s)

return the length of the string s


literal

Syntax: %literal(s)

returns the parameters untouched by expansion or evaluation


look

Syntax: %look(s)

returns the look command used by the mapper, or sets it to the specified string


lower

Syntax: %lower(s)

return the string s in lowercase


max

Syntax: %max(a,b,c,d...)

return the maximum value of the parameters


min

Syntax: %min(a,b,c,d...)

return the minimum value of the parameters


mod

Syntax: %mod(a,b)

return a modulus b


null

Syntax: %null(s)

return true if s is the null string


number

Syntax: %number(s)

convert a string to a number


numbuttons

Syntax: %numbuttons()

returns the number of buttons currently defined


numparam

Syntax: %numparam()

returns the number of parameters passed to an alias


numrooms

Syntax: %numrooms()

Return the number of rooms in the current zone


numwords

Syntax: %numwords(s,d)

return the number of words in string s, delimited by string d (if d is missing, a space is used as the word delimiter)


numzones

Syntax: %numzones()

Return the number of zones in the map


param

Syntax: %param(n)

return the nth parameter passed to an alias


parsemode

Syntax: %parsemode(I)

returns or sets the current mapper parse mode.  I=0 is Full, I=1 is Brief, and I=2 is Look.


pick

Syntax: %pick(s1,s2,s3,...)

display a picklist and let the user choose one or more strings from the list.  If more than one are chosen, they are returned separated by |.  See #PICK for more options


pos

Syntax: %pos(p,s)

return the position of pattern p in string s.  Return 0/false if not found


prompt

Syntax: %prompt(v,s,p)

prompt the user for a value for the variable v.  If s is present, it is used as the caption for the prompt.  If p is present, use password mode so that the value entered by the user is not echoed.


proper

Syntax: %proper(s)

convert s to proper case (lowercase except for first letter)


random

Syntax: %random(i,j)

return a random integer >= I and <= J.  If J is omitted, then I specifies the maximum value, and 0 is used as the minimum value.


read

Syntax: %read(i,rec)

read the specified record from the ith file.  If rec is omitted, zero is assumed.  For text files, rec is the line number to be read (0 reads the next sequential line).


remove

Syntax: %remove(p,s)

Remove substring p from string s


repeat

Syntax: %repeat(s,n)

return s repeated n times


replace

Syntax: %replace(s,p,r)

return s with all occurrences of p replaced with r


right

Syntax: %right(s,n)

return the rightmost part of s following n characters


rightback

Syntax: %rightback(s,n)

return the rightmost n characters of the string s.


roomcom

Syntax: %roomcom( room, [s])

Return or set the command assigned to the room to string s


roomcost

Syntax: %roomcost( room, [i])

Return or set the cost of entering a room to i


roomdesc

Syntax: %roomdesc( room, [s])

Return or set the description of the room to string s


roomexit

Syntax: %roomexit( room, [s])

Return or set the exit string of the room to string s.  The exit string is a string list, with each direction seperated by |


roomflag

Syntax: %roomflag( room, [i])

Return or set the Reload flag of the room to i (0 = false, 1 = true)


roomid

Syntax: %roomid( room, [s])

Return or set the short name (ID) of the room to string s


roomkind

Syntax: %roomkind( room, [i])

Return or set the type of the room to i.  0 = normal, 1 = water, 2 = fly, 3 = trap.  Add 128 to set Do Not Enter flag.


roomlink

Syntax: %roomlink( room, dir, [i])

Return or set the link in direction dir to the room number i.  To delete a link, i=-1, for an unknown link, i=-2


roommob

Syntax: %roommob( room, [i])

Return or set the number of mobs in the room to i


roomname

Syntax: %roomname( room, [s])

Return or set the name of the room to string s


roomnote

Syntax: %roomnote( room, [s])

Return or set the Notes of the room to string s


roomnum

Syntax: %roomnum( room)

Returns the number of a room


roomobj

Syntax: %roomobj( room, [i])

Return or set the number of objects in the room to i


roomportal

Syntax: %roomportal( room, s, [i], [z])

Return or set a non-standard exit (portal).  Assign the room number i and zone number z to the non-standard exit string of s.


setglobal

Syntax: %setglobal(name,value)

set the value of the global variable name (stored in the INI file)


time

Syntax: %time(format)

return the current date/time.  If format is nil (or missing), a long format is used.  Otherwise, use characters such as dd, mm, mmm, yy, hh, mm, ss, etc in the format string to return that part of the current date/time


trigger

Syntax: %trigger(class)

return true if the specified trigger class is enabled


trim

Syntax: %trim(s)

trim spaces from beginning and end of s


trimleft

Syntax: %trimleft(s)

trim leading spaces from s


trimright

Syntax: %trimright(s)

trim trailing spaces from s


upper

Syntax: %upper(s)

return the string s in uppercase


walk

Syntax: %walk( i)

Return the speedwalk string needed to get to room i


word

Syntax: %word(s,i,d)

return the ith word of string s, delimited by string d (if d is missing, a space is used as the word delimiter


write

Syntax: %write(i,s,rec)

write string s to the ith file at record rec.  For text files, rec is ignored and s is appended to the file.  If rec is 0, s is written to the end of the file.


yesno

Syntax: %yesno(s)

Displays question in string s and returns true or false depending upon which button is clicked. See #YESNO for more options.  If more than two buttons are displayed, the result is the button number, making this useful in conjunction with #CASE.  With only two buttons, 0 or 1 is returned, making this useful in conjunction with #IF.


zonename

Syntax: %zonename( zone, [s])

Return or set the name of the zone to string s


zonenum

Syntax: %zonenum( zone)

Return the number of a zone