# commands

command_name: AltDownArrow
accelerator: Alt+Down
short_description: Recalls partial command - downwards
label: ID_ALT_DOWNARROW
description:
If the option "alt+arrow traverses command history" is set, moves downwards to the next matching command.

Otherwise, selects the next command in the command history.


command_name: AltUpArrow
accelerator: Alt+Up
short_description: Recalls partial command - upwards
label: ID_ALT_UPARROW
description:
If the option "alt+arrow traverses command history" is set, moves upwards to the next matching command.

Otherwise, selects the previous command in the command history.


command_name: AlwaysOnTop
menu: View -> Always On Top
short_description: Keeps MUSHclient windows on top of other windows
label: ID_VIEW_ALWAYSONTOP
description:
Sets the "always on top" flag so that MUSHclient will always be on top of other application windows, even if the program does not currently have the focus.


command_name: AutoConnect
menu: Connection -> Auto Connect
short_description: Automatically connect to worlds when opening them
label: ID_CONNECTION_AUTOCONNECT
description:
Toggles the "auto-connect" flag. 

If active, when you open the world file for a new world, MUSHclient will attempt to connect to it immediately.

If inactive, you must connect manually. One easy way of doing this is simply to hit &lt;enter&gt; in the command window.


command_name: AutoSay
menu: Input -> Auto Say
accelerator: Shift+Ctrl+A
short_description: Whatever you type is "said" in the game
label: ID_GAME_AUTOSAY
dialog_name: IDD_PREFS_P19
description:
Toggles the "auto-say" flag.

If active, what you type is prefixed with the "auto-say" string and sent to the MUD. (eg. "say hello there").

You can configure the auto-say string to be something useful, like "say", "tell", "chat" and so on.


command_name: BookmarkSelection
menu: Display -> Bookmark Selection
accelerator: Shift+Ctrl+B
short_description: Toggles a bookmark at the selected line
label: ID_DISPLAY_BOOKMARKSELECTION
description:
Toggles the "bookmarked" flag for the selected line. You must select some text on a line for this to work (any text). You can then use "go to bookmark" (Ctrl+B) to go to bookmarked lines.


command_name: RecallText
menu: Display -> Recall Text...
accelerator: Ctrl+U
short_description: Recalls all lines matching a string into a separate window
label: ID_DISPLAY_RECALLTEXT
dialog_name: IDD_RECALL
description:
If text is currently selected in the output window, lines matching the selected text are recalled without the dialog box being displayed.

Thus, a quick way to recall events relating to (another player, say) is to double-click on the player/mob name of interest, and the hit Ctrl+U.


command_name: ReloadScriptFile
menu: Game -> Reload Script File
accelerator: Shift+Ctrl+R
short_description: Forces script source file to be reprocessed
label: ID_GAME_RELOAD_SCRIPT_FILE
doc_name: scripting
description:
This causes the script file associated with this world to be recompiled.

You should do this after correcting any syntax errors which have been reported in your script.

Reloading the script file also re-initializes the script engine, thus clearing any variables which were established during a previous script execution.

In the case of Lua scripts it also causes the Lua 'sandbox' to be re-executed.


command_name: ASCIIart
menu: Edit -> ASCII Art...
accelerator: Shift+Ctrl+A
short_description: Generate ASCII art
label: ID_EDIT_ASCIIART
doc_name: notepad
dialog_name: IDD_ASCII_ART
description:
The "ASCII Art" window lets you type in up to 60 characters of text, and have them converted into "big letters", like this:

<code>
 __  __ _   _ ____  _   _      _ _            _   
|  \/  | | | / ___|| | | | ___| (_) ___ _ __ | |_ 
| |\/| | | | \___ \| |_| |/ __| | |/ _ \ '_ \| __|
| |  | | |_| |___) |  _  | (__| | |  __/ | | | |_ 
|_|  |_|\___/|____/|_| |_|\___|_|_|\___|_| |_|\__|

</code>


command_name: Introduction
short_description: Getting Started
label: ID_GETTING_STARTED
doc_name: starting
dialog_name: IDD_QUICK_CONNECT
description:
<b>MUSHclient - a fast, easy-to-use MUD client for Windows</b>

Written in C++ for high speed and compact size. 

Has large scrollback buffer, command history, aliases, triggers, timers, keypad-navigation, speed-walking, and auto-say.

Supports scripting in VBscript, Jscript, PerlScript and Python, recognizes ANSI color codes, has user-defined macros, spell checking, proxy server support, chat system, built-in editor, and logging.

Also supports MUD extensions MCCP (Mud Client Compression Protocol) and MXP (Mud eXtension Protocol).

You can write your own plugins in any of the four supported scripting languages, or use ones written by others which are supplied with the program, or appear on our web site.

<b>Getting started ...</b>

Getting started with MUSHclient is easy!  Use the "quick connect" dialog to connect to a MUD.

Click on the links below for more information.


command_name: FunctionList
menu: Game -> Functions List
accelerator: Ctrl+Alt+Shift+L
short_description: Shows a list of all scripting functions
label: ID_GAME_FUNCTIONSLIST
doc_name: utils
dialog_name: IDD_FUNCTION_LIST
description:
Shows a dialog box listing all script functions, where you can choose one from the list and show the Help file information about it.


command_name: GlobalReplace
menu: Search -> Global Replace
accelerator: Ctrl+Shift+G
short_description: Does a global find-and-replace on the selected text using string.gsub
label: ID_SEARCH_GLOBALREPLACE
doc_name: notepad
dialog_name: IDD_LUA_GSUB
description:
Invokes the global replace dialog box, which lets you do powerful replacement on the selected text using Lua's string.gsub, allowing you to use regular expressions in the Find box, and optionally a custom replacement function.


command_name: ConvertForumCodes
menu: Edit -> Convert Clipboard Forum Codes
accelerator: Shift + Ctrl + Alt + Q
short_description: Converts text on the clipboard for use in the forum
label: ID_EDIT_CONVERTCLIPBOARDFORUMCODES
doc_name: utils
description:
If the clipboard contains text, it is replaced with "forum codes" quoted, namely:

[ becomes \[
] becomes \]
\ becomes \\

You will be presented with a dialog box to confirm the change, in case you accidentally hit the accelerator key, the dialog box states the number of changes made.


# dialogs

dialog_name: CHECKSPELLINGDLG
title: Check Spelling
label: CHECKSPELLINGDLG
description:
<b>Consider Changing:</b>


<b>Suggestions:</b>


<b>Ignore</b>


<b>Ignore All</b>


<b>Add</b>


<b>Change</b>


<b>Change All</b>


<b>Suggest</b>


<b>Undo</b>


<b>Options...</b>


<b>Dictionaries...</b>


<b>Help...</b>


<b>Add words to:</b>


<b>Cancel</b>


dialog_name: EDITLEXDLG
title: Dictionaries
label: EDITLEXDLG
description:
<b>Words:</b>


<b>Action:</b>


<b>Other word:</b>


<b>Add Word</b>


<b>Delete Word</b>


<b>Import...</b>


<b>Export...</b>


<b>Files:</b>


<b>Add File</b>


<b>New File...</b>


<b>Remove File</b>


<b>Help</b>


<b>Close</b>


<b></b>


<b>Language:</b>


<b></b>


dialog_name: NEWLEXDLG
title: New Spell-Check Dictionary
label: NEWLEXDLG
doc_name: spellcheck
description:
<b>File Name:</b>

Choose a new spell check dictionary.

<b>Browse...</b>

Browse for a dictionary.

<b>Language</b>

Choose the language.


dialog_name: OPTIONSDLG
title: Spell-Check options
label: OPTIONSDLG
description:
<b>Ignore capitalized words (e.g., Canada)</b>


<b>Ignore all-caps words (e.g., ASAP)</b>


<b>Ignore words with numbers (e.g., Win95)</b>


<b>Ignore words with mixed case (e.g., SuperBase)</b>


<b>Ignore domain names (e.g., xyz.com)</b>


<b>Report doubled words (e.g., the the)</b>


<b>Case sensitive</b>


<b>Phonetic suggestions</b>


<b>Typographical suggestions</b>


<b>Suggest split words</b>


<b>Auto correct</b>


<b>Suggestions</b>


<b>Fast but less accurate</b>


<b>Moderately fast and accurate</b>


<b>Slow but accurate</b>


<b>OK</b>


<b>Help</b>


<b>Cancel</b>


<b>Main Dictionary language:</b>


dialog_name: IDD_ABOUTBOX
title: About MUSHclient
label: IDD_ABOUTBOX
command_name: About
related_dialog: Register
description:
This gives information about your copy of MUSHclient including the version number.

<b>Version</b>

This is the version number of this copy. Please mention it when reporting problems.

<b>Credits...</b>

Click to see details about people and companies that helped make MUSHclient what it is today.

<b>License ...</b>

Click to see the MUSHclient license agreement.

<b>Web:</b>

Click to open the MUSHclient web page.

<b>Changes:</b>

Click to see the release notes for MUSHclient.


dialog_name: IDD_TIP
title: Tip of the Day
label: IDD_TIP
command_name: TipOfTheDay
description:
Shows a helpful tip.

<b>Show Tips on StartUp</b>

If checked, you will see a tip every time MUSHclient start up.

<b>Next Tip</b>

Click for the next tip.

<b>Close</b>

Click to stop viewing tips.


dialog_name: IDD_COMMAND_HISTORY
title: Command history
label: IDD_COMMAND_HISTORY
command_name: CommandHistory
description:
Shows the previous commands you have entered so you can recall or copy one.

<b>Recall</b>

Recalls the selected command into the command window. You can then edit it before sending it to the MUD.

<b>Do</b>

Does the selected command (sends it immediately). The command history window remains open so you can select another command afterwards.

<b>Notepad...</b>

Opens a notepad window with the selected command in it.

<b>Find...</b>

Finds a command. If you have a lot of commands in this window this would be a handy way of finding a particular one.

<b>Find Next</b>

Finds the next command that matches the previous find string.


dialog_name: IDD_PREFS_P1
title: World name and TCP/IP address
label: IDD_PREFS_P1
command_name: ConfigureMudaddress
related_dialog: IDD_PREFS_P21
description:
<b>World Name:</b>

This can be anything you like, it is there to help you identify the MUD on screen displays, alert boxes and so on. As an example, enter: "Realms of Despair".

<b>MUD address and port</b>

You connect to a MUD via an address and "port number". Enter them below.

<b>TCP/IP Address:</b>

This is the Internet address of the game's server. This will be the number OR name given on MUSH distribution lists. In the case of Realms of Despair you could enter: 

realmsofdespair.com 

or 

216.251.47.10  (this number may change)

<b>Port Number:</b>

This is the port that the MUSH server is listening for new connections on. In the case of PennMUSH-style MUSHes it is usually 4201, but could be some other number. Diku-style MUDs often use port 4000. This number is always advised next to the MUSH address of distribution lists. 

Example

You read about a MUD: Realms of Despair - realmsofdespair.com:4000

This tells you the MUD name (Realms of Despair), the address (realmsofdespair.com) and the port number (4000).

<b>Clear Cached IP</b>

Click this to clear MUSHclient's internal "cache" of the MUD TCP/IP address. You may need to do this if the MUD changes addresses frequently, as MUSHclient saves time by remembering the name-to-IP address lookup.

<b>Proxy Server</b>

If you are using a proxy server (Socks 4 or Socks 5 protocol) then choose the appropriate protocol from the combo-box, otherwise select "none".

Socks 5 is the more recent protocol and should be used in preference to Socks 4.

Lists of proxy servers can be found by searching the Internet. We suggest using keywords like "proxy server socks" in your search engine. Some are free, some you pay for.

<b>Address:</b>

Enter the address of the proxy server (name or dotted-number). This is the address of the proxy server, not the MUD.

<b>Port:</b>

Enter the port for connecting to the proxy server. Typical port numbers for proxy servers are 1050 or 1080, however consult the documentation for your particular server.

<b>Proxy server password...</b>

If your proxy server requires a name and password (Socks 5 only) click on this to enter them.

<b>Save World Automatically On Close</b>

If this is checked then the "world" file is automatically saved (if you have changed anything) when you close the world. This is useful if you definitely want to save changes you have made to your world (eg. Notes, Variables) after every session.

<b>MUD lists</b>

A link to a page on our website that lists places you can look to find MUDs to play.

<b>Bug report URL</b>

A link to a page on our website for reporting bugs and suggestions.


dialog_name: IDD_PREFS_P3
title: Custom Colour
label: IDD_PREFS_P3
command_name: ConfigureCustomColours
related_dialog: IDD_PREFS_P5
description:
Use this screen to define 16 custom colours, which are used for highlighting lines that match triggers, and for colouring "notes" from scripts, and when commands are echoed in the output window.

Each of the 16 colours can have a "foreground" (ie. Text) and "background" colour specified.

You can also give each colour a name - this shows up in the custom colour combo boxes in other configuration dialogs (eg. triggers) so you can remind yourself of what each colour is for. eg. you might have custom colour 1 as white on red and label it "enemies".

<i>Colour swatches</i>

Next to each colour button is a rectangular "swatch" which shows what the current setting for that colour is. By reviewing the swatches you can see your overall colour scheme. You can click on the colour swatches to open the colour picker.

<i>Changing colours</i>

To change a colour click on the colour swatch, and then choose another colour by using the colour picker. You can move the slider bars, choose from a list, or open the Windows colour picker.

<i>Copying and pasting colours</i>

You can right-mouse click on a colour swatch and select "copy", and then right-mouse click on another colour swatch and select "paste", to copy and paste colours from one swatch to another.

<b>ANSI colours for this world</b>

This shows the current ANSI colours you have set up, so you can compare the custom colours to them.

<b>Invert</b>

Click on this button to invert each colour (that is white becomes black, black becomes white and so on). Mathematically, each colour component is subtracted from 255 to give the new colour. eg. new_colour = 255 - old_colour

<b>Lighter</b>

Click on this button to lighten all of the colours.

<b>Darker</b>

Click on this button to darken all of the colours.

<b>More colour</b>

Click on this button to increases the colour saturation of all of the colours, thus making them look "brighter".

<b>Less colour</b>

Click on this button to decrease the colour saturation of all of the colours, thus making them look "greyer".

<b>Defaults</b>

Click on this to return all custom colours to the MUSHclient defaults.

<b>Random</b>

Click on this to make all colours be chosen at random. Hint - you can make individual colours random by clicking on them to open the colour picker, and then clicking on the "random" button in the colour picker.

<b>Swap</b>

Click on this to swap the foreground and background colour for each custom colour.


dialog_name: IDD_PASSWORD
title: Enter password
label: IDD_PASSWORD
description:
If you have specified a character name in the "connecting" configuration but no password, you will be prompted for it here.

<b>Please enter password for:</b>

Enter the character's password.


dialog_name: IDD_PREFS_P4
title: Logging
label: IDD_PREFS_P4
doc_name: logging
command_name: ConfigureLogging
related_dialog: IDD_PREFS_P16
description:
<b>Standard HTML preamble/postamble</b>

This button is active if HTML logging is select. Click it to insert a reasonable HTML preamble/postamble into the "file preamble" and "file postamble" boxes. With those commands there you could save the log to disk and open in your web browser, and it would look reasonable.

<b>File Preamble:</b>

Text to put at the start of the log file (or session, if you are appending to earlier sessions in the same file).

<b>(...)</b>

Click to edit the file preamble in a larger window.

<b>File Postamble:</b>

Text to put at the start of the log file.

<b>(...)</b>

Click to edit the file postamble in a larger window.

<b>(?)</b>

Click to display a help window reminding you of the special characters that can be placed in the various preamble/postamble boxes, as well as the log file name itself. This currently says ...
<code><hr/>
Special characters for date/time etc.
-------------------------------------

<i>General</i>

%E - MUSHclient startup (initial) directory
%F - world files directory
%L - log files directory
%n - new line (in some cases only)
%N - world name
%P - player name

<i>Date/time</i>

%a - Abbreviated weekday name
%A - Full weekday name
%b - Abbreviated month name
%B - Full month name
%c - Date and time representation appropriate for locale
%d - Day of month as decimal number (01 - 31)
%H - Hour in 24-hour format (00 - 23)

%I - Hour in 12-hour format (01 - 12)
%j - Day of year as decimal number (001 - 366)
%m - Month as decimal number (01 - 12)
%M - Minute as decimal number (00 - 59)
%p - Current locale's A.M./P.M. indicator for 12-hour clock
%S - Second as decimal number (00 - 59)
%U - Week of year as decimal number, with Sunday as first day of week (00 - 53)
%w - Weekday as decimal number (0 - 6; Sunday is 0)
%W - Week of year as decimal number, with Monday as first day of week (00 - 53)
%x - Date representation for current locale
%X - Time representation for current locale
%y - Year without century, as decimal number (00 - 99)
%Y - Year with century, as decimal number
%z, %Z  - Time-zone name or abbreviation; no characters if time zone is unknown
%% - Percent sign

<i>Modification</i>

The # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.

%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% - # flag is ignored.

%#c - Long date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".

%#x - Long date representation, appropriate to current locale. For example: "Tuesday, March 4, 1995".

%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y - Remove leading zeros (if any).
</code><hr/>

<b>Log Output</b>

If checked, output from the MUD is logged.

<b>Log Commands</b>

If checked, commands you type are logged.

<b>Log Notes</b>

If checked, script notes are logged.

<b>HTML</b>

If checked, logging is in HTML, which will attempt to preserve the colours and spacing in the world window. (Colours only if "colour" is checked).

<b>Colour</b>

If checked, and HTML is checked, colours are written to the log file.

<b>Write world name to log file</b>

If checked, the name of the current world is written to the log file.

<b>Automatically log to this file:</b>

This makes MUSHclient automatically log to the named log file every time that it connects to a world. If the file already exists, it is appended to.

The name of the file to automatically log to. If blank, logging will not commence automatically. You can use special strings (described above) to make the file name contain things like the date, time and world name.

<b>Browse...</b>

Click to browse for a file name to log to.

<b>Preamble / Postamble</b>

Enter some text in these boxes if you want each line in the log file to have a prefix/suffix. The preamble will be placed in front of each line, and the postamble will be placed at the end of line.  You can incorporate the date and time into this field. See below for more details.

For example, to log the time each line arrived you might put:

%H:%M ...

<b>Output lines:</b>

Preamble/postamble for each line of output from the MUD.

<b>Commands:</b>

Preamble/postamble for each line of commands you type.

<b>Script notes:</b>

Preamble/postamble for each line of script notes.

<b>Raw</b>

If checked, logging is in "raw" format. This is intended to simply copy the MUD output straight to the log file exactly as it arrives (after decompression, if MCCP is in use). This lets you make an "image" of what arrived, colour codes, MXP codes and all. You could use this later to "pipe" back into the client to test it, for example, for speed. Normally you wouldn't use this.

<b>Omitting some lines from the log file</b>

You can use triggers to omit lines from the log file (if they match a trigger). See "Edit trigger" for more details about doing this.

Alternatively, you can default to outputting no lines (by unchecking Log Output) and then use a trigger to send particular lines to the log.

You can also use aliases to omit outgoing messages from the log file (if they match an alias). See "Edit alias" for more details about doing this.


dialog_name: IDD_PREFS_P5
title: ANSI Colour
label: IDD_PREFS_P5
command_name: ConfigureColours
related_dialog: IDD_PREFS_P3
description:
Using the colours configuration screen you can completely customise the way that colours appear on the screen, in response to:

* ANSI colours sequences from the MUD; and
* Your selection of colours for triggered items, user input, and so on.

By clicking on one of the 16 colour buttons, you can adjust the actual colour that is displayed for a given colour "palette".

<i>Colour swatches</i>

Next to each colour button is a rectangular "swatch" which shows what the current setting for that colour is. By reviewing the swatches you can see your overall colour scheme. Click on any swatch to open the colour picker for that colour.

<i>Colour Palette</i>

To understand how the program handles colours, it is necessary to discuss the concept of a colour "palette". MUSHclient recognises 8 ANSI "normal" colours (black, red, green, yellow, blue, magenta, cyan and white), and the same 8 colours in "bold". The codes to change colours may be sent by a particular MUD if the appropriate function calls are made by a room designer. The normal colour is white text on a black background.

However, the actual colours that are displayed depend on the colour palette for a particular world. For example "black" might actually display as grey, and "white" might actually display as green.

<i>Changing colours</i>

To change the normal text colour click on "white" in the "normal" column (the button with "T" on it). You can then use the  colour selection dialog box to choose another colour. There are various ways of doing this... 

The easiest way is to choose a colour from one of the "basic colours" on the left-hand side of the dialog box.

Or, you can move the mouse over the big coloured box on the right (holding down the mouse button) until the desired colour appears in the "Color/Solid" box.

Or, you can enter the actual "red/green/blue" or "hue/saturation/luminence" values in to the appropriately labelled boxes.

You cannot change colours if "override with default colours" (below) is checked.

<i>Copying and pasting colours</i>

You can right-mouse click on a colour swatch and select "copy", and then right-mouse click on another colour swatch and select "paste", to copy and paste colours from one swatch to another.


<b>Lighter</b>

There are three buttons labelled "lighter" on this screen. Two are under the "normal" and "bold" columns, and the third is on the right.

These let you quickly lighten the colours in the column (or in the case of the button on the right, all colours), so you can quickly adjust the "feel" of the colour scheme.

<b>Darker</b>

There are three buttons labelled "darker" on this screen. Two are under the "normal" and "bold" columns, and the third is on the right.

These let you quickly darken the colours in the column (or in the case of the button on the right, all colours), so you can quickly adjust the "feel" of the colour scheme.

<b>Swap</b>

Click on this to swap the bold and normal colours. You cannot swap colours if "override with default colours" (above) is checked.

<b>ANSI colours...</b>

Click on this button to reset all 16 colours to their ANSI defaults. This is useful if you want to see how the world would look to people with "standard" colours set up.

<b>Load...</b>

Click on this button to load a previously-saved set of colours. You can set up a colour scheme in one world, save it (using the "save" button) and then load the same colours into another world by using the "load" button.

You cannot load colours if "override with default colours" (above) is checked.

<b>Save...</b>

Click on this button to save your current set of 16 colours, plus your custom colours. You can then load them into another world if desired, so that each world has a consistent colour scheme.

<b>More colour</b>

Click on this button to increases the colour saturation of all of the ANSI colours, thus making them look "brighter".

<b>Less colour</b>

Click on this button to decrease the colour saturation of all of the ANSI colours, thus making them look "greyer".


<b>Copy to custom...</b>

Click on this button to copy all 16 colours to the 16 custom colours.

<b>Invert</b>

Click on this button to invert each colour (that is white becomes black, black becomes white and so on). Mathematically, each colour component is subtracted from 255 to give the new colour. eg. new_red = 255 - old_red

<b>Random</b>

Click on this to make all colours be chosen at random. You can also make individual colours random by clicking on its swatch to open the colour picker, and then clicking on the "random" button in the colour picker.

<b>Use Custom Colour 16 as default</b>

If checked, the default background colour is custom colour 16. If not checked, the default background colour is the colour selected for "normal black".

<b>Override with default colours</b>

If checked, the colour file specified with Defaults is used instead of the colours here, the next time the world is opened, or when Reload defaults is selected.


dialog_name: IDD_PREFS_P6
title: Macros
label: IDD_PREFS_P6
doc_name: macros
command_name: ConfigureMacros
related_dialog: IDD_EDIT_MACRO
description:
<b>Customise output from function keys and 'Game' menu.</b>

Use this dialog to configure what is sent if you press one of the function keys (macros), for example, F2. The string you enter is sent through command processing so you can put aliases here.

Also, some items (like "quit") control what is sent if you select Quit from the Input menu.

<b>Override with default macros</b>

If checked, next time the world is loaded your macros are replaced with the default ones. See the help topic on "defaults" for more details.

<b>Edit...</b>

Click to edit a macro.

<b>Find...</b>

Click to find a macro based on its contents.

<b>Find Next</b>

Click to repeat the next find (find another one that matches).

<b>Load...</b>

Click to load macros from disk.

<b>Save...</b>

Click to save selected macros to disk.

<b>Hint</b>

To do more elaborate things (like expanding variables, running scripts) enter a nonsense word as what to send, and then make an alias to "catch" that word, and do the extra processing in the alias. One way of doing this is to use the Edit -&gt; Generate Unique ID menu item to generate a unique word, like this:

381e051a828fb201b6914699

This is unlikely to be something you would normally want to type into the MUD. Then make an alias to match on "381e051a828fb201b6914699" (or whatever word you choose) and make the alias do things like expand variables, call scripts, etc.

<hr/>

<b>Warning</b>

Any accelerators which have been defined with the Accelerator function will hide a corresponding macro from being shown in the macro configuration screen, so as to avoid confusion about what the keystroke actually does.


dialog_name: IDD_EDIT_MACRO
title: Edit macro
label: IDD_EDIT_MACRO
doc_name: macros
command_name: ConfigureMacros
related_dialog: IDD_GENERATE_UNIQUE_ID
description:
<b>Macro type:</b>

The key that you press to invoke this macro.

<b>Send:</b>

What to send. This gets sent through the command processor, so it can consist of aliases, speedwalks or script commands.

<b>Send action</b>

What to do with the send text when you press the macro key.

<b>Replace</b>

The entire contents of the command window is replaced by the macro.

<b>Send Now</b>

The macro is immediately acted upon, however the command window contents are not changed.

<b>Insert</b>

The macro contents is inserted into the command window. You can then edit it if you wish.

<hr/>

<b>Hint</b>

To do more elaborate things (like expanding variables, running scripts) enter a nonsense word in the "send" box, and then make an alias to "catch" that word, and do the extra processing in the alias. One way of doing this is to use the Edit -&gt; Generate Unique ID menu item to generate a unique word, like this:

381e051a828fb201b6914699

This is unlikely to be something you would normally want to type into the MUD. Then make an alias to match on "381e051a828fb201b6914699" (or whatever word you choose) and make the alias do things like expand variables, call scripts, etc.


dialog_name: IDD_PREFS_P7
title: Alias configuration (list)
label: IDD_PREFS_P7
doc_name: aliases
command_name: ConfigureAliases
related_dialog: IDD_EDIT_ALIAS
description:
<b>Enable Aliases</b>

If checked, all aliases are enabled (active).

<b>Override with default aliases</b>

If checked, next time the world is loaded your aliases are replaced with the default ones. See the help topic on "defaults" for more details.

<b>Add...</b>

Click to add an alias.

<b>Edit...</b>

Click to edit an existing alias.

<b>Remove</b>

Click to remove one or more selected aliases from the list.

<b>Find...</b>

Click to find an alias based on its contents.

<b>Find Next</b>

Click to repeat the next find (find another one that matches).

<b>Load...</b>

Click to load aliases from disk.

<b>Save...</b>

Click to save selected aliases to disk.

<b>Move Up</b>

Click to move the selected alias up the list (in other words, lower its sequence number).

<b>Move Down</b>

Click to move the selected alias down the list (in other words, raise its sequence number).


<b>Copy</b>

Click to copy the selected alias(es) to the clipboard in XML format.

<b>Paste</b>

Click to paste the clipboard into the alias list. The aliases must be in XML format (such as produced by the Copy button). Only aliases will be pasted, if there are other types on the clipboard.

Copy and paste is intended to allow you to get/put aliases onto the Forum, or exchange them between worlds or with other MUSHclient users.

<b>Tree View</b>

Check to show a "tree" view of the items. Leave unchecked to show a "list" view. In tree view only one item can be selected at once, however you can select an entire group for the purpose of copying the group to the clipboard, or deleting it.

In tree view items are sorted into groups. Inside the group the items are shown in sequence order.

<b>Filter by:</b>

Check to filter the visible items by the function "filter". Click on the button labelled "..." next to the "filter by" checkbox to enter the code for the scripted filter function. The filter function must be written in Lua and have a function named "filter" in the script, taking two arguments which are the name (label) of the alias, and a table of values corresponding to the various settings for it. For example, to show only aliases that do "send to script":

<code>
function filter (name, alias)
  return alias.send_to == sendto.script 
end -- filter
</code>

You can use the various values for this alias to work out whether or not you want this particular one to be shown in the list (for example, if it sends to script). If the function returns the boolean value "false" then the item is not shown, otherwise it is shown in the list.

The filter script is saved in the world file, so you can use it again next time, however the filter flag is not remembered. You must explicitly enable it each time you want to filter the list.


The various fields in the alias table are documented here:

<code>
http://www.gammon.com.au/forum/?id=7123
</code>

In addition, some fields calculated at runtime are:

<code>
"execution_error"   // GetAliasInfo  (28) *
"execution_time"    // GetAliasInfo  (30) *
"included"          // GetAliasInfo  (15)
"invocation_count"  // GetAliasInfo  (10)
"last_match"        // GetAliasInfo  (25) *
"match_attempts"    // GetAliasInfo  (31) *
"match_count"       // GetAliasInfo  (24) *
"script_valid"      // GetAliasInfo  (27)
"temporary"         // GetAliasInfo  (14)
"times_matched"     // GetAliasInfo  (11)
"when_matched"      // GetAliasInfo  (13) *
</code>


Fields marked * may not be present (ie. be nil) under some circumstances (eg. regular expression failure).


dialog_name: IDD_PREFS_P8
title: Trigger configuration list
label: IDD_PREFS_P8
doc_name: triggers
command_name: ConfigureTriggers
related_dialog: IDD_EDIT_TRIGGER
description:
<b>Enable Triggers</b>

If checked, all triggers are enabled (active).

<b>Enable Trigger Sounds</b>

If checked, sounds which are specified for each trigger are played when they fire. If unchecked the triggers become silent. However this does not apply to "scripted" sounds. That is, if a trigger calls a script and script calls the Sound function, that will still play.

<b>Override with default triggers</b>

If checked, next time the world is loaded your triggers are replaced with the default ones. See the help topic on "defaults" for more details.

<b>Add...</b>

Click to add a trigger.

<b>Edit...</b>

Click to edit an existing trigger.

<b>Remove</b>

Click to remove one or more selected triggers from the list.

<b>Find...</b>

Click to find a trigger based on its contents.

<b>Find Next</b>

Click to repeat the next find (find another one that matches).

<b>Load...</b>

Click to load triggers from disk.

<b>Save...</b>

Click to save selected triggers to disk.

<b>Move Up</b>

Click to move the selected trigger up the list (in other words, lower its sequence number).

<b>Move Down</b>

Click to move the selected trigger down the list (in other words, raise its sequence number).

<b>Copy</b>

Click to copy the selected trigger(es) to the clipboard in XML format.

<b>Paste</b>

Click to paste the clipboard into the trigger list. The triggers must be in XML format (such as produced by the Copy button). Only triggers will be pasted, if there are other types on the clipboard.

Copy and paste is intended to allow you to get/put triggers onto the Forum, or exchange them between worlds or with other MUSHclient users.

<b>Tree View</b>

Check to show a "tree" view of the items. Leave unchecked to show a "list" view. In tree view only one item can be selected at once, however you can select an entire group for the purpose of copying the group to the clipboard, or deleting it.

In tree view items are sorted into groups. Inside the group the items are shown in sequence order.

<b>Filter by:</b>

Check to filter the visible items by the function "filter". Click on the button labelled "..." next to the "filter by" checkbox to enter the code for the scripted filter function. The filter function must be written in Lua and have a function named "filter" in the script, taking two arguments which are the name (label) of the trigger, and a table of values corresponding to the various settings for it.  For example, to show only triggers that do "send to script":

<code>
function filter (name, trigger)
  return trigger.send_to == sendto.script 
end -- filter
</code>

You can use the various values for this trigger to work out whether or not you want this particular one to be shown in the list (for example, if it sends to script). If the function returns the boolean value "false" then the item is not shown, otherwise it is shown in the list.

The filter script is saved in the world file, so you can use it again next time, however the filter flag is not remembered. You must explicitly enable it each time you want to filter the list.


The various fields in the trigger table are documented here:

<code>
http://www.gammon.com.au/forum/?id=7123
</code>

In addition, some fields calculated at runtime are:

<code>
"invocation_count"  // GetTriggerInfo  (20)
"times_matched"     // GetTriggerInfo  (21)
"when_matched"      // GetTriggerInfo  (22) *
"temporary"         // GetTriggerInfo  (23)
"included"          // GetTriggerInfo  (24)
"match_count"       // GetTriggerInfo  (31) *
"last_match"        // GetTriggerInfo  (32) *
"script_valid"      // GetTriggerInfo  (34)
"execution_error"   // GetTriggerInfo  (35) *
"execution_time"    // GetTriggerInfo  (37) *
"match_attempts"    // GetTriggerInfo  (38) *
</code>


Fields marked * may not be present (ie. be nil) under some circumstances (eg. regular expression failure).


dialog_name: IDD_PREFS_P9
title: Commands
label: IDD_PREFS_P9
doc_name: speed_walking
command_name: ConfigureCommands
related_dialog: IDD_COMMAND_OPTIONS
description:
<b>Echo My Input In (colour):</b>

If you enable "echo my input" then commands you type (and transmit) are echoed in the output buffer (top part of the screen) after being processed for speed walking, macros (function keys), aliases, and command stacking. You will also see commands which have been automatically transmitted because they matched a trigger. You can choose the colour they appear in (from the custom colours).

This is very handy for keeping an eye on triggers, and what is actually sent after macros etc. are evaluated.

<b>Speed Walking</b>

This lets you configure speed-walking, which is a shorthand way of moving around (eg. 5S moves you South 5 times). See the description for "speed walking" for more details.

<b>Enable Speed Walking, prefix is:</b>

If checked, speed walking is enabled. You must specify a speed-walk prefix string which indicates to MUSHclient that what follows is a speedwalk (eg. "#").

<b>Filler:</b>

Some MUDs do not like length identical strings. You can specify a speedwalk "filler" which can be an innocous word like "look" which is sent whenever the letter "F" (for filler) appears in the speedwalk string.

<b>Delay:</b>

Some MUDs can not handle speedwalks sent at high speed. You can specify a delay in millisconds (thousandths of a second) which will be placed between each speedwalk direction. For instance, 500 would be 1/2 a second.

<b>Command Stacking</b>

Command-stacking lets you combine commands on a single line, for ease of typing, and to make it easier to recall them. For example:

open bag; get food; eat food; close bag

If checked, command stacking is enabled.

If command stacking is enabled you can use the command stack character inside a line by doubling it. That is, if the command stack character is ";" then entering ";;" will be converted to a single ";".

You can temporarily disable command stacking for a line by entering the command stack character as the very first character. For example, if the command stack character is ";" then entering ";say go west; then east" will be treated as a single line.

<b>Command Stacking Using:</b>

Specify the command-stack character here. It must be a single character (eg. ";" or "|").

<b>Command Colours</b>

Click on the colour swatches to specify the text colour, and background colour, for displaying commands. This is the colour used in the command window (the lower window), not the colour commands are echoed in the output window. To change the colour commands are echoed in, see "Echo My Input In (colour)" above.

<b>Tab Completion...</b>

Tab completion is a feature that lets you type a partial word, and then press [tab] to have MUSHclient complete the word from recent MUD output.

For example, if you received a message:

Gandalf tells you, hi there

You might type:

tell Gan[tab]

MUSHclient will scan backwards and find that "Gandalf" matches "Gan" and complete it for you. The number of lines it scans can be set by clicking on the "Tab Completion" button. 

You can also specify a list of words that are to be searched, even if they did not arrive recently. To do this click the "Tab Completion" button and edit that list.

<b>Keyboard preferences...</b>

Click to edit various other command preferences that would not fit on the main commands configuration screen.

<b>Auto-repeat Command</b>

With this option checked, every time you press &lt;enter&gt; to transmit a command to the MUD, the command is retained (repeated) in the input window, but selected (highlighted). You can then press &lt;enter&gt; to send it again, or just start typing to replace it.

<b>Tab Completion In Lower Case</b>

With this option checked, when you press [tab] to auto-complete the word you are currently typing, it will be completed in all lower-case, otherwise the capitalisation of the word as it appears in the output buffer will be used.

<b>Translate German characters</b>

With this option checked, various German characters will be expanded out into normal ASCII characters when text is sent to the MUD. Translation takes place at send time, not command input.

<b>Spell Check On Send</b>

If checked, every time you send a command it will be spell-checked. The spell-checker must be enabled using the File Menu -&gt; Global Preferences -&gt; General -&gt; Spell check -&gt; Enable, otherwise this option will be greyed-out.

<b>Translate Backslash Sequences</b>

With this option checked, you can enter Escape sequences into your commands, to process characters you cannot normally type (such as the "bell" character).

Escape sequences can be used in various places to represent non-printable or special characters.

The sequences are:

<code>
\a Bell (alert)
\b Backspace
\f Formfeed
\n New line
\r Carriage return
\t Horizontal tab
\v Vertical tab
\' Single quotation mark
\" Double quotation mark
\\ Backslash
\? Literal question mark
\xhh  ASCII character in hexadecimal notation
</code>

eg. 

say warning \a\a 

(this would say "warning" followed by two "bell" characters)

<b>Keep Commands On Prompt Line</b>

If checked, commands are kept on the same line as previous MUD output, if it was not terminated by a newline. For example:

If checked:  

&lt;1000/1000 hp 100/100 m 750/750 mv&gt; <b>north</b>

If not checked:  

&lt;1000/1000 hp 100/100 m 750/750 mv&gt; 
<b>north</b>

<b>Ignore 'Echo Off' messages</b>

Some MUDs will send the "echo off" telnet sequence to turn off command echoing (for example, before requesting a password). If for some reason this keeps command echoing suppressed you can check this option.

<b>Spam prevention</b>

Spam prevention is a feature that stops you inadvertently spamming the MUD, and being disconnected, by sending the same command many times. For example, some MUDs might not allow 20 identical commands. By using this feature, MUSHclient will detect if you send the same command many times, and insert a "spam breaker" command automatically. For example, during a fight you might type "punch" many times.

<b>Enable Spam Prevention</b>

Check to enable the spam prevention feature.

<b>Every X identical commands</b>

Enter the number of commands to allow through before sending the spam breaker (eg. 20).

<b>Send</b>

Enter the spam breaking word. This should be something that is harmless (like "score", "look", "who", "inventory") but not something you are likely to be typing often in a sequence.

<b>Font</b>

You can choose what font is used in the command window.

<b>Change Font...</b>

Click to change the command window font.

<b>Override With Default</b>

If checked, the default font specified in Defaults will be used instead of the font here, next time the world is opened, or as soon as you select Reload defaults.


<b>Command History</b>

You can choose how many lines are retained in the "history" window.


dialog_name: IDD_EDIT_ALIAS
title: Edit alias
label: IDD_EDIT_ALIAS
doc_name: aliases
related_dialog: IDD_PREFS_P7
description:
<b>Alias:</b>

What to match on. Can be a regular expression. If not a regular expression, use "*" to match on wildcards (variable text).

For example, "kick *" would match on "kick (someone)".

If you are using regular expressions wildcards are things in brackets.

For example: "^kick (.*)$" would be the same as the above, with the wildcard being the expression in round brackets.

<b>(...)</b>

Click on the button labelled "..." to open a larger box for editing the alias match text.

<b>Send:</b>

What to send if the alias matches. You can use %1 to match the first wildcard, %2 to match the second wildcard, and so on up to %9. For wildcards above 9 you can use %&lt;n&gt; (for example, %&lt;50&gt; for wildcard 50). 

%0 represents the whole matching text.

Use %% to represent a single % symbol. You can also use %C to insert the contents of the Clipboard, and %N to insert the current alias's name (label).

If you are sending to script then any quotes or other special characters in the send text (inside the wildcard contents) are "escaped" appropriately for the script language you are using. 

For example, if you were sending to Jscript, and %1 contained 'Nick said "hello" ', and the "send" text was:

world.Note "%1"

In this case it would parse the line:

world.Note "Nick said \"hello\" "

<b>(...)</b>

Click on the button labelled "..." to open a larger box for editing the alias send text.

Alternatively press Alt+Enter to open the editing dialog box.

<b>Enabled</b>

If checked, the alias is enabled (active).

<b>Omit From Log File</b>

If checked, the alias is not logged.

<b>Ignore Case</b>

If checked, the alias is not case-sensitive. Otherwise "AB" is considered different from "ab".

<b>Regular Expression</b>

If checked, the alias is a regular expression. See the regular expression documentation for more details.

<b>Expand Variables</b>

If checked, variables in the alias "send" text are expanded. A variable starts with "@" and is followed by the variable name. To put "@" in the alias response, use "@@".

For example, if the variable "target" contained "kobold", then sending "punch @target" would send "punch kobold".

<b>Omit From Output</b>

If checked, the alias response is not echoed in the output window.

<b>Temporary</b>

If checked, the alias is not saved in the world file.

<b>One-shot</b>

If checked, once this alias fires, it is deleted.

<b>Keep Evaluating</b>

If checked, the further aliases are checked against the same thing you typed. This lets you set one alias to (say) omit things from the log file, and other aliases to do different things.

<b>Echo Alias</b>

If checked, the alias itself is echoed in the output window.

<b>Omit From Command History</b>

If checked, the alias itself is not stored in the command history.

<b>Send To:</b>

Where to send the alias response to. The default is to the MUD. However you can choose other places, such as the output window, a notepad window, or make the alias "send to script" in which case the alias "send" text can be script commands.

If you send to "execute" then the send text is re-evaluated through the command processor, so you can then have an alias inside an alias if you want.

The "send-to" box lets you choose to send the "send" text to one of:

<ul>
<li/> world (the MUD)
<li/> command (the command window)
<li/> output (directly to the output window, as a note to yourself)
<li/> status (to the status line)
<li/> notepad - new (create a new notepad window)
<li/> notepad - append (append to a notepad window)
<li/> log file (directly to the log file)
<li/> notepad - replace (replace an existing notepad window)
<li/> world - speedwalk delay (queue for delayed send at the speedwalk rate)
<li/> variable (set a variable, whose name you provide in the variable box)
<li/> execute (execute through normal command parser, so aliases, speedwalks etc. will be executed)
<li/> speedwalk (send to world after converting speedwalk string)
<li/> script (execute as a script command in the current scripting language)
<li/> world - immediate (to the MUD immediately, even if you are speedwalking)
</ul>

<b>Sequence:</b>

Aliases are evaluated in sequence number order, where the lower number is evaluated sooner. Change this number to alter the order of alias evaluation.

<b>Reverse Speedwalk</b>

If the alias is "send to speedwalk" this button will be active. Clicking it will reverse the speedwalk direction. (eg. 4n 5e would become 5w 4s).

<b>Convert to Regular Expression</b>

Click this button to convert a "normal" alias to a regular expression. This is a quick way of converting an alias into a regular expression ready for improving on it.

<b>Label:</b>

Aliases can have names - put the name in the "label" box.

<i>Rules for names</i>

Names of triggers, aliases, timers and variables must follow these rules:

<ul>
<li/> Start with a letter (A-Z)
<li/> Be followed by letters (A-Z), numbers (0-9) or the underscore character (_)
</ul>

<b>Menu</b>

If checked, the alias is added to the menu which appears when you Control-Left-Click in the output or command window. This lets you set up a menu of things you do frequently.

The menu text is the label, with underscore replaced by spaces.

<b>Script:</b>

If you have a script file, the alias will call a script in it if you place the script function name here. The script function must be declared with 3 arguments: name, line, wildcards. For example, in VBscript:

<code>
sub my_alias_function (name, line, wildcards)
  world.note "alias " &amp; name &amp; " called."
end sub
</code>

However in Lua all arguments are optional (as is usual with Lua function calls). 

<b>Group:</b>

Aliases can be placed in groups. If you want to group your aliases place the group name in the group box. You can use groups to enable/disable or delete groups of aliases.

<b>Variable:</b>

If you have set the alias to "send to variable", place the variable name here.


dialog_name: IDD_EDIT_TRIGGER
title: Edit trigger
label: IDD_EDIT_TRIGGER
doc_name: triggers
related_dialog: IDD_PREFS_P8
description:
When a trigger matches MUSHclient does not evaluate any further triggers (unless "Keep Evaluating" is checked). Thus a trigger can be used as a "blocker" to stop further triggers down the list from being processed. Triggers with lower sequence numbers are evaluated before triggers with higher sequence numbers. Thus, use sequence numbers to control the evaluating sequence.

<b>Trigger:</b>

This is the text that you are expecting from the MUD. If it is matched on exactly, then the text in the "send" box is acted upon and your script (if any) is called.

<b>(...)</b>

Click to edit the trigger text in a larger window. If the trigger is a regular expression the larger window also has an extra "helper" button to assist you in adding regular expression items.

<b>Match: (colour) on (colour)</b>

You can make a trigger match a particular colour line by setting these options. Leave the colours at "(any)" to match on any colour. You can also match on a line in bold/italic/inverse or any combination of these. These check-boxes are "tri-state", which means they can be:

1. Unchecked (the line must not be bold, for example)
2. Checked (the line must be bold, for example)
3. Greyed out (it doesn't matter if the line is bold or not)

The first character of the matching text is  checked for the specified colour.

<b>Bold</b>

Check to match if the first character of the matching text is bold. Uncheck if the first character must <b>not</b> be bold. Greyed out if you don't care.

<b>Italic</b>

Check to match if the first character of the matching text is italic. Uncheck if the first character must <b>not</b> be italic. Greyed out if you don't care.

<b>Inverse</b>

Check to match if the first character of the matching text is inverse. Uncheck if the first character must <b>not</b> be inverse. Greyed out if you don't care.

<b>Send:</b>

What to send to the "send" destination. The default send destination is back to the MUD.

You can use %1 to match the first wildcard, %2 to match the second wildcard, and so on up to %9. For wildcards above 9 you can use %&lt;n&gt; (for example, %&lt;50&gt; for wildcard 50). 

%0 represents the whole matching text.

Use %% to represent a single % symbol. You can also use %C to insert the contents of the Clipboard, and %N to insert the current trigger's name (label).

If you are sending to script then any quotes or other special characters in the send text (inside the wildcard contents) are "escaped" appropriately for the script language you are using. 

<b>(...)</b>

Click to edit the send text in a larger box.

Alternatively press Alt+Enter to open the editing dialog box.

<b>Enabled</b>

If checked, the trigger is enabled (active).

<b>Ignore case</b>

If checked, the trigger match is case insensitive. If not checked, the "case" of the matching text must agree exactly.

<b>Omit from log file</b>

If checked, the matching line is not logged to the log file (if open).

<b>Omit from output</b>

If checked, the matching line is omitted from the output window.

<b>Keep evaluating</b>

If checked, the same line is checked against further triggers. If unchecked the first matching trigger cancels trigger evaluation. You can change the order in which triggers are evaluated by amending the sequence field.

<b>Regular expression</b>

If checked, the trigger match text is a regular expression. See "regular expressions" in the help for more information. You can convert an "ordinary" trigger to a regular expression by clicking the "Convert to Regular Expression" box. Then you can edit the regular expression to customise it.

<b>Repeat on same line</b>

If checked, the trigger is matched repeatedly against the same line (this only applies to regular expressions). This lets you colour individual words which might appear more than once on a line.

<b>Expand variables</b>

If expand variables is on (checked) then a variable name in the format @name is expanded. To put a @ symbol itself in the trigger, use two @@.

Here is an example of such an trigger:

unlock @direction 

For this trigger to work you would need a variables, "direction".

You can set variables by using the configuration dialog box, or through a scripting command (if scripting is enabled), like this:

<code>
/SetVariable ("direction", "north")
</code>

If you want to use variables inside regular expressions and <b>not</b> have special characters "fixed" by putting backslashes inside them, use the syntax:

<code>
@!variable
</code>

<b>Temporary</b>

If checked, the trigger will not be saved to the world file. In other words, it is a temporary one only for use in this session.

<hr/>
<b>Multi-line, match ... lines.</b>

If checked, this trigger will match multiple lines, starting with the current line (the most recently received), and including the number of lines specified in the adjacent box.

For multi-line triggers MUSHclient assembles a "block of text" which is the specified number of lines, working backwards from the current line, each one ending with a newline character (assembled in the order in which they arrived, of course). This text block is then passed to the regular expression handler to see if it matches. The number of lines is lines with a newline at the end of the, not necessarily the number of lines you see on the screen. For instance, if the MUD sent some 200-character lines that line-wrapped, each line is counted as one line, even if you see four lines on the screen.

A simple example would be to match on:

<code>
You are hungry.
You are thirsty.
</code>

To match this you might have the regular expression:

<code>
Match: ^You are hungry\.\nYou are thirsty\.\n\z
</code>

The \n represents the "newline" character (hex 0A) between the two lines, the \. is a single period (at the end of the sentences) and the \z is an "anchor" to the end of the text block. The \z is not really necessary for this example, but could be useful for longer ones.

For this example the "number of lines" would be 2, as you are trying to match a 2-line block.

A more complex example is to match your inventory, which might be:

<code>
You are carrying:
     a magic mushroom
     a torch
     a dragonskin
     a bag
     recall scroll

</code>

Note the blank line at the end of the inventory.

A matching trigger might be:

<code>
Match: ^You are carrying:\n(([ ]{5}.*\n)*)[^ ]\z
</code>

This matches "You are carrying" followed by a newline, followed by any number of lines starting with 5 spaces. It then matches a line which does NOT start with a space. Finally it is anchored to the end of the text block with \z so that if there is more than one inventory recently it will find the last one.

In this case the number of lines needs to be the largest number you expect in your inventory, as the middle part of the regular expression can match more than one line. You could choose any number up to 200.

Another example matches a "who" list, which might look like this:

<code>
Connected players
  Bob
  Alice
  Nick
3 players
</code>

The regular expression could be:

<code>
Match: ^Connected players\n(?s)(.*)\n(\d*) players?\n\z
</code>

This example uses the "\n" character to indicate line breaks, and the words "Connected players" to start the list, and "X players" to end it.

<b>Limitations on multi-line triggers</b>

<ul>
<li/>The higher the number of lines you specify, the slower the trigger matching will run, as it has to assemble, and then test, a larger string.
<li/>Multiple line triggers must be regular expressions, as the syntax for matching line breaks does not exist for normal triggers. 
<li/>Because of the way they work some trigger processing is not available to multi-line triggers (eg. colouring lines, omit from output, omit from log).
<li/>They will match output from the MUD (not notes or commands that might be in the output window), even if that output was omitted from the output window by a previous trigger.
</ul>

<hr/>
<b>Make wildcards lower-case</b>

If checked, any matching wildcards are forced to lower-case before being used. This lets you match on an upper-case word, but send it back to the MUD in lower case.

<b>One-shot</b>

If checked, once this trigger fires, it is deleted.

<b>Convert to Regular Expression</b>

Click to convert an ordinary trigger to a regular expression.

<b>Change colour and style to:</b>

If the trigger matches you can colour the matching word or line, by setting the options below.

If the trigger matches a regular expression, then only the matching portionn of the line will be changed. A non regular expression always changes the colour of the whole line.

Choose a colour from the drop-down list. The default is "no change" which means the matching text will stay in whatever colour they were to start with.

Otherwise you can choose from any of the 16 custom colours which you can set up in the custom colour configuration diaglog.

You can also choose "other" and then click on the two colours swatches which will appear to make the trigger matching text be coloured in any foreground or background colour you choose.

<b>Both / Text / Back </b>

If you are choosing to change the colour of the match text, you can select from the drop-down box whether the change applies to both text and background (the default), or text-only, or background only.

If you change the text only, then the underlying background colour is preserved.

If you change the background only, then the text colour is preserved, but you can highlight the word(s) with a different shade of background.


<b>Bold</b>

Click to make the matching text bold. This is greyed out if you do not have "show bold" enabled in the Output configuration screen.

<b>Italic</b>

Click to make the matching text italic. This is greyed out if you do not have "show italic" enabled in the Output configuration screen.

<b>Underline</b>

Click to make the matching text underlined. This is greyed out if you do not have "show underline" enabled in the Output configuration screen.

<b>Send to:</b>

Where to send the "send" text to. The default is to the MUD, however you can choose other places, like the output window (as a note to yourself), a notepad, or simply enter a script command in the "send" box and send to "script".

The "send-to" box lets you choose to send the "send" text to one of:

<ul>
<li/> world (the MUD)
<li/> command (the command window)
<li/> output (directly to the output window, as a note to yourself)
<li/> status (to the status line)
<li/> notepad - new (create a new notepad window)
<li/> notepad - append (append to a notepad window)
<li/> log file (directly to the log file)
<li/> notepad - replace (replace an existing notepad window)
<li/> world - speedwalk delay (queue for delayed send at the speedwalk rate)
<li/> variable (set a variable, whose name you provide in the variable box)
<li/> execute (execute through normal command parser, so aliases, speedwalks etc. will be executed)
<li/> speedwalk (send to world after converting speedwalk string)
<li/> script (execute as a script command in the current scripting language)
<li/> world - immediate (to the MUD immediately, even if you are speedwalking)
<li/> script- after omit (execute as a script command, <b>after</b> omitting the matching line from output, if that option was checked)
</ul>

If you send to "script (after omit)", and are using Lua scripting, MUSHclient will create a global variable called "TriggerStyleRuns", into which is placed an entry for each style run in the matching trigger.

<b>Variable:</b>

If you have chosen "send to variable" then enter the variable to be set here.

<b>Sound</b>

If a sound is chosen then that will be played when the trigger matches.

<b>Browse...</b>

Click to browse for a sound file.

<b>Test</b>

Click to test the chosen sound.

<b>No sound</b>

Click to have no sound play.

<b>Only if inactive</b>

If checked, the sound is played only if the world window is not active. You can use this to play an "alert" sound if a message arrives for you (eg. Place your name in the trigger match text) but if that world window is not currently active,

<b>Sequence:</b>

By entering a sequence number you can make triggers evaluate in a particular order. The lower the number, the earlier the trigger is evaluated (that is, low numbers are evaluated before high numbers). If two triggers have the same sequence the evaluation order is not defined (that is, it could be anything).

<b>Copy wildcard X to Clipboard.</b>

You can choose to copy any of the first matching 10 wildcards to the Clipboard.

<b>Label:</b>

The name (label) of this trigger. Use this if you want to refer to the trigger in scripts.

<i>Rules for names</i>

Names of triggers, aliases, timers and variables must follow these rules:

<ul>
<li/> Start with a letter (A-Z)
<li/> Be followed by letters (A-Z), numbers (0-9) or the underscore character (_)
</ul>

<b>Script:</b>

Which script routine to call in your script file. The script routine must be defined with three arguments. For example, in Vbscript:

<code>
sub myTrigger (name, output, wildcards)
  world.Note "Trigger " &amp; " name has fired!"
end sub
</code>

However in Lua all arguments are optional (as is usual with Lua function calls). 

Also if you are using Lua scripting there is a fourth (optional) argument, which is a table of all the style runs in the matching trigger. Each entry has a sub table for:

<ul>
<li/>textcolour - the RGB colour of the text in this style (number)
<li/>backcolour - the RGB colour of the background (number)
<li/>text - the actual text
<li/>length - the length of the style run
<li/>style - style bits (bold=1, underline=2, blink=4) or'ed together (eg. bold underline would be 6)
</ul>

If you use "send to script (after omit)" then the style runs are also available from the global variable: TriggerStyleRuns.

<b>Group:</b>

You can put triggers, aliases and timers into groups, and enable or disable the entire group. If you wish to do that put a group name here.


dialog_name: IDD_TEST_COMMAND
title: Test command
label: IDD_TEST_COMMAND
description:
<b>Enter (or paste) the command you wish to test:</b>

Enter a command.

When you click OK you will be shown what actually gets sent to the world in response to the above command, after aliases, speed walking, command stacking etc. are evaluated.


dialog_name: IDD_TEST_TRIGGER
title: Test trigger
label: IDD_TEST_TRIGGER
description:
<b>Enter (or paste) the trigger you wish to test:</b>

Enter some simulated MUD output.

When you click OK you will be shown what actually gets sent to the world in response to receiving the above text from the world, after all triggers are evaluated.

<b>Ignore triggers that match on colours or styles</b>

If checked, triggers that match on colours or styles will not be tested.


dialog_name: IDD_TEST_RESULT
title: Test results
label: IDD_TEST_RESULT
description:
<b>The following would be sent to the world:</b>

This shows what would be sent when you test a command.


dialog_name: IDD_PREFS_P10
title: Send
label: IDD_PREFS_P10
doc_name: send_paste
command_name: ConfigureSendFile
related_dialog: IDD_PASTE_PREAMBLES
description:
When sending a file to a MUD you have the option to prepend or append strings to your file (in other words, put text before and/or after each line, and the entire file).

Note that there will always be a "linefeed" sent at the end of each line, you do not need to send one yourself.

<b><i>Programming a MUD</i></b>

If you are writing a program for an LP MUD you might want to start with:

<i>&lt;commands to start up the internal editor&gt;</i>

Then at the start of each line:

<i>&lt;command to insert a line&gt;</i>

Then at the end of the file:

<i>&lt;command to exit from the editor&gt;</i>


<b><i>Echoing messages</i></b>

Alternatively, you may wish to echo a message to someone that you heard elsewhere (e.g. from email). In this case you might wish to put, at the start of each line:

say 

so that you "say" the contents of the file.

<b>1. Send this at the start of a "send file to world":</b>

This string is sent once, at the start of a "send file" operation. It could be used to enter programming mode on a MUD, if necessary. This string can consist of multiple lines, with "carriage returns" between each line.

<b>2. Send this at the start of each line:</b>

This string is sent at the start of each line from the file. It could contain any special prefix that you need at the start of each line, for example, the word "say ".

<b>3. Send this at the end of each line:</b>

This string is sent at the end of each line from the file

<b>4. Send this at the end of a "send file to world":</b>

This string is sent once, at the end of a "send file" operation. It could be used to exit from programming mode on a MUD, if necessary. This string can consist of multiple lines, with "carriage returns" between each line.

<b>Delay between lines:</b>

You can set a delay of up to 10 seconds between each line of text that is sent to the world. This is designed to give the server time to respond. Time is specified in milliseconds (1000 milliseconds to one second). You should keep this time as short as possible to avoid lengthy delays on doing a send. A reasonable figure might be 100 (1/10 of a second).

<b>Every X lines</b>

This is the number of lines that are sent before the delay (above) is invoked. Thus, you could set it up to delay 2 seconds every 100 lines.

<b>Commented Softcode</b>

This allows you to send commented softcode to a MUSH (MUX, or similar). See the description for "sending and pasting" for more details about that.

<b>Echo to output window</b>

If checked, the file is echoed to the output window, otherwise it is not.

<b>Confirm on each "send file to world"</b>

If checked, you are asked to confirm the above settings each time you paste to a MUD. If unchecked, these options are taken "as is".


dialog_name: IDD_PREFS_P11
title: Notes
label: IDD_PREFS_P11
command_name: ConfigureNotes
description:
This screen provides you with "free format" notes, on a per-world basis. 

It does not have an other special significance for the program, it is there for you to make any notes you may care to make about the current world.

<i>Suggested uses</i>

* Notes about interesting/friendly characters you meet
* Directions for how to get from Place A to Place B
* Work area for keying in long MUD commands, which can then be copied and pasted into the command input area when ready
* Notes about what you are planning to do next time you connect, or what equipment you need to find
* Copy interesting conversations from the MUD and paste them here for future reference

<b>Load...</b>

Click to load a text file into the notes area.

<b>Save...</b>

Click to save the notes area into a text file.

<b>Find...</b>

Click to find a particular word inside the notes.

<b>Find Next</b>

Click to repeat the last find.


dialog_name: IDR_MUSHCLTYPE
title: Main MUSHclient window
label: IDR_MUSHCLTYPE
doc_name: starting
related_dialog: IDD_PREFS_P9
description:
This is the MUSHclient &quot;split&quot; window. The MUD name will be in the title bar, the top area is used for showing MUD output, and the bottom part (below the splitter bar) is used for the command area (input to the MUD). You can resize the command area by placing the mouse over the splitter bar and moving it up or down.

<b>Entering commands</b>

You can only send commands to the MUD when the &quot;focus&quot; is in the lower (command) window. If the focus is there, you should see a flashing cursor (vertical bar), and what you type should appear in that window. If not, make sure that window is active (click on the title bar if necessary), and press the &lt;tab&gt; key. The &lt;tab&gt; key moves the focus from the upper window to the lower (command) window.  You can also use the &lt;esc&gt; key to move the focus in this way. However be careful that if the focus is already in the command window, then pressing &lt;esc&gt; can (optionally) delete everything already typed into it.

If you have enabled "command stacking" in the command preferences, you can enter the command stack character to break a single line into multiple lines (eg. "west;up"). This effect can be temporarily disabled by entering the command stack character as the very first character (eg. ";say eat;sleep")

<b>Editing commands</b>

Commands are not transmitted to the MUD until you press &lt;Enter&gt;, so until that time, you can use the mouse, arrow keys, &quot;home&quot;, or &quot;end&quot; keys to move the cursor around in the command area, editing and amending your input. You can also use the normal Windows copy (Ctrl+C), cut (Ctrl+X) and paste (Ctrl+V) commands to copy and paste text from inside MUSHclient or elsewhere.

Press Alt+Home to move the cursor to the start of the command window, and Alt+End to move to the end of it.

If you are typing script commands you can press Shift+Tab to complete a partially-typed inbuilt script function name.

<b>Global change</b>

If you need to make a &quot;change all&quot; in your command (perhaps changing every linefeed into the %r characters), then use the Global change function.

<b>Recalling previously transmitted commands</b>

Up to the last 5000 commands you entered (per world) are saved in an internal command history buffer. You can view this buffer at any time by pressing Ctrl+H (or select &quot;Command History&quot; from the Game menu). You can select (highlight) any previous command with the mouse and click the &quot;recall&quot; button to recall it to the command input area.

The exact number of commands that is retained is user-configurable.

Alternatively, you can recall recent commands by pressing Alt+Up-arrow to move upwards through the recent commands, or Alt+Down-arrow to move back downwards.

If you have checked the &quot;arrow keys traverse history&quot; box in the world configuration screen, you can review recent commands by pressing Up-arrow and Down-arrow without having to press the Alt key.

The history buffer does not record empty (blank) commands, or commands which are identical to the previous one.

You can use Ctrl+R to repeat the previous command.

<b>Match on partial command</b>

If you have the &quot;Alt+Arrow Keys Recalls Partial Command&quot; option set, then you can type a partial command (eg. &quot;cast&quot;) and then press Alt+Up-arrow. The last command matching the partial command (in this case, &quot;cast&quot;) will be displayed. Keep pressing Alt+Up-arrow to see earlier commands which also started with the same string.

<b>Tab completion</b>

This very useful feature lets you type a partial word, and then press TAB. The first word matching the partial word, searching backwards through the output window, will be used to complete the partial word. You can also specify your own list of words to be taken in advance of searching the output window.

For example, if you see:

A Dragonsnake sits here hissing!

You can type:

kill dra&lt;tab&gt; 

You would then see the command window change to read:

kill Dragonsnake

If this is what you want, press ENTER. If not,  press CTRL+Z (undo), then right-arrow once (to move past the selected word), and add a couple more letters. For example, if there was a &quot;drain&quot; and a &quot;dragonsnake&quot; nearby, then &quot;dra&quot; might match on &quot;drain&quot;. 


<b>Reviewing output from the MUD</b>

You can easily scroll backwards through recent output by pressing &quot;Page-Up&quot; or &quot;Page-Down&quot; to scroll the display buffer forwards and backwards. You can also use:

<ul>
  <li/>CTRL+HOME	Go to start of display buffer
  <li/>CTRL+END	Go to end of display buffer
  <li/>CTRL+UP-ARROW	Go up one line
  <li/>CTRL+DOWN-ARROW	Go down one line
  <li/>CTRL+PAGE-UP	Go upwards one screenfull 
  <li/>CTRL+PAGE-DOWN	Go downwards one screenfull
 </ul>

<b>Pausing output</b>

If you have an interesting message that you are trying to read, but can't because recent output is causing the screen to keep scrolling, you can temporarily &quot;pause&quot; the output by pressing:

<code>Ctrl+Space</code>

Although new output will be received and processed (and triggers acted upon), the display buffer will not scroll automatically, until you un-pause it by pressing Ctrl+Space again.

<b>Resizing the window</b>

You can resize the MUSH window in the usual way, but please note that the display area is fixed to show a certain number columns of output per line. This number is fixed in the &quot;Output&quot; tab of the world configuration screen.

<b>Changing the display and command font</b>

You can change the font (typeface) being used in the display and command area, on a per-world basis, by using the &quot;World Configuration&quot; menu item from the &quot;Game&quot; menu (or pressing Ctrl+G), and then selecting the &quot;Screen&quot; tab. Click on the &quot;Font&quot; button and choose your desired font and size. (In general, monospaced fonts (eg. Courier) will work better than proportionally spaced fonts, because many displays [eg. WHO lists] are designed to be displayed with a monospaced font).

Once you have closed the &quot; World Configuration&quot; dialog box, the font chosen will the used to display the output, and for command input, for the chosen world. This will only become permanent if you save the world details (File &gt; Save).

<b>Contents of status line</b>

 The status line shows (for the current world):

<ul>
  <li/>Pause status (double-click to pause/unpause)
  <li/>MUD name (click to select a different open world)
  <li/>Time connected (double-click to reset to zero)
  <li/>Number of lines received (double-click to go to a line by number)
</ul>

If you have paused output by pressing CTRL+SPACE, then the word &quot;PAUSE&quot; appears to warn you that new output will not automatically appear. However if you have scrolled backwards through your output buffer the word &quot;PAUSE&quot; is replaced by &quot;MORE&quot; to warn you that you are not at the end of the output window.

<b>Logging status</b>

If output is being logged, then the word &quot;LOG&quot; will appear to confirm that logging is on.

<b>Caps lock</b>

If you have &quot;caps lock&quot; on then the words &quot;CAP&quot; will appear to confirm this.

<b>Switching world windows</b>

You can switch between multiple open worlds by simply typing Ctrl+Tab, or in the case of the first 10 opened worlds Ctrl+1 (for world 1), Ctrl+2 (for world 2), and so on.


dialog_name: IDR_NORMALTYPE
title: Notepad window
label: IDR_NORMALTYPE
doc_name: notepad
description:
This is the window for the built-in notepad.

It is primarily intended to allow you to easily enter scripts for stand-alone script files.

If you are typing script commands you can press Shift+Tab (or Ctrl+Space) to complete a partially-typed inbuilt script function name.

Various helper functions are available from the menus.

<b>ASCII art</b>

Lets you insert "large" letters made up of text.

<b>Go to brace</b>

Lets you find or select the matching brace - useful for MUSHcode or for script languages that are dependent on brackets.

<b>Conversions</b>

Various conversions are available from the Convert menu, such as case conversion, line wrapping, quoting text for use in the Forum, and so on.


dialog_name: IDR_ACTIVITYTYPE
title: Activity window
label: IDR_ACTIVITYTYPE
doc_name: activity
description:
This is the "activity list" window that shows all open worlds, and whether you have new activity in them.

You can click and drag the headings around to change the order of the columns.

<b>Activating</b>

You can activate any word in the list by double-clicking its line in the activity window.

In the case of the first 10 worlds you can activate (go to) any of the first 10 worlds by pressing Ctrl+N where N is the world number (eg. Ctrl+1 for world 1, Ctrl+2 for world 2, and so on up to Ctrl+0 for the 10th world).

You can also right-mouse-click on any world in the list and choose "switch to world" from the pop-up menu.

<b>Seq</b>

This is the internal sequence number of the world. It starts at 1 for the first world opened, and increases by 1 for each open world. You can determine the sequence in which worlds open by putting a list of worlds in the "worlds to open at startup" in the global configuration.

<b>World</b>

This is the internal world name, which you can alter from the first world configuration screen.

<b>New</b>

This shows the number of new lines received from that world since it was last active. If non-zero, then there is output that has arrived that you have not read yet.

<b>Lines</b>

This shows the number of lines that have arrived from that world.

<b>Status</b>

This shows the world status (eg. open, closed, connecting).

<b>Since</b>

This shows when you connected to the world.

<b>Duration</b>

This shows how long you have been connected to the world.


dialog_name: IDD_PREFS_P12
title: Configure numeric keypad
label: IDD_PREFS_P12
doc_name: keypad
command_name: ConfigureKeypad
related_dialog: IDD_GENERATE_UNIQUE_ID
description:
Use this dialog to configure what is sent if you press one of the numeric keypad keys. The string you enter is sent through command processing so you can put aliases here.

<b>Enable Keypad Keys</b>

If checked, the configured strings are sent. 

If not checked, the numbers on the keys are sent (eg. key "2" would be "2").

<b>Show Contents If CTRL Held Down</b>

If checked, you see what is sent if the Ctrl key is held down (eg. Ctrl+2).

If unchecked, you see what is sent if the Ctrl key is not held down.

<b>Hint</b>

To do more elaborate things (like expanding variables, running scripts) enter a nonsense word as what to send, and then make an alias to "catch" that word, and do the extra processing in the alias. One way of doing this is to use the Edit -&gt; Generate Unique ID menu item to generate a unique word, like this:

381e051a828fb201b6914699

This is unlikely to be something you would normally want to type into the MUD. Then make an alias to match on "381e051a828fb201b6914699" (or whatever word you choose) and make the alias do things like expand variables, call scripts, etc.


dialog_name: IDD_HIGHLIGHT
title: Highlight word
label: IDD_HIGHLIGHT
doc_name: triggers
command_name: HighlightWord
related_dialog: ID_GAME_CONFIGURE_TRIGGERS
description:
Allows you to quickly generate a trigger that highlights a word or phrase.

<b>Highlight</b>

Enter the word or phrase to be highlighted. If you have selected text in the output window before opening this dialog, this text will be automatically entered here.

<b>Colour</b>

Choose a custom colour from the combo box, or choose "Other ...".

<b>Colour swatches</b>

If a custom colour is selected, these will show what the custom foreground and background colours are.

If you have selected "Other ..." then you can click on the left-hand swatch to set the text colour, and the right-hand swatch to set the background colour.

<b>Whole Word Only</b>

If checked, this makes the trigger match only a whole word boundary. The difference is that if you highlight (say) "cat" then with "whole word only" checked it will only match "cat" on its own, however with it unchecked it would also match the first part of the word "catch".

<b>Match Case</b>

If checked, the trigger will only match the exact case shown, otherwise it will match upper or lower-case versions of the text.

<b>OK</b>

When you click OK, a trigger will be added to the world's trigger list. This trigger will be:

<ul>
<li/>A regular expression (to match part of the line)

<li/>Sequence 90 (to fire before default triggers)

<li/>Keep evaluating (so other triggers will also match the line)

<li/>Repeat on same line (so multiple words on the same line will be highlighted)

<li/>Have empty "send" text

<li/>Set to change the selected text to the colour you specify

<li/>Group as "Highlighted Words"
</ul>


dialog_name: IDD_GLOBAL_PREFSP13
title: Global preferences - Lua
label: IDD_GLOBAL_PREFSP13
doc_name: scripting
related_dialog: IDD_GLOBAL_PREFSP1
description:
<b>Preliminary code</b>

You can enter some initial scripting that is executed every time that the Lua script engine is created. This can be used to set up a "sandbox", that is a safe environment for your scripts.

The default behaviour is to disable the "os" library (operating system calls), which could be used to execute arbitrary commands, and rename or delete files.

Also the "io" library is disabled, which could be used to read or overwrite existing files.

To revert to the default settings, delete everything from this window, and then close and re-execute MUSHclient.

<b>Edit...</b>

Click to edit the code in a larger window.

<b>Allow DLLs to be loaded</b>

Check this to allow DLLs to be loaded by Lua code. 

Only check this if you are sure that you are not going to run untrusted scripts. 

We suggest that before checking "Allow DLLs to be loaded" you edit the "sandbox" code and disallow use of the package library except for trusted worlds or plugins. For example, enter these lines in the sandbox:

<code>
package.loadlib = nil      --&gt; disable loadlib function
package.loaders [3] = nil  --&gt; disable DLL loader
package.loaders [4] = nil  --&gt; disable all-in-one loader
</code>

The reason for the last two lines is that doing a "require" can trigger the DLL and all-in-one loaders, which are designed to load DLLs.


dialog_name: IDD_PREFS_P13
title: Paste
label: IDD_PREFS_P13
doc_name: send_paste
command_name: ConfigurePasteToWorld
related_dialog: IDD_PASTE_PREAMBLES
description:
When sending a data to a MUD you have the option to prepend or append strings to your text (in other words, put text before and/or after each line, and the entire clipboard).

Note that there will always be a "linefeed" sent at the end of each line, you do not need to send one yourself.

<b><i>Programming a MUD</i></b>

If you are writing a program for an LP MUD you might want to start with:

<i>&lt;commands to start up the internal editor&gt;</i>

Then at the start of each line:

<i>&lt;command to insert a line&gt;</i>

Then at the end of the file:

<i>&lt;command to exit from the editor&gt;</i>


<b><i>Echoing messages</i></b>

Alternatively, you may wish to echo a message to someone that you heard elsewhere (e.g. from email). In this case you might wish to put, at the start of each line:

say 

so that you "say" the contents of the clipboard.

<b>1. Send this at the start of a "paste to world":</b>

This string is sent once, at the start of a "paste" operation. It could be used to enter programming mode on a MUD, if necessary. This string can consist of multiple lines, with "carriage returns" between each line.

<b>2. Send this at the start of each line:</b>

This string is sent at the start of each line from the clipboard. It could contain any special prefix that you need at the start of each line, for example, the word "say ".

<b>3. Send this at the end of each line:</b>

This string is sent at the end of each line from the clipboard.

<b>4. Send this at the end of a "paste to world":</b>

This string is sent once, at the end of a "paste" operation. It could be used to exit from programming mode on a MUD, if necessary. This string can consist of multiple lines, with "carriage returns" between each line.

<b>Delay between lines:</b>

You can set a delay of up to 10 seconds between each line of text that is sent to the world. This is designed to give the server time to respond. Time is specified in milliseconds (1000 milliseconds to one second). You should keep this time as short as possible to avoid lengthy delays on doing a send. A reasonable figure might be 100 (1/10 of a second).

<b>Every X lines</b>

This is the number of lines that are sent before the delay (above) is invoked. Thus, you could set it up to delay 2 seconds every 100 lines.

<b>Commented Softcode</b>

This allows you to send commented softcode to a MUSH (MUX, or similar). See the description for "sending and pasting" for more details about that.

<b>Echo to output window</b>

If checked, the sent text is echoed to the output window, otherwise it is not.

<b>Confirm on each "paste to world"</b>

If checked, you are asked to confirm the above settings each time you paste to a MUD. If unchecked, these options are taken "as is".


dialog_name: IDD_PREFS_P14
title: Output
label: IDD_PREFS_P14
command_name: ConfigureOutput
description:
<b>Enable beeps:</b>

If checked, beeps (hex 07 characters) received from the MUD will play the system beep sound.

<b>Browse...</b>

Click to browse for a sound file (.wav file) to play instead of the system beep.

<b>Test</b>

Click to test the current beep sound.

<b>UTF-8 (Unicode)</b>

If checked, incoming text will be treated as UTF-8 (Unicode characters encoded using the UTF-8 encoding system) and displayed as such. This will allow different character encodings (Greek, Chinese, Japanese, Russian etc.) to be displayed correctly. Due to the difficulty of testing this properly, this is somewhat of an experimental feature. <b>Important</b> - in order to display Unicode characters properly, you must use a Unicode font. Some fonts do not have the character encodings for Unicode characters. An example font to try would be Lucida Console, or Lucida Sans Unicode.

<b>Text offset from edge (pixels):</b>

Enter a number from 0 to 20 to offset the output window down, and to the right, of the edge of the window. You can use this is you find the text annoyingly close to the window edge.

<b>Line spacing (pixels):</b>

Enter the number of pixels that you want each line of text to be apart. You can use this to widen the gap between lines. For a 9-point font, a reasonable figure might be 15 points. Make zero to take the default font spacing.

<b>Font...</b>

Click to choose the font to use in the output window (the upper window).

<b>Override with default</b>

If checked, the default font (set in Global Preferences) is used intead of the world's font.

<b>Show bold</b>

If checked, bold (highlight) characters from the MUD show as bold (thicker). If unchecked they are rendered in the same font as normal characters.

<b>Show italic</b>

If checked, italic (and blink) characters from the MUD show in italic. If unchecked they are rendered in the same font as normal characters.

<b>Show underline</b>

If checked, underline characters from the MUD show underlined. If unchecked they are rendered in the same font as normal characters.

<hr/>
<b>New activity sound</b>

You can play a nominated "sound" file when new activity arrives for a MUD that is not the frontmost window.  

Then, when output arrives for this MUD, and the MUD's window is not at the front, the nominated sound will be played.

<b>Browse...</b>

Click to select a "wave" file (ie. a file whose name ends in .WAV), a "MIDI" file (ie. a file whose name ends in .MID), or a sequencer file (ie. a file whose name ends in .RMI).

<b>Test</b>

Click to test the new activity sound.

<b>No sound</b>

Click if you do not want a new activity sound played.

<hr/>

<b>Number of lines in output buffer:</b>

Enter the number of recent MUD output lines to save (for scrolling back purposes). The higher the number, the further you can scroll back. The maximum is currently 500,000 lines. However, if you have multiple worlds open at once, all set to remember the maximum number of lines, you may find MUSHclient will eventually consume quite a bit of memory, as these lines are saved in memory.

If you find your system running low on memory, try reducing the number of lines here.

You may find a sharp degradation of performance if you choose to store so many lines in your output buffer that some have to be "paged" to disk. The degradation of performance is due to the fact that memory access speeds (usually very fast) are degraded to disk access speeds (somewhat slower). If this happens, try reducing the size of your output buffer. Smallish figures like 5,000 lines should be fine, however you may find problems storing 100,000 lines or more, depending on how much system memory you have installed. Alternatively, since memory is cheap these days, you could install more memory.


<b>Wrap output at column number:</b>

When this is checked, output from the MUD is wrapped at the nominated column in such a way that words are not broken into two (the line is wrapped at the previous space). You can choose to wrap at a column between 20 and 500.

If you are using a small font (or have a large screen) you may wish to wrap output at more than column 80. If you like using a large font, or have a small screen (or both) you may prefer to wrap output at a smaller column size (say, 40).


<b>Show Line Information</b>

When this is checked, if you move the mouse over any line in the output area for about a second, a "tooltip" window will pop up and show the line number (since the start of the session), the date/time it was received, and the word "(input)" if you typed the line yourself, or "(note)" if the line was generated by the "note" command in a script. The "tooltip" window will automatically disappear after about 5 seconds, or if you move the mouse, or if the window is scrolled.

<b>Start Paused</b>

If this is checked, this world will start "paused" next time you connect to it.

<b>Auto Pause</b>

If this is checked, the output window will pause if you scroll backwards to view previous output. It will then un-pause when you return to the bottom of the window (eg. by pressing Ctrl+End).


<b>Un-Pause on send</b>

If this is checked, sending a command to the MUD will un-pause the output window. The intention here is that you may have paused the window while you scroll back and look at something, but as soon as you enter a new command, want to see the effect that it has.

<b>New activity flashes taskbar</b>

If this is checked, if there is new activity in this world, and MUSHclient is not the foreground program, then its icon on the Windows taskbar will flash, to alert you that there is new activity for the world.

<b>Disable compression</b>

If this is checked, decompression of text from a server supporting MUD Client Compression Protocol (MCCP) will be disabled. You would not normally check this unless you are having problems with compressed data.

<b>Indent paragraphs</b>

When this is checked, when output from the MUD is wrapped at column 80, the subsequent lines of paragraphs are indented by a single space, to make it easier to recognised new paragraphs. If you do not wish this to happen, uncheck this option.

<b>Negotiate About Window Size (NAWS)</b>

If checked, when you resize your window, a special telnet sequence will be sent to the MUD server to let it know your screen width and height. This is helpful for some servers that automatically "page" output depending on the client window size. If you don't think you need it, leave it unchecked.

<b>Adjust width to size</b>

By clicking on this button the column number to wrap at will be selected as the closest that text can wrap at the edge of the current window size. Use this to adjust the output width to maximize the amount you can fit into the window size you have chosen.

<b>Adjust size to width</b>

By clicking on this button the window size will be adjusted to exactly fit the number of columns you have selected for wrapping purposes. Use this to have the output window the correct width for your chosen number of columns.

<b>Auto-wrap to window size</b>

If checked, when you resize the world window, the number of columns that MUD output wraps at is automatically recalculated to match the new size.

<b>Alternative inverse/highlight display</b>

This selects a different way of display inverse highlighted text.

<b>Show connect/disconnect message</b>

If checked, a message is entered in the output window every time you are connected and disconnected.

<b>Copy selection to Clipboard</b>

If checked, selecting text in the output window automatically places it on the clipboard, without needing to select the Copy command.

<b>HTML</b>

If checked, automatically-copied text is copied in HTML format.

<b>Convert IAC EOR/GA to new line</b>

If checked, incoming IAC EOR or IAC GA sequences are converted to newlines. This lets you put triggers on prompt lines and have them fire immediately, if the MUD terminates prompts with IAC EOR (0xFF 0xEF) or IAC GA (0xFF 0xF9).

Also, the sequence IAC WILL EOR will be responded to with IAC DO EOR (or IAC DO EOR) if the option is checked, and IAC DONT EOR if the option is not checked. However in this case EOR is 0x19.

<b>Telnet Terminal Type:</b>

Enter the type of terminal that MUSHclient reports when doing telnet negotiation.


dialog_name: IDD_PASTE_PREAMBLES
title: Confirm preamble and postamble for pasting or sending file to the world
label: IDD_PASTE_PREAMBLES
command_name: PasteToMush
related_dialog: IDD_PREFS_P13
description:
This dialog lets you confirm the preamble and postamble for pasting or sending data to a world.

<b>1. Send this at the start:</b>

This text is sent at the start of the whole operation.

<b>2. Send this at the start of each line:</b>

This text is sent at the start of each line.

<b>3. Send this at the end of each line:</b>

This text is sent at the end of each line.

<b>4. Send this at the end:</b>

This text is sent at the end of the whole operation.


<b>Delay between lines:</b>

Enter the delay in milliseconds between pasting or sending each line.

<b>Every X lines.</b>

If you only need the delay (say) every 100 lines, enter the number of lines here to be sent without a delay.

<b>Commented softcode</b>

If checked, the text is assumed to be commented softcode, and the comments are removed.

<b>Echo each line to output window</b>

If checked, each line is echoed to the output window.


dialog_name: IDD_PREFS_P15
title: Info
label: IDD_PREFS_P15
command_name: Info
related_dialog: IDD_PREFS_P11
description:
Shows various pieces of information about the current world - most of it calculated at run-time.

<b>TCP/IP address of this world:</b>

The actual address of the world (after DNS lookup).

<b>Lines in output buffer:</b>

How many lines in the output buffer, and count of style runs.

<b>Memory used by output buffer:</b>

Amount of memory currently used in the output buffer. If the number of lines exceeds 1000, you need to click the "Calculate" button to have the usage calculated, as the calculation can be lengthy for very large output buffer sizes.

<b>Calculate</b>

When clicked, calculates the memory used by the output buffer. Once done, this button is grayed out, as it does not need to be done twice.

<b>Time connection established:</b>

When the current connection started.

<b>Connection duration:</b>

How long we have been connected.

<b>Triggers:</b>

Count of triggers in the main world, and the execution time they have taken so far.

<b>Aliases:</b>

Count of aliases in the main world.

<b>Timers:</b>

Count of timers in the main world.

<b>Compression ratio:</b>

Compression ratio if using MCCP (Mud Client Compression Protocol).

<b>Received:</b>

How many bytes (and Kb) have been received from the MUD.

<b>Sent:</b>

How many bytes (and Kb) have been sent to the MUD.

<b>MXP statistics</b>

Statistics for the MXP (Mud eXtension Protocol) parser.


dialog_name: IDD_EDIT_TIMER
title: Edit timer
label: IDD_EDIT_TIMER
doc_name: timers
related_dialog: ID_GAME_CONFIGURE_TIMERS
description:
<b>Every interval:</b>

For timers that fire at intervals (eg. every 5 minutes), fill in the next 6 boxes as required.

<b>hour</b>

How many hours apart.

<b>minute</b>

How many minutes apart.

<b>second</b>

How many seconds apart.

<b>Offset:</b>

The offset is used to make a timer fire a fixed amount before its interval elapses. This is useful to "stagger" timed events. For example, if you wanted to have your character:

pose looks around vaguely 

every 2 minutes, and

pose scratches his head 

every 2 minutes (but in-between the other "pose") then you would set both timers to go off at 2 minute intervals, but have one of them have a 1 minute offset. If you didnï¿½t do that then both timers would go off every 2 minutes, displaying both messages in quick succession.


<b>hour</b>

Offset in hours.

<b>minute</b>

Offset in minutes.

<b>second</b>

Offset in seconds.


<b>At the time:</b>

Click on this to have a timer fire at a particular time of the day (using a 24-hour clock). This sort of timer will then fire at that time, every day.

<b>hour</b>

Hour to fire.

<b>minute</b>

Minute to fire.

<b>second</b>

Second to fire.

<b>Send:</b>

What to send when the timer fires.

<b>(...)</b>

Click on the button labelled "..." to open a larger box for editing the timer send text. 

Alternatively press Alt+Enter to open the editing dialog box.

<b>Only Fire Once</b>

If checked, the timer only fires once, and then deletes itself.

<b>Temporary</b>

If checked, the timer is not saved in the world file. 

<b>Active When Disconnected</b>

If checked, the timer will fire even if the world is not connected. This lets you make a "reconnect" timer, for example.

<b>Send To:</b>

Where to send the timer send text to. The default is to the MUD. However you can choose other places, such as the output window, a notepad window, or make the timer "send to script" in which case the timer "send" text can be script commands. 

If you send to "execute" then the send text is evaluated through the command processor, so you can then have an alias inside a timer if you want. 

The "send-to" box lets you choose to send the "send" text to one of:

<ul>
<li/> world (the MUD)
<li/> command (the command window)
<li/> output (directly to the output window, as a note to yourself)
<li/> status (to the status line)
<li/> notepad - new (create a new notepad window)
<li/> notepad - append (append to a notepad window)
<li/> log file (directly to the log file)
<li/> notepad - replace (replace an existing notepad window)
<li/> world - speedwalk delay (queue for delayed send at the speedwalk rate)
<li/> variable (set a variable, whose name you provide in the variable box)
<li/> execute (execute through normal command parser, so aliases, speedwalks etc. will be executed)
<li/> speedwalk (send to world after converting speedwalk string)
<li/> script (execute as a script command in the current scripting language)
<li/> world - immediate (to the MUD immediately, even if you are speedwalking)
</ul>

<b>Variable:</b>

If you have set the timer to "send to variable", place the variable name here.

<b>Label:</b>

Timers can have names - put the name in the "label" box. 

<i>Rules for names</i>

Names of triggers, aliases, timers and variables must follow these rules:

<ul>
<li/> Start with a letter (A-Z)
<li/> Be followed by letters (A-Z), numbers (0-9) or the underscore character (_)
</ul>

<b>Enabled</b>

If checked, the timer is enabled (active). 

<b>Script:</b>

If you have a script file, the timer will call a script in it if you place the script function name here. The script function must be declared with one argument: the timer name. For example, in VBscript: 

<code>
sub my_timer_function (name) 
 world.note "timer " &amp; name &amp; " called." 
end sub 
</code>

However in Lua all arguments are optional (as is usual with Lua function calls). 

<b>Group:</b>

Timers can be placed in groups. If you want to group your timers place the group name in the group box. You can use groups to enable/disable or delete groups of timers.


dialog_name: IDD_GLOBAL_PREFSP1
title: Global preferences - world lists and directories
label: IDD_GLOBAL_PREFSP1
command_name: GlobalPreferences
related_dialog: IDD_GLOBAL_PREFSP2
description:
<b>Worlds to open at startup ...</b>

World files listed here are automatically opened when MUSHclient commences execution, unless the /noauto command-line switch is used.

<b>Add...</b>

Click to add another world to the world list.

<b>Remove</b>

Click to remove the selected world from the world list.

<b>Add Current World</b>

Click to add the current world (the frontmost window) to the list of worlds to be opened at startup.

<b>Move Up</b>

Click to move the selected world up the list (open it sooner).

<b>Move Down</b>

Click to move the selected world down the list (open it later).

<b>Default world files directory...</b>

Click to select a directory to open/save world files.


dialog_name: IDD_GLOBAL_PREFSP2
title: Global preferences - general options
label: IDD_GLOBAL_PREFSP2
related_dialog: IDD_GLOBAL_PREFSP3
description:
<b>Auto connect to world on open</b>

If checked, automatically connect to worlds when their world file is opened.

<b>Reconnect on disconnect</b>

If checked, automatically reconnect to a world if its connection is lost.

<b>Open worlds Maximized</b>

If checked, open worlds maximized.

<b>Notify me when connection broken</b>

If checked, display a dialog box, or message, if the connection to the world is lost. Note this may not be noticed for a while if there is not activity for that world. This dialog box may interfere with scripts that automatically try to reconnect.

<b>Notify me if unable to connect</b>

If checked, display a dialog box, or message, if unable to connect to a world. Note that this dialog box may interfere with scripts that automatically try to reconnect.

<b>Notify to output window</b>

If checked, the above two notifications are written as a line or two to the output window, rather than opening a dialog box.

<b>All typing goes to command window</b>

If checked, even if the "focus" is in the output window (the upper one) as soon as you type something, the focus moves to the command window.

<b>ALT key does not activate menu bar</b>

If checked, Alt+X combinations (eg. Alt+F) do <b>not</b>activate the appropriate menus, and pressing and releasing the Alt key does <b>not</b> move the focus to the menu bar.

<b>Use fixed space font when editing triggers/aliases etc.</b>

If checked, a fixed-space font (FixedSys) is used in the trigger/alias/timer match and send boxes. This makes it easier to see what you are matching on.

<b>Regular expressions can match on an empty string</b>

If checked, regular expressions can match an empty string. (eg. ^$ would match a blank line). If not checked, you cannot make a trigger to match a completely empty line.

<b>Auto-expand config screens</b>

If checked, the configuration windows "tree view" on the left is always fully expanded when opening the configuration screen.

<b>Use colour gradient in config</b>

If checked, the configuration screen has a colour gradient in it, otherwise it is a solid colour.

<b>Bleed background colour to edge</b>

If checked, the background colour currently in force at the start and end of each line is "bled" to the very edge of the output window. This makes MUDs which use a solid background colour look better.

<b>Smoother scrolling</b>

If checked, scrolling is refreshed more frequently, making it look smoother.

<b>Very smooth scrolling</b>

If checked, scrolling is refreshed every pixel, making it look extremely smooth, however this is somewhat slower.

<b>Show grid lines in list views</b>

If checked, various list views (eg. lists of triggers/aliases/timers/variables) have grid lines drawn in them.

<b>Word delimiters</b>

These entries define what MUSHclient considers to be a "word" for the purposes of tab-completion and double-clicking. Items in these lists are considered to be *not* words. Thus, if you put a hyphen in the list, tab-completion will stop at a hyphen. Note that a space is always considered to terminate a word, it is not necessary to put a space in the list.

<b>Tab completion:</b>

List of delimiters to tab-completion.

<b>Double-click:</b>

List of delimiters for double-click to select a word.

<b>Flat toolbars</b>

If checked this makes the toolbar buttons have a "flat" look, if unchecked they will have a 3D look. Changes to this option take place next time you invoke MUSHclient.

<b>Window tabs</b>

This lets you select where the "tabbed window" interface will appear, if at all. The tabs appear at the top or bottom of the main MUSHclient window frame - one tab per open window. 

You can choose between None (no tabs), Top or Bottom.

The tabs will have the world name in the case of world windows, with the number of unseen lines after the name in brackets. The lines are considered unseen if they have arrived, and the world window is not the currently-active one.

In the case of notepad windows there will be an asterisk after the window name if the window contents have been changed, but not saved.

Changes to this option take place next time you invoke MUSHclient.

<b>Spell checker</b>

Options for the spell checker.

<b>Enable</b>

If checked, the spell checker is enabled. This affects all worlds. Note that you also need to enable "Spell check on send" in the command configuration window for each world if you want automatic spell checking as you send.

<b>Locale code</b>

This should be the 2-character code indicating the language you wish messages to be displayed in (eg. EN for English, FR for French).

When MUSHclient starts up, it loads the resources (eg. menus, dialog boxes, etc.) from a file named xx.dll in the "locale" subdirectory - where 'xx' is the locale code - under where the MUSHclient.exe program resides. For example, for English menus, it would look for en.dll.

It also attempts to load a file named xx.lua in the same directory. This is a file which contains mappings of internal messages into their translation in other languages.

For more details see the forum posting:

http://mushclient.com/forum/?id=7953

If you are using the English language, this entry should be left at "EN".

For other languages, do not change it until you have installed the appropriate files. For example, fr.dll and fr.lua, if you are using French.

The file 'en.dll' ships with MUSHclient, and it is not necessary to have the 'en.lua' file, as the default behaviour of MUSHclient is to use internally-coded strings for its various messages.


dialog_name: IDD_GLOBAL_PREFSP3
title: Global preferences - closing options
label: IDD_GLOBAL_PREFSP3
related_dialog: IDD_GLOBAL_PREFSP4
description:
<b>Confirm before closing World</b>

If checked, you are asked to confirm before each world is closed.

<b>Offer to save world if only Variables have changed.</b>

If checked, you are asked to confirm whether to save the world file if only the variables have changed.

<b>Confirm before closing MUSHclient</b>

If checked, you are asked to confirm before MUSHclient is closed.

<b>Offer to save MXP debug windows</b>

If checked, you are asked to confirm whether to save any MXP debug windows that might have been created.


dialog_name: IDD_GLOBAL_PREFSP4
title: Global preferences - printing
label: IDD_GLOBAL_PREFSP4
related_dialog: IDD_GLOBAL_PREFSP5
description:
<b>Font...</b>

Font to use when printing.

<b>Top margin:</b>

Top margin for the page, in millimetres.

<b>Left margin:</b>

Left margin for the page, in millimetres.

<b>Lines per page:</b>

Lines to print per page.


dialog_name: IDD_GLOBAL_PREFSP5
title: Global preferences - logging
label: IDD_GLOBAL_PREFSP5
related_dialog: IDD_GLOBAL_PREFSP6
description:
<b>Default log files directory...</b>

Default directory for log files.


<b>Auto Log when opening world</b>

If checked, automatically turns on logging when opening worlds.

<b>Append to log files</b>

If checked, automatically appends to existing log files.

<b>Confirm when closing log file</b>

If checked, asks you to confirm before closing a log file.


dialog_name: IDD_GLOBAL_PREFSP6
title: Global preferences - timers
label: IDD_GLOBAL_PREFSP6
related_dialog: IDD_GLOBAL_PREFSP7
description:
<b>Timer interval (seconds):</b>

Interval in seconds for the MUSHclient timer.

What this means is that the interval set here (eg. 5 seconds) is the rate at which timers are tested to see if they have fired. If you want timers to be accurate to the nearest second, then the timer granularity must be set at 1 second. If having a timer fire to the nearest 5 seconds is satisfactory for you, then set the granularity to 5 seconds. Setting a smaller granularity improves the accuracy of timers, but may slow the program down slightly, particularly on slower PCs.


Recommended value for modern PCs: 1 (or see below).


<b>Sub-second timers</b>

From version 3.61 onwards you can now set timers that fire in fractional seconds (eg. in 2.5 seconds).

To enable this, the 'interval' field on this dialog must be set to zero, which means 'the finest resolution currently supported'.

In the current version this is 1/10th of a second. Thus, timers will be checked every 10th of a second, if you put zero in the timer interval here.


dialog_name: IDD_IMMEDIATE
title: Immediate
label: IDD_IMMEDIATE
doc_name: scripting
command_name: Immediate
related_dialog: IDD_PREFS_P17
description:
This lets you test script commands in an "immediate" window - that is, anything you type is executed as soon as you click "Run".

This lets you test script snippets before using them in a larger script.

For example (in VBscript) just enter:

world.Note "Hello, world"

and click "run".

<b>Run</b>

Click this to execute the script.

<b>Close</b>

Closes the window. Any script in it is remembered for next time you open this window (in this session of MUSHclient, for this world).


dialog_name: IDD_PREFS_P17
title: Scripts
label: IDD_PREFS_P17
doc_name: scripting
command_name: ConfigureScripting
related_dialog: IDD_IMMEDIATE
description:
This screen is used to define parameters for scripting MUSHclient. Scripting allows you to create custom triggers, aliases and timers that react in ways limited only by your imagination.

Available script functions are documented under the Help menu -&gt; Functions List.

<b>Scripting Language:</b>

Choose between Vbscript (a cut-down version of Visual Basic), JavaScript (a cut-down version of the Java language), PerlScript, Python, Lua, TCL or PHPscript. If you are planning to use PerlScript, Python, TCL or PHPscript you will need to download the script engine (DLL) and possibly other files from their web site(s). 

Lua 5.1 is supplied as part of the MUSHclient download. It consists of an extra DLL (Dynamic Link Library) - lua5.1.dll.

The recommended language to use if you do not already have scripts is <b>Lua</b>. For one thing, Lua is automatically supplied with MUSHclient and is thus always available for scripts. Some extra functionality is available exclusively to Lua scripts.

If you install plugins they can also do scripting. The script language used in a plugin can be different from the one used by the "main world".


<b>Enable script</b>

This must be checked to enable the scripting engine.

<b>Active/not active</b>

If you see the word "(active)" next to "Enable script" it means the script engine is currently active.

If you see the words "(not active)" next to "Enable script" it means the script engine is <b>not</b> currently active.

If it possible for the script engine to be active even with "enable script" unchecked, if you have just unchecked it, because the disabling is done when you close the preferences dialog.

Similarly it is possible for the script engine to be inactive, even  with "enable script" checked, because the enabling is done when you close the preferences dialog. Also, the script file may have caused a compile error, which means that the script was not successfully activated.


<b>Script File:</b>

This is optional, however normally if you are using scripting you would specify a script filename. You would type this in using any editor capable of producing ordinary "text" files, for example, NotePad.

As a convention, a Vbscript file would have a suffix of ".VBS", a JavaScript file a suffix of ".JS", a PerlScript file a suffix of ".PL", a Python file a suffix of ".PYS", and a Lua file a suffix of ".LUA".

If you specify a script filename, and check "Enable script" then MUSHclient will attempt to process that file when you close the "world configuration" dialog box. If any errors are detected you will be notified. Note however that some errors (such as "type mismatch", or "wrong number of arguments") are only detected when individual script subroutines are executed, and thus will not appear at this stage.


<b>Browse...</b>

Click on the "browse" button to locate a script file by using the file browsing dialog box.

<b>New...</b>

Click on the "new" button to create a script file by using the file browsing dialog box. If you choose a file name and click OK, then a new, empty script file of that name will be created for you.


<b>Edit Script</b>

By clicking on this button, your script file is opened in your specified editor (the default editor is Notepad).

<b>Choose Editor...</b>

Click on this button to choose a different editor to edit your script files.

<b>Use inbuilt notepad to edit scripts</b>

If checked, MUSHclient's internal notepad is used to edit scripts.

<b>Warn if inactive</b>

If checked, you will get a warning in the output window if a trigger, timer or alias tries to call a script (in the script file) but it cannot, because scripting is disabled, the function is not available, or the script file had a parse error.

<b>Note errors</b>

If checked, errors in scripts will be displayed in the output window (using world.Note) rather than having a dialog-box pop up at an inconvenient time.

Be warned that if the error occurs in "send to script" for a trigger that is "omit from output" then the error message will also be omitted. If such a trigger does not seem to be working, you may want to uncheck this box temporarily to see if there was a script error.

<b>Note Colour:</b>

In the script language you can make "notes" which appear in the output window. You can choose which colour you want the notes to appear in. To make a note, you would say something like:

world.Note "Here is a note" 

in your script. The colour is chosen from the world's custom colours pallette. 

You can change the colour for notes inside a script by using various script functions, such as world.ColourNote.

<b>World Events</b>

You can put the names for subroutines (functions) that you want called for the various events below. The name must match the name of a function in your world's script file. For example, if you specify "OnWorldOpen" for the "open" event below, then your script should look like this (in Lua):

function OnWorldOpen ()
  Note ("World has been opened")
end -- function OnWorldOpen 


Alternatively, if the world event name starts with the "!" character, then the rest of the string is sent to "Execute" - that is, the MUSHclient command processor.

For example, under "Connect" you might have:  !/Sound ("ding.wav")

This would play a sound when you connect (if the script prefix was "/").

Alternatively, you might put the name of an alias there to handle doing multiple things upon connecting. For example:  !connection_alias

<b>Open:</b>

Called when the world file is opened (once per world).

<b>Connect:</b>

Called when the world connects to the MUD. You might use this to send initial commands needed after connection, or to enable/disable triggers etc.

<b>Get Focus:</b>

Called when the world gets the "focus". The focus is obtained when the particular world window becomes the active window (ie. the title bar changes to the active colour).

<b>Lose Focus:</b>

Called when the world loses the focus, as described above.

<b>Disconnect:</b>

Called when the world has been disconnected.

<b>Close:</b>

Called while the world is being closed.

<b>Save:</b>

Called just before the world file is being saved. You can use this event to save internal script variables to MUSHclient variables, so they are saved as well.

<b>MXP...</b>

Click to set extra script functions to be called when MXP is active.

<b>Register DLL</b>

If scripting is not working you can try clicking this to cause the script engine DLL to be "registered" with Windows. You should only need to do this once per PC. It is not necessary to do it for Lua, and is only implemented for VBscript, Jscript and PHP script.

<b>Recompile when script changes:</b>

When a script file changes MUSHclient may detect this (depending on the Operating System version). Select what behaviour you want when this happens:

You can set the scripts to automatically recompile when you edit and save the script file by setting this option to "always".

To ask whether ot not to recompile, set this option to "confirm".

To never recompile, set this option to "never".

<b>Script Prefix:</b>

You can enter one or more characters here which will act as a "script language" prefix. The recommended prefix is the "/" character. If you type the "script prefix" in the command window, then the rest of the command window (which can be multiple lines if you press Ctrl+Enter) is sent to the script engine. For example:

/ Note ("Hi there!")

would display a note in the output window.

An alternative way of entering small test scripts is to use the Immediate scripting window.


dialog_name: IDD_PREFS_P18
title: Variables configuration (list)
label: IDD_PREFS_P18
doc_name: variables
command_name: ConfigureVariables
related_dialog: IDD_EDIT_VARIABLE
description:
<b>Add...</b>

Click to add a variable. 

<b>Edit...</b>

Click to edit an existing variable. 

<b>Remove</b>

Click to remove one or more selected variables from the list. 

<b>Find...</b>

Click to find a variable based on its name or contents. 

<b>Find Next</b>

Click to repeat the next find (find another one that matches). 

<b>Load...</b>

Click to load variables from disk. 

<b>Save...</b>

Click to save selected variables to disk. 

<b>Copy</b>

Click to copy the selected variable(s) to the clipboard in XML format. 

<b>Paste</b>

Click to paste the clipboard into the variables list. The variables must be in XML format (such as produced by the Copy button). Only variables will be pasted, if there are other types on the clipboard. 

Copy and paste is intended to allow you to get/put variables onto the Forum, or exchange them between worlds or with other MUSHclient users.


<b>Filter by:</b>

Check to filter the visible items by the function "filter". Click on the button labelled "..." next to the "filter by" checkbox to enter the code for the scripted filter function. The filter function must be written in Lua and have a function named "filter" in the script, taking two arguments which are the name of the variable, and a table of values corresponding to the various settings for it. For example, to show only variables that start with "mxp_":

<code>
function filter (name, variable)
  return string.find (name, "^mxp_") ~= nil
end -- filter
</code>

You can use variable.contents to find out the contents if that variable if needed, and work out whether to show it or not. If the function returns the boolean value "false" then the item is not shown, otherwise it is shown in the list.

The filter script is saved in the world file, so you can use it again next time, however the filter flag is not remembered. You must explicitly enable it each time you want to filter the list.


dialog_name: IDD_EDIT_VARIABLE
title: Edit variable
label: IDD_EDIT_VARIABLE
doc_name: variables
related_dialog: IDD_PREFS_P18
description:
<b>Name</b>

Name of the variable.

The name must start with a letter (A-Z) and then be followed by letters, numbers, or the underscore character. (eg. MY_NAME_123)

<b>Contents:</b>

Contents of the variable. The variable can be of unlimited length (within reason) and may consist of multiple lines.

<b>Edit...</b>

Click to edit the variable contents in a larger window.


dialog_name: IDD_FIND
title: Find
label: IDD_FIND
command_name: Find
description:
This dialog box is a general "find things" dialog box used in various places.

<b>Find what:</b>

What to search for.

<b>Match case</b>

If checked, the "case" must match exactly (eg. "A" will not match "a").

<b>Regular expression</b>

If checked, the "find" text is a regular expression. See the regular expression documentation for more details.

<b>Direction</b>

Which direction to search ...

<b>Up</b>

If selected, find backwards.

<b>Down</b>

If selected, find forwards.

<b>Find</b>

Click to start the search.

<b>Cancel</b>

Click to cancel the find function.


Note that when finding text in the output buffer the find will find multiple occurrences of the search string, or regular expression, on the same line.

Otherwise, then only one "item" (eg. timer, trigger, alias) is returned per find or find-again operation.


dialog_name: IDD_PREFS_P19
title: Auto Say
label: IDD_PREFS_P19
command_name: ConfigureAutosay
description:
Auto Say is a handy feature that lets you have lengthy conversations with another character (in the same room or another one) without having to type "say", "page", "whisper" or whatever each time you want to say something.

When auto-say is active (there is a button on the toolbar to activate/deactivate it, or you can type Shift+Ctrl+A to toggle auto-say on or off) then everything you type automatically has the "auto-say" prefix prepended to it.

For example, if you set the "auto-say" text to "say " (note the trailing space), then just type something in and "say " will be put in front of it.

You can set up certain exclusions to allow you to still move around and do other commands whilst auto-say is active.


<b>Enable Auto Say</b>

If this is checked, auto-say is active.

Use:

SHIFT+CTRL+A

to toggle auto-say on or off whilst playing a game, or click on the "auto-say" button on the toolbar.

<b>Exclusions</b>

Some things can be excluded from auto-say, so you can still walk around and do things while auto-say is active.

MUSHclient automatically turns auto-say off temporarily if the command starts with the auto-say sequence. For example, if auto-say is set to "say" and you type:

say hello 

Then: "say hello" will be sent to the MUD, not "say say hello".

Also, using the numeric keypad to do things (eg. walk around) will bypass auto-say, so, for example, if you had keypad-8 programmed to send "north" and you hit it, then it would send "north", and not "say north".

<b>Exclude commands starting with special characters</b>

If this is checked then only lines starting with a letter or number (ie. A-Z, 0-9) are "auto-said". This means you can type things like "@teleport" without having to disable auto-say.

<b>Exclude macros</b>

If this is checked, then any command under the "macros" tab which is marked as "send now" or "replace", which matches the start of a line, is not auto-said. For example, if you have "examine" as a macro, then typing: "examine fred" will not be auto-said.

<b>Override prefix:</b>

You can type one or more characters here which, if they appear at the start of a line, disable auto-say for that line. For example, the default override prefix is "-", so if you typed:

-north

Then you would go north, not "say north".

<b>Auto Say text:</b>

Type here what you want to precede each "auto say" line. Remember to put in a trailing space, if that is what you want. For example, if you just had an auto-say text of "say", and then typed "hello", then "sayhello" would be sent to the world, probably causing an error. Therefore you should type in "say " (note the trailing space).

Suggested auto-say texts could be:

say
whisper person =
page person =
pose 
+newbie

<b>Send auto-say response to command interpreter (for aliases etc.)</b>

If checked, the assembled auto-say strings is re-sent to the command interpreter, and thus could include aliases, speedwalks etc. For instance, you might have the auto-say text as "#chatall ". Since "#chatall" would be an alias from the Chat plugin you want it to be re-evaluated. In this case you would check this option.


dialog_name: IDD_PREFS_P20
title: Printing
label: IDD_PREFS_P20
command_name: ConfigurePrinting
description:
If you print from your output screen to your printer you can configure how each colour is to appear. MUSHclient prints in black-and-white only, however you can specify that various colours can have different styles (eg. red might be shown as bold, and green as italic).

Use the checkboxes to select the printing style for each normal, and bold, colour combination.


dialog_name: IDD_REGEXP_PROBLEM
title: Problem parsing regular expression
label: IDD_REGEXP_PROBLEM
doc_name: regexp
description:
There has been a problem parsing the regular expression.

<b>Error</b>

This is the error message returned from the regular expression parser.

<b>The error occurred at column ...</b>

This is the column the error is at.

<b>Expression</b>

This box contains the regular expression with a line of hyphens and a carat (^) pointing to the exact column at which the error was detected.

<b>OK</b>

Click OK once you have read the message, and then correct the regular expression.


dialog_name: IDD_GLOBAL_PREFSP7
title: Global preferences - activity window
label: IDD_GLOBAL_PREFSP7
related_dialog: IDD_GLOBAL_PREFSP9
description:
<b>Open activity window at startup</b>

If checked, the activity window is automatically opened when MUSHclient starts up.

<b>Update activity window</b>

When to update the activity window ...

<b>On New Activity</b>

If selected, when new activity occurs.

<b>Periodically, every:</b>

If selected, every X seconds (where X is entered in the box).

<b>Both</b>

Both when new activity occurs, and every X seconds.

<b>Activity button bar style:</b>

Style for the activity button bar. Various colour combinations may be chosen here.


dialog_name: IDD_MISSING_ENTRY_POINTS
title: Missing script procedure names
label: IDD_MISSING_ENTRY_POINTS
doc_name: scripting
description:
This dialog shows which script routines were required by triggers/aliases/timers and other things (such as "world open") but were not found in your script file.

This to warn you that the named script routines will not be called.

We recommend that you either add the appropriate script routines to the script file, or remove the requirement to call them from the appropriate triggers/aliases etc.


dialog_name: IDD_INSERT_UNICODE
title: Insert Unicode Character
label: IDD_INSERT_UNICODE
related_dialog: IDD_DEBUG_INPUT
description:
Use this for inserting a single Unicode character as the appropriately converted UTF-8 sequences into the Debug Simulated World Input dialog.

<b>Character Code</b>

This is the code number of the Unicode character. It can be entered as decimal (0 to 2147483647) or hex (0 to 7FFFFFFF). You can look up the codes on an appropriate web site (or the Unicode 5 Standard book). For example, "Greek Small Letter MU" is 03BC.

<b>Hex</b>

Check to have the code entered interpreted as a hex number (this is the default, as this seems to be how Unicode codes are given). Otherwise it is interpreted as a decimal number.


dialog_name: IDD_PREFS_P21
title: Connecting
label: IDD_PREFS_P21
command_name: ConfigureNameAndPassword
related_dialog: IDD_PREFS_P4
description:
<b>Character name and password</b>

In order to automatically connect to your MUD, you can enter your character name and password below.

<b>Name:</b>

Your character's name.

<b>Password:</b>

Your character's password. If you leave it blank you will be prompted with a dialog box every time you connect to the world.

<b>Connect:</b>

Connect method:

* No auto-connect - character name and password are not sent.
* MUSH/MOO method - sends the command: CONNECT name password
* Diku style - sends: name (newline) password (newline)
* MXP - uses MXP tags to send the name and password when requested

<b>Connect Text. (Sent after connected):</b>

Something to send to the world immediately after connecting (eg. "WHO").

You can use %name% or %password% if you wish the name or password supplied above to be inserted. You can use this for unusual connection methods. For example, to do a MUSH-style connect using the "connect text" box you could enter:

connect %name% %password%


dialog_name: IDD_CREDITS
title: Credits
label: IDD_CREDITS
related_dialog: IDD_ABOUTBOX
description:
Shows credits for the many people and companies who have helped make MUSHclient the program it is today!


dialog_name: IDD_QUICK_CONNECT
title: Quick Connect
label: IDD_QUICK_CONNECT
doc_name: starting
command_name: QuickConnect
related_dialog: IDD_PREFS_P1
description:
This screen is for quickly connecting to a MUD. You merely need to enter:

<ul>
<li/>A world name
<li/>The TCP/IP address (or name) of that world
<li/>The port number
</ul>

This information is usually provided by MUD lists which are available from the Internet.

MUD lists can be found at:

<code>
http://www.gammon.com.au/links/muds.htm
</code>

<b>World name:</b>

The internal name (used to identify the MUD to you) - eg. "Realms of Despair"

<b>TCP/IP address:</b>

The IP address (name or dotted decimal number) of the MUD - eg. "games.org" or "66.51.106.87"

<b>Port Number:</b>

The port number for the MUD (you can find this from MUD lists). Often it is 4000 for Diku MUDs, or 4201 for MUSHes.


dialog_name: IDD_LINE_COUNT
title: Log game session
label: IDD_LINE_COUNT
doc_name: logging
command_name: LogSession
description:
This dialog is shown when you start logging your session.

<b>Include X lines from screen buffer in log file.</b>

You can log retrospectively. What this means is that you can decide to log *after* seeing some interesting messages. By entering a number in this box you can specify how many previously-received lines to log.

When you first start up logging, you will be prompted as to whether you want the last "n" lines included (where "n" is the number of lines already received from the MUD, with a maximum of 500,000). If you want only recent lines, you can replace the number with a smaller one (say, 20). Or if you only want to log future output, type a "0" to replace the number displayed.

The exact number of lines that can be recalled is set in the "Output" tab of the world configuration screen. The maximum it can be set to is 500,000 lines.

<i>What if more lines appear while I am reading this message?</i>

The line count is automatically adjusted to allow for more lines that appear while you are reading the dialog box (or this help message!). Say you wanted 20 lines to be retained from the display buffer, but another 15 appear while you are entering the number "20". The program will actually retain 35 lines so that the ones you originally wanted appear in the log file.

The exception is that if you enter zero ("0") for the line count, then zero lines from the output buffer are retained, no matter how many appear while you are looking at the dialog box.


<b>Comment to put in log file:</b>

This allows you to add a free-format comment to the start of the log file (eg. describing why you are logging this particular session).

<b>Log Output</b>

If checked, output from the MUD is logged.

<b>Log Commands</b>

If checked, commands you type are logged.

<b>Log Notes</b>

If checked, script "notes" are logged.

<b>Append to existing log file</b>

If checked, any existing log file of this name is appended to, rather than overwritten.

<b>Write world name to log file</b>

If checked, the world name, and the date and time, are written to the log file, as a record of what world you are logging, and when.


dialog_name: IDD_WELCOME1
title: Thanks for upgrading MUSHclient!
label: IDD_WELCOME1
description:
<b>Welcome to MUSHclient, version X</b>

This screen notifies you that you are using a different version of MUSHclient to before.

It only appears once per version change.


dialog_name: IDR_MAINFRAME
title: MUSHclient
label: IDR_MAINFRAME
doc_name: starting
related_dialog: IDD_QUICK_CONNECT
description:
<b>Welcome!</b>

Welcome to MUSHclient - the fast, easy-to-use MUD client program. We hope you enjoy using it.

<b>Getting Started</b>

Getting started with MUSHclient is easy. The fastest way to connect to a MUD is to use the Connection menu, and select Quick connect (SHIFT + CTRL + C).

Fill in the following fields:

<b>World name</b>

This is the name of the MUD. It is used to label the window for that MUD when you are connected. It can be anything you like, for example "Realms of Despair".

<b>TCP/IP address</b>

This is the address of the MUD. It can be expressed as a "dotted-decimal" number, or just the name of that MUD's server, for example "realmsofdespair.com", or "216.251.47.10". (Don't type the quotes).

<b>Port number</b>

This is the port that is used to connect to that MUD, for example, "4000".


When you click on OK you will be connected to the specified world, and you can start playing. To change various options, use the World Configuration dialogs (CTRL+G).


dialog_name: IDD_PREFS_P16
title: Timers
label: IDD_PREFS_P16
doc_name: timers
command_name: ConfigureTimers
related_dialog: IDD_EDIT_TIMER
description:
<b>Enable Timers</b>

If checked, all timers are enabled (active). 

<b>Override with default timers</b>

If checked, next time the world is loaded your timers are replaced with the default ones. See the help topic on "defaults" for more details. 

<b>Add...</b>

Click to add a timer. 

<b>Edit...</b>

Click to edit an existing timer.

<b>Remove</b>

Click to remove one or more selected timers from the list. 

<b>Find...</b>

Click to find a timer based on its contents. 

<b>Find Next</b>

Click to repeat the next find (find another one that matches). 

<b>Load...</b>

Click to load timers from disk. 

<b>Save...</b>

Click to save selected timers to disk. 

<b>Reset All Timers</b>

Click to reset all timers. This means that timers that fire after a certain interval will start counting again from zero.

<b>Copy</b>

Click to copy the selected timer(s) to the clipboard in XML format. 

<b>Paste</b>

Click to paste the clipboard into the timer list. The timers must be in XML format (such as produced by the Copy button). Only timers will be pasted, if there are other types on the clipboard. 

Copy and paste is intended to allow you to get/put timers onto the Forum, or exchange them between worlds or with other MUSHclient users.

<b>Tree View</b>

Check to show a "tree" view of the items. Leave unchecked to show a "list" view. In tree view only one item can be selected at once, however you can select an entire group for the purpose of copying the group to the clipboard, or deleting it.

In tree view items are sorted into groups. 

<b>Filter by:</b>

Check to filter the visible items by the function "filter". Click on the button labelled "..." next to the "filter by" checkbox to enter the code for the scripted filter function. The filter function must be written in Lua and have a function named "filter" in the script, taking two arguments which are the name (label) of the timer, and a table of values corresponding to the various settings for it. For example, to show only timers that do "send to script":

<code>
function filter (name, timer)
  return timer.send_to == sendto.script 
end -- filter
</code>

You can use the various values for this timer to work out whether or not you want this particular one to be shown in the list (for example, if it sends to script). If the function returns the boolean value "false" then the item is not shown, otherwise it is shown in the list.

The filter script is saved in the world file, so you can use it again next time, however the filter flag is not remembered. You must explicitly enable it each time you want to filter the list.

The various fields in the timer table are documented here:

<code>
http://www.gammon.com.au/forum/?id=7123
</code>

In addition, some fields calculated at runtime are:

<code>
"invocation_count"  // GetTimerInfo  (9)
"times_fired"       // GetTimerInfo  (10)
"when_fired"        // GetTimerInfo  (11) *
"temporary"         // GetTimerInfo  (14)
"included"          // GetTimerInfo  (18)
"script_valid"      // GetTimerInfo  (26)
</code>


dialog_name: IDD_TAB_COMPLETION_DEFAULTS_DL
title: Tab completion defaults
label: IDD_TAB_COMPLETION_DEFAULTS_DLG
description:
<b>Default Word List</b>

Words below will be checked for first when you press &lt;tab&gt; to complete a word in the command window. Enter each word with a space between them.

After that, MUSHclient will scan backwards through the output window text to find a match.

<b>Lines To Check</b>

Enter the number of lines to scan backwards in the output window. The more lines you have the slower it can be to find a match, and possibly the less relevant a match will be.

<b>Insert Space After Word</b>

If checked, a space will be inserted after the tab-completed word. This is handy if you want to put the completed word in the middle of a sentence.


dialog_name: IDD_GLOBAL_CHANGE
title: Global change
label: IDD_GLOBAL_CHANGE
command_name: InputGlobalChange
description:
This dialog lets you do a quick "change all" in the command window.

This is so you can replace, for instance, every linefeed with a "%R", if that is what you need.

The following special character sequences are recognised in the "find" or "replace" boxes:

\n - end of line
\t - tab character
\\- backslash character

<b>Find:</b>

What to search for (eg. \n )

<b>Replace with:</b>

What to replace it with (eg. %R)

<b>Change All</b>

Click to do the change.

<b>Cancel</b>

Click to not change.


dialog_name: IDD_PREFERENCES
title: Preferences
label: IDD_PREFERENCES
description:
This is the world's preference configuration screen.

Select an item from the tree-view.

Click on a "+" sign to expand a section of the preferences.

Use Ctrl+PgUp or Ctrl+PgDn to move to each preferences pane.


dialog_name: IDD_PREFS_P0
title: General
label: IDD_PREFS_P0
command_name: Preferences
description:
This is a "category-separator" page - click on the preferences topic in the tree view on the left, or press Ctrl+PgUP and Ctrl+PgDn to move to each topic.


dialog_name: IDD_RECALL
title: Recall
label: IDD_RECALL
doc_name: regexp
command_name: RecallText
description:
This is sort-of like a "batch find". It lets you scan the output window and quickly retrieve matching lines into a separate window. For example, you might recall each line starting with &lt;CHAT&gt;.

If text is currently selected in the output window, lines matching the selected text are recalled without this dialog box being displayed.

<b>Recall What:</b>

If you are not using regular expressions, simply recalls every line which has the "recall what" text in it (anywhere in the line).

If you are using regular expressions, recalls lines matching that expression.

<b>Match case</b>

If checked, the "case" must match exacly (eg. "cave" and "Cave" would be considered different words).

<b>Regular expression</b>

If checked, the "Recall what" text is processed as a regular expression. See "regular expressions" for more details.

For example:

^&lt;CHAT&gt;

This would match lines starting with &lt;CHAT&gt;.

<b>Examine X lines from end.</b>

You can specify how many lines to go back, in case you have thousands of lines, and only want to recall over the last 200 (say).

<b>Output</b>

If checked, examine lines marked as "output" (which arrived from the MUD).

<b>Commands</b>

If checked, examine lines marked as "commands" (which you typed).

<b>Notes</b>

If checked, examine lines marked as "notes" (which were done by scripts).

<b>Line Preamble:</b>

You can put a preamble in front of every line (eg. "%H:%M>") - this example would show the time each line was created.

<b>?</b>

Click the "?" button to see options for entering into the line preamble box.

<b>Find</b>

Click to commence the recall operation.


dialog_name: IDD_SEND_TO_ALL
title: Send to multiple worlds
label: IDD_SEND_TO_ALL
command_name: SendToAllWorlds
description:
The message you enter is sent to all selected worlds. This is a quick way of communicating with some or all worlds you are connected to (eg. "say see you tomorrow").

<b>Send to selected worlds:</b>

Select the worlds you want the message to be sent to by clicking, shift-clicking or ctrl-clicking.

<b>Select All</b>

Click to select all worlds.

<b>Select None</b>

Click to select no worlds.

<b>Echo in output window</b>

Check to have the message echoed in the output window of the selected worlds.

<b>Message</b>

Type your message here.


dialog_name: IDD_TEXT_ATTRIBUTES
title: Text attributes
label: IDD_TEXT_ATTRIBUTES
command_name: TextAttributes
description:
<b>Line info...</b>

Click to open a notepad window describing in great detail the text on the selected line (eg. Style runs, colours).

<b>The start of the current selection is:</b>

Use this dialog to see what type of text is under the selection in the output window.

<b>Letter:</b>

This is the letter at the start of the selection.

<b>Text colour:</b>

The colour of the text of the selected letter.

<b>Background colour:</b>

The colour of the background of the selected letter.

<b>Custom colour:</b>

If a custom colour, which one it is.

<b>Bold</b>

If checked, the character is in bold.

<b>Italic</b>

If checked, the character is in italic.

<b>Inverse</b>

If checked, the character is in inverse.

<b>The colour or style HAS been modified by a trigger.</b>

If you see this message, the colour has been modified by a trigger (ie. It is not the original colour).


dialog_name: IDD_SCRIPT_ERROR
title: Scripting Error
label: IDD_SCRIPT_ERROR
doc_name: scripting
related_dialog: IDD_PREFS_P17
description:
This dialog is shown if there is an error in the scripting engine.

<b>Copy Details</b>

Click to copy the error information to the Clipboard (so you can email it to someone or post the error on the forum).

<b>Error number:</b>

The decimal error number.

<b>Event:</b>

Where the error occurred (eg. Line and column)

<b>Raised by:</b>

Which world (and which plugin if applicable) caused this error message.

This field does not appear for script errors that are not related to any particular world (eg. dialog filters, spell checker, notepad find-and-replace).


<b>Description:</b>

A description of the error from the script engine.

<b>Called by:</b>

Where the script was called from (eg. Which trigger, alias etc.)

<b>Show errors in output window next time</b>

If you check this, future errors for this world will not be shown in this dialog box, but instead will be sent directly to the output window. To change this behaviour, see the world configuration, scripting configuration tab.


dialog_name: IDD_GENERATED_NAME
title: Name generator
label: IDD_GENERATED_NAME
command_name: GenerateCharacterName
description:
<b>Generated name:</b>

The randomly-generated name. Click on "try again" if you don't like it.

<b>Copy</b>

Copy the generated name to the Clipboard.

<b>Try again</b>

Generate another random name.

<b>Send to World</b>

Send the generated name straight to the MUD.

<b>Close</b>

Close this dialog.

<b>File name</b>

The current names file - which has rules for generating the name.

<b>(...)</b>

Click on the "..." button to browse for a different names rule file.


dialog_name: IDD_GLOBAL_PREFSP9
title: Global preferences - defaults
label: IDD_GLOBAL_PREFSP9
related_dialog: IDD_GLOBAL_PREFSP10
description:
You can define "default" (or machine-wide) settings for the following, which can override (replace) those set up in individual world files. The purpose of this is to allow you to easily set up preferred colours/triggers/aliases etc. and only have to amend them in one place to affect multiple worlds.

The settings that can be made default are:

<ul>
<li/>Colours
<li/>Triggers
<li/>Aliases
<li/>Macros
<li/>Timers
<li/>Command window font
<li/>Output window font
</ul>

To set up defaults to be shared across multiple worlds:

a) Open your favourite world, and then save as individual files your:

<ul>
<li/>Colours
<li/>Triggers
<li/>Aliases
<li/>Macros
<li/>Timers
</ul>

(there is a "save" button on each configuration screen to do this)

You do not need to do them all. For instance, if you only want to share colours, then only save the colours.

b) Use File -> Preferences -> Defaults (this dialog box) to select the files you saved in the above step

c) Also select your preferred input and output font.

d) For all worlds that are to share these saved files, open that world, and then using the appropriate configuration screen (eg. colours, triggers) check the box "override with default".

From then on, the *next* time you open that world, it will load the world, and then load (and thus overwrite) the settings you have checked as "override with default".

Also, any new worlds will use the default settings, thus new worlds will quickly take on your default characteristics.

Note that the defaults, when loaded, *overwrite* your existing settings, so that the existing triggers, colours etc. are *lost*. If you really want to keep the existing settings, then you should save the world file under a different name (thus preserving the original).

<b>Colours:</b>

Default colours file. Click "Browse" to browse for it.

<b>Triggers:</b>

Default triggers file. Click "Browse" to browse for it.

<b>Aliases:</b>

Default aliases file. Click "Browse" to browse for it.

<b>Macros:</b>

Default macros file. Click "Browse" to browse for it.

<b>Timers:</b>

Default timers file. Click "Browse" to browse for it.

<b>Output Font...</b>

Click to select default output window font.

<b>Input Font...</b>

Click to select default input (command window) font.


dialog_name: IDD_GOTO
title: Go to line
label: IDD_GOTO
command_name: GoToLine
description:
Use this to go directly to any line in the output window by line number.

The line is scrolled into view, if necessary, and selected to highlight it.

<b>Enter line number:</b>

The line number to go to.

If you want to remember this line for later use you can use the "bookmark" function.


dialog_name: IDD_GLOBAL_PREFSP10
title: Global preferences - notepad
label: IDD_GLOBAL_PREFSP10
related_dialog: IDD_GLOBAL_PREFSP1
description:
<b>Word Wrap</b>

If checked, notepad windows wrap at the window edge.

<b>Window colour</b>

Default colour for notepad windows. If both swatches are black, will default to black on white.


<b>Parenthesis matching preferences</b>

Below are the preferences for the "parenthesis matching" code ...


<b>Braces nest</b>


When checked braces can be nested (like in MUSH) so that the "current delimiter" for the end of the scan changes.

For example:

[  ( ] )  ]

In this case, with nested braces on, and starting at the left-hand side, the cursor will move to the far right-hand side.

With nested braces off, the cursor will move to the left of the middle square bracket, as the nested bracket "(" will not have any special significance.


<b>\ escapes next character</b>

When checked, you can "escape" the significance of the next character (including another "\") by preceding it with "\".

For example:


[  \]   ]


With "\ escapes next character" checked, the middle bracket is ignored.

<b>% escapes next character</b>

When checked, you can "escape" the significance of the next character (including another "%") by preceding it with "%". The behaviour in this case is identical to the " escapes next character" above. Check this for a MUSH which uses "%" as an escape character.

<b>' quotes a string</b>

When checked, code can include strings.

For example:


[  ']'   ]


With "  ' quotes a string" checked, the middle bracket is ignored.


<b>... with escape inside quotes</b>


When checked, quotes can have escaped quotes inside them.

For example:

'Press 'Enter' now'


In this example the word 'Enter' is considered part of the quoted string.

<b>" quotes a string</b>

When checked, code can include strings.

For example:


[  "]"   ]


With  ' " quotes a string' checked, the middle bracket is ignored.


<b>... with escape inside quotes</b>

When checked, quotes can have escaped quotes inside them.

For example:

"Press "Enter" now"


In this example the word "Enter" is considered part of the quoted string.


<b>Quote string:</b>

String to use when quoting text.


dialog_name: IDD_CHOOSE_NOTEPAD
title: Choose notepad window
label: IDD_CHOOSE_NOTEPAD
doc_name: notepad
command_name: NotesWorkArea
description:
This dialog appears if you choose "Edit ... Notepad" and the world already has related notepad windows.

<b>New</b>

Create a new notepad window.

<b>Open existing</b>

Use the selected existing notepad window.

<b>Cancel</b>

Do not open any notepad window.


dialog_name: IDD_WINSOCK_INFO
title: Windows Sockets information
label: IDD_WINSOCK_INFO
doc_name: info
command_name: WindowsSocketInformation
description:
<b>Version:</b>

The version of WinSock (Windows Socket Library) in use.

<b>High version:</b>

The highest version supported by the WinSock DLL.

<b>Description:</b>

Description of the version.

<b>Status:</b>

DLL status.

<b>Max sockets:</b>

Maximum sockets supported/

<b>Host name:</b>

Name of this PC.

<b>Our address(es):</b>

The IP address(es) of this PC.


dialog_name: IDD_MAPPER
title: Mapper
label: IDD_MAPPER
doc_name: mapper
command_name: Mapper
related_dialog: IDD_MAP_MOVE
description:
The auto-mapper allows you to remember which directions you have walked to make it easy to retrace your steps next time, or to reverse your route and go back.

<b>Enabled</b>

If checked, the mapper is enabled (active).

<b>Special Move...</b>

Click to make a special move that the mapper will not automatically recognise (such as "teleport", "open gate", "open door").

<b>Current route:</b>

Shows the currently-recorded route.

<b>Reverse route:</b>

Shows the reverse of the current route.

<b>Failure message:</b>

Enter a message here that you receive from the MUD to show you could not go the way you just attempted to go.

eg. 
You type "north"
MUD replies "Alas, you cannot go that way."

If you might receive multiple messages you should make a "regular expression" message, that lists alternatives. You can use the "|" symbol to do that. For example:

(You cannot go (north|south|east|west).)|(The door is locked)

<b>Regular Expression</b>

If checked, the failure message is a regular expression.

<b>Remove All ...</b>

Click to remove all directions from the current auto-map sequence.

<b>Remove Last</b>

Click to remove the last directions from the current auto-map sequence. You might do this if your last attempt to walk failed, but the failure was not detected by the failure message.

<b>Take Reverse Route</b>

Click to immediately speed-walk the directions shown in the "reverse route" box. You might do this if you had walked into a dangerous situation and quickly wished to backtrack.

<b>Make Alias ...</b>

Make an alias from the current auto-map route.

<b>Make Reverse Alias ...</b>

Make an alias from the reverse of the current auto-map route.

<b>Remove Backtracks</b>

If checked, backtracks are removed from mapping sequence, if unchecked they are left there. A backtrack is defined as going one direction, immediately followed by its "opposite". For example, north followed by south. The intention here is that if you are walking along a street, say, and poppping into shops, trying to find the right one, the auto-map sequence won't be filled up with a lot of "change of mind" directions. eg.

Without backtracks removed:

N E W N E W N E W N E

With backtracks removed:

4N E

<b>Convert to Regular Expression</b>

Converts the failure message from a standard message to a regular expression.

<b>Edit Failure Message</b>

Opens a dialog box to make editing the failure message easier.


dialog_name: IDD_MAP_MOVE
title: Special Map Movement
label: IDD_MAP_MOVE
doc_name: mapper
command_name: DoMapperSpecial
related_dialog: IDD_MAP_COMMENT
description:
This lets you add special movement commands to the automapper sequence.

Special commands are those not automatically recognised by MUSHclient as commands that move you somewhere.

The standard commands are:

n (north), s (south), e (east), w (west), ne, se, nw, sw, u (up) and d (down)

The directions in brackets are synomyms - either may be used.

Any other "movement" command must be entered via this dialog, or the mapper will not record it. 

MUSHclient generates a speedwalk string like this:

(forwards/reverse) 

This is consistent with the speedwalk syntax used when doing normal speedwalking. The characters before the "/" are the forwards direction, the characters after the "/" are the reverse direction.


<b>Action:</b>

Enter the "forwards" action - the one you want to take right now.

For example:

@teleport 1234
unlock west
use key
go portal
recall
mount horse
enter
leave
board boat

<b>Reverse:</b>

You can also enter the "reverse" command, which is what you need to do when going back the way you came.


@teleport 3421
lock east
go portal
recall
dismount horse
leave
exit
go shore

<b>Send to MUD</b>

If checked, the forwards command is sent to the MUD. This is the default behaviour, so that the command is recorded (in the mapper) and done immediately, so that you see the effects of it.

If, for some reason, you want to add commands to the mapping sequence, but not actually send them to the MUD, then uncheck this.


dialog_name: IDD_EDIT
title: Edit
label: IDD_EDIT
description:
General-purpose dialog for editing text (like trigger/alias match/send text).

This is used for single-line input.

<b>-&gt;</b>

This button is visible if you are editing a regular expression. It invokes a menu of helpful regular expression "insertions" that you can choose. For example, if you want to match on a letter you can click on this button, then choose Character Class -&gt; Letter, and the appropriate regular expression will be inserted at the cursor position.

Also, the final entry "Help..." in the menu invokes the Regular Expression help page.


dialog_name: IDD_ASCII_ART
title: ASCII Art
label: IDD_ASCII_ART
command_name: ASCIIart
description:
This lets you generate large "text" letters using FIGLET - Frank, Ian and Glenn's LETters. FIGlet was written by Ian Chai, Glenn Gilford Chappell, John Cowan and Paul Burton, and is used with permission.

<b>Text:</b>

The text to be rendered in large letters.

<b>Layout:</b>

Type of spacing.

<b>Font:</b>

Font to use - various font files are supplied with MUSHclient, others are available over the Internet.

<b>Browse...</b>

Click to browse for a font file.

<b>Insert</b>

Click to insert the rendered text into your notepad document.

<b>Cancel</b>


dialog_name: IDD_COMMAND_OPTIONS
title: Keyboard preferences
label: IDD_COMMAND_OPTIONS
related_dialog: IDD_PREFS_P9
description:
This lets you set various other options related to entering commands.

<b>Double-click Pastes Word</b>

If checked, if you double-click a word in the output window, it is immediately copied into the command window (however not using the Windows clipboard).

<b>Double-click Sends Word</b>

If checked, if you double-click a word in the output window, it is immediately sent to the the world. This would be handy for sending a command you see on the screen (eg. in help text).

<b>Escape Deletes Typing</b>

If checked, pressing the Esc key deletes what you have entered in the command window.

<b>Save Deleted Command</b>

If checked, if you delete something by pressing Esc it is saved in the Command History - this is in case you accidentally delete a long command.

<b>Confirm Before Replacing Typing</b>

If checked, before you replace something you have typed (eg. by using the arrow keys), you are asked to confirm you want to get rid of the current contents of the command window.

<b>Arrow Keys Wrap History</b>

If checked, if you are using the arrow keys to traverse the history buffer, and you reach the end of it, then you "wrap around" and go back to the other end.

<b>Arrow Keys Traverse History</b>

If checked, pressing an arrow key (up or down arrow) moves you up or down through the command history. If unchecked, the arrow keys merely move you around inside the current command in the command window.

<b>Arrow Key Recalls Partial Command</b>

If checked, and if "Arrow Keys Traverse History" is checked, and you type a partial command (eg. "eat") and then press up-arrow, then any command matching that partial command (eg. "eat meat") will be presented to you, skipping any commands that do not match.

<b>Alt+Arrow Key Recalls Partial Command</b>

If checked, and if "Arrow Keys Traverse History" is checked, and you type a partial command (eg. "eat") and then press Alt+up-arrow, then any command matching that partial command (eg. "eat meat") will be presented to you, skipping any commands that do not match.

<b>Compatibility</b>

The next options are for compatibility with other clients.

<b>Ctrl+Z Goes To End Of Output Window</b>

If checked, pressig Ctrl+Z takes you to the bottom of the output window.

<b>Ctrl+P Recalls Previous Command</b>

If checked, pressing Ctrl+P recalls the previous command.

<b>Ctrl+N Recalls Next Command</b>

If checked, pressing Ctrl+N recalls the next command.


dialog_name: IDD_MXP_SCRIPTS
title: MXP script routines
label: IDD_MXP_SCRIPTS
doc_name: scripting
related_dialog: IDD_PREFS_P17
description:
This dialog specifies the name of the script routines that are to be called if MXP is active.

<b>Startup:</b>

Called when MXP starts up.

eg.

<code>
sub OnMXPStartup
  Note "MXP starting up"
end sub
</code>

<b>Shutdown:</b>

Called when MXP closes down.

eg.

<code>
sub OnMXPShutdown
  Note "MXP closing down"
end sub
</code>

<b>Opening tag:</b>

Called for an opening tag.

This should be define as a function that returns a number.

If the value (a number) is not zero, then the tag will not be acted on. This lets you customise the way MUSHclient reactions to MXP/Pueblo tags. For example, you might want to omit tags that change the font color, or tags that underline text. See below for an example.

It is called in two places:

a) For the actual tag which appears in the MUD output; and
b) If this tag is a server-defined tag (using &lt;!ELEMENT&gt;) then for each of the &quot;built-in&quot; tags that the server-defined tag calls.

For example, if you had this definition:

&lt;!ELEMENT foo &quot;&lt;b&gt;&lt;i&gt;&quot; &gt;

And later on the MUD sent:

&lt;foo&gt;Some text&lt;/foo&gt;

The opening &quot;&lt;foo&gt;&quot; would cause the &quot;MXP start tag&quot; routines to be called for the following *three* tags:

i) foo
ii) b
iii) i

In other words, once for the actual tag sent (&lt;foo&gt;), and once each for the tags that are called *by* &lt;foo&gt;.

If the routine for &quot;foo&quot; returned true, then &quot;foo&quot; is cancelled and the following text is not set to italic, nor bold.

However if &quot;foo&quot; returns false, but &quot;b&quot; returns true and &quot;i&quot; returns false, then the text is merely made italic.

Here is an example of how you might write such a function:

<code>
function OnMXPStartTag (name, args, mylist)
if name = &quot;foo&quot; then OnMXPStartTag = false ' allow &lt;foo&gt;
if name = &quot;b&quot; then OnMXPStartTag = true ' disallow &lt;b&gt;
if name = &quot;i&quot; then OnMXPStartTag = false ' allow &lt;i&gt;
end function
</code>

Note that if you cancel a tag sent by the server, then you will probably get a &quot;closing tag with no opening tag&quot; warning (warning number 5005). You might want to suppress that if it gets annoying above for how to do that.

<b>Closing tag:</b>

Called for a closing tag.

It is passed two arguments - the name of the tag, and the "text" which is the data that appeared between the opening and closing tags.

<code>
sub OnMXPEndTag (name, text)

  world.AppendToNotepad "MXP", _
       "Closing tag: " + name + vbCRLF
  world.AppendToNotepad "MXP", _
       "Text: " + text + vbCRLF
end sub
</code>

<b>Set variable:</b>

This is called when a variable is set by MXP. You are passed two arguments, the variable name, and its new contents.

<code>
sub OnMXPvariable (name, contents)
  world.note "Var " + name + " set to " + contents
end sub
</code>

<b>Error:</b>

A script routine to be called on an MXP error.

If the value (a number) is not zero, then the error message will not be displayed in the message window. This lets you fine-tune the messages that appear there - for example, omitting errors or warnings that you are not interested in. Here is an example:

eg.

<code>
function OnMXPError (level, number, line, message)
  If number = 20001 then OnMXPError = true
end function
</code>


dialog_name: IDD_DEBUG_INPUT
title: Debug simulated world input
label: IDD_DEBUG_INPUT
command_name: DebugWorldInput
related_dialog: IDD_INSERT_UNICODE
description:
Use this for debugging things like triggers. You can enter text here and MUSHclient will think it has arrived from the world. You can imbed hex codes (like colour codes) by using backslashes.

<b>Specials</b>

To simplify entering special codes (like bold text, red background, MXP codes and so on) you can select them from the combo-box, and then click the "Insert" button to have the selected codes pasted at the current selection point.

<b>Insert special</b>

Click to insert the selected special codes (shown in hex in the adjacent combo-box) at the insertion point in the main text box.

<b>Insert Unicode</b>

Click to insert a Unicode character code (eg. 060C) as the equivalent UTF-8 codes. This is for simulating Unicode (UTF-8) input arriving from the MUD. Depending on the code entered up to 6 bytes (hex sequences preceded by a backslash) may be entered into the input window.


<b>Text to simulate arriving from the world:</b>

This is the text that is processed by MUSHclient as if it had been received from the current world.


dialog_name: IDD_COLOUR_PICKER
title: Colour picker
label: IDD_COLOUR_PICKER
doc_name: utils
command_name: ColourPicker
related_dialog: IDD_PREFS_P5
description:
This dialog box provides a handy colour picker, to help choose colours for triggers, scripting, MXP programming, and generally throughout the program.

<b>Colour list</b>

This shows all of the internal colours, sorted into various sequences (controlled by the Sort combo-box). The default is Hue, which groups related colours (eg. the reds come together).

Underneath that is the currently-selected colour's name, which you can click on to copy it to the clipboard, and close the colour picker dialog box. If this box is blank, then the current colour does not have a matching name.

Select a colour in the list by clicking on the colour name or the colour swatch.

<b>Colour buttons</b>

If you click on any of the buttons mentioned below, it will copy the value to the clipboard, and then close the colour picker. This lets you choose a colour, and have it copied to the clipboard in the format of your choice, in one click.

<b>MXP:</b>

This is the selected colour code in MXP/HTML format (eg. for use in an MXP-enabled MUD, or on a web page). eg. #E9967A

<b>VB:</b>

This is the selected colour code in Visual Basic hex format (eg. for use in a VBscript program).  eg. &amp;h7A96E9

<b>JScript:</b>

This is the selected colour code in C format (eg. for use in a C program, Perlscript or Jscript). eg. 0x7A96E9

<b>Lua:</b>

This is the selected colour code as a straight decimal number (eg. for use in a Lua program, or any program that does not support hex codes). eg. 8034025

<b>Colour sliders</b>

The three colour sliders (red/green/blue) can be moved by clicking and dragging, which will change the component of the selected colour.

Also, once the slider is selected you can use the arrow keys to increase/decrease the component by one. Pressing PageUp or PageDown to increase/decrease the component by ten.

As you move the sliders the colour swatch will be updated to show the new colour. Also the colour codes in the various windows will also be updated. If the new colour matches a known colour name that will appear in the "Name" box.

<b>Red:</b>

The red component of the selected colour, in the range 0 to 255.

<b>Green:</b>

The green component of the selected colour, in the range 0 to 255.

<b>Blue:</b>

The blue component of the selected colour, in the range 0 to 255.

<b>Hue:</b>

The hue component of the selected colour.

<b>Saturation:</b>

The saturation component of the selected colour.

<b>Luminance:</b>

The saturation component of the selected colour.

<b>Sort:</b>

The sequence for sorting the colours in the colour list.

<b>Colour swatch</b>

The colour swatch shows the currently-selected colour.

Click on it to open the Windows colour picker. You can use the Windows colour picker to adjust the luminance (with the slider bar), the saturation (by clicking further up or down in the colour window), or the hue (by clicking further left or right in the colour window).

<b>OK</b>

Select the colour of your choice, and close the dialog box (this is the default action if you press Enter).

<b>Random</b>

Change the colour to one chosen at random.

<b>Other colour...</b>

Open the standard Windows colour picker for further colour selection. As described above you can use this to change the luminance, saturation and hue of the selected colour.

<b>Paste</b>

If there is a valid MXP/HTML/VB/C/Lua colour on the clipboard, this button will be active. Clicking it will paste the colour code into the window, and the various boxes will adjust accordingly.

<b>Close</b>

Close the colour picker without selecting a colour. This is the action that occurs if you press Escape.


dialog_name: IDD_PREFS_P22
title: MXP / Pueblo
label: IDD_PREFS_P22
doc_name: mxp
command_name: ConfigureMxpPueblo
description:
<b>MXP active/inactive</b>

Shows whether MXP is active or not at present.

<b>Use MXP/Pueblo:</b>

Select when to switch into MXP mode. Choices are:

* When the MUD commands - the preferred choice.
* When the MUD queries if you support MXP or not.
* Always on - usually only use this for testing MXP
* Always off - used to inhibit MXP.

<b>Detect Pueblo initiation string</b>

If checked switch into Pueblo mode when one of the following strings arrives:

"This world is Pueblo 1.0 Enhanced"
"This world is Pueblo 1.10 enhanced."

<b>MXP debug level:</b>

Select level of MXP errors to display. Choices are:

* None - no errors or warnings are shown
* Errors - major errors in MXP tags are shown (in a separate text window)
* Warnings - shows doubtful MXP tags
* Information - shows some pure information messages (eg. when starting up)
* The lot - shows every tag as it arrives

Each level includes the previous level (eg. selecting warnings will also show errors).

<b>Hyperlinks</b>

Customise format for MXP hyperlinks.

<b>Custom link colour:</b>

Click on the colour swatch to choose the colour for MXP hyperlinks.

<b>Use custom link colour</b>

If checked, use the custom link colour.

<b>MUD can change link colour</b>

If checked, let the MUD override the custom link colour if it wants.

<b>Underline hyperlinks</b>

If checked, hyperlinks are underlined.

<b>MUD can remove underline</b>

If checked, the MUD can remove the underline from hyperlinks.

<b>Save hyperlink mouse clicks in history</b>

If checked, if you click a hyperlink, the hyperlinked text is entered into the command history (eg. if the hyperlink sends "north" then "north" is entered in the command history).

<b>Echo hyperlink mouse clicks in output</b>

If checked, if you click a hyperlink, the hyperlinked text is echoed in the output window.

<b>Ignore colour changes</b>

If checked, ignore attempts by the MUD to change the text/background colour, except through ANSI sequences.

<b>Send AFK response</b>

If checked, respone to the MXP "afk" tag.

<b>MUD can change some options</b>

If checked, the MUD can configure some of the client options itself (eg. allowing itself to change hyperlink colours).

<b>Reset tags</b>

CLick to reset outstanding tags. You might do this if the MUD had somehow gone into underline mode, and you had pages of underlined text. Clicking "reset" will set the text back to normal.


dialog_name: IDD_IMPORT_XML
title: Import
label: IDD_IMPORT_XML
command_name: Import
related_dialog: IDD_PLUGINS
description:
<b>Load / View Plugins ...</b>

Click this button to view the Plugins configuration dialog. This is used to install or remove plugins. You can also access this dialog directly from the File menu -&gt; Plugins.

<b>Import other XML data for:</b>

You can import MUSHclient XML configuration into the current world using this. For instance, you might import some triggers, aliases and timers, which you had saved from another world, or which you obtained in an email or from the MUSHclient Forum.

<b>Import from:</b>

Select where to import the XML from ...

<b>File ...</b>

Click to choose a file on disk.

<b>Clipboard</b>

Click to import directly from the Clipboard. This option will be dimmed if MUSHclient does not detect valid XML commands on the Clipboard.


<b>Import the following:</b>

Check the checkboxes to indicate what you want imported. What this does is narrow down the importing to the selected items. For example, you might only want to import triggers, even though the file or clipboard contains aliases as well.

<b>General world configuration</b>

If checked, general world configuration (like character name, IP address etc.) will be imported.

<b>Triggers</b>

If checked, triggers will be imported.

<b>Aliases</b>

If checked, aliases will be imported.

<b>Timers</b>

If checked, timers will be imported.

<b>Macros</b>

If checked, macros will be imported.

<b>Variables</b>

If checked, variables will be imported.

<b>Colours</b>

If checked, colours will be imported.

<b>Numeric keypad</b>

If checked, numeric keypad assignments will be imported.

<b>Printing configuration</b>

If checked, printing configuration will be imported.

<b>Close</b>

Close this dialog box once you are finished importing things or installing plugins.


dialog_name: IDD_PLUGINS
title: Plugins
label: IDD_PLUGINS
doc_name: plugins
command_name: Plugins
description:
<b>Plugins list</b>

This list shows the active plugins for this world. You can click on one or more of them to take an action on it (such as removing it).

<b>Add...</b>

Click to add a new plugin.

<b>Remove</b>

Click to remove the selected plugin(s).

<b>ReInstall</b>

Click to cause the plugin to be removed and re-installed. You might do this after upgrading the plugin file.

<b>Show Info</b>

Click to show the plugin's purpose (description) in a separate editor window. You will need to then close this dialog box to read the description.

<b>Enable</b>

Click to enable all selected plugins. If the plugin was previously disabled, the script function OnPluginEnable (if it exists) in the plugin will be called.

<b>Disable</b>

Click to disable all selected plugins. Disabled plugins no longer react to events (like triggers firing, aliases, timers, connect/disconnect events). If the plugin was previously enabled, the script function OnPluginDisable (if it exists) in the plugin will be called.


<b>Edit</b>

Click to edit the plugin file. You can also double-click an item in the plugin list to edit its file.

You can also RIGHT-double-click a plugin name in the plugin list to open its "state" file, if any.


dialog_name: IDD_MAP_COMMENT
title: Map Comment
label: IDD_MAP_COMMENT
doc_name: mapper
command_name: DoMapperComment
related_dialog: IDD_MAP_MOVE
description:
This dialog lets you add a special comment to the auto-mapper sequence. You can use this for free-form notes about what the mapper is doing now (eg. "Outside city of shadows")


dialog_name: IDD_CHAT_LIST
title: Chat sessions
label: IDD_CHAT_LIST
doc_name: chat
command_name: ChatSessions
related_dialog: IDD_CHAT_DETAILS
description:
Lists current chat sessions. The list will automatically refresh if new sessions are started, or old ones dropped, while you are looking at it.

<b>Status</b>

Shows whether or not you are accepting calls (inwards).

<b>New Call...</b>

Click to place a new call (outwards).


<b>Close</b>

Click to close this window.

<b>Edit...</b>

Click to edit the selected call (change options etc.).

<b>Ping</b>

Click to ping the selected call(s).

<b>Snoop</b>

Click to snoop the selected call(s).

<b>Send File...</b>

Click to send a file to the selected call.

<b>Hang Up</b>

Click to hang up the selected call(s).

<b>Chat...</b>

Click to send a chat message to the selected call(s).

<b>Emote...</b>

Click to emote a chat message to the selected call(s).

<b>Peek Connections</b>

Click to peek the connections of the selected call(s).

<b>Request Connections</b>

Click to request the connections of the selected call(s). (Requesting a connection means you try to connect to the people they are connected to).

<b>Chat All...</b>

Click to chat to all connected calls.

<b>Emote All...</b>

Click to emote to all connected calls.


dialog_name: IDD_CHAT_CALL
title: Call chat user
label: IDD_CHAT_CALL
doc_name: chat
command_name: ChatSessions
related_dialog: IDD_CHAT_LIST
description:
Call another PC using the chat system.

<b>TCP/IP Address:</b>

Their address, either as a dotted decimal number (eg. 123.456.78.9) or a name, eg. theirdomain.com.

<b>Port:</b>

The port they are listening for calls on. Default is 4050.

<b>Use zChat protocol</b>

If checked, use the zChat protocol. If unchecked, use the MudMaster protocol.

If you are calling a zChat user, you may have more luck if checking this.


dialog_name: IDD_CHAT_DETAILS
title: Chat details
label: IDD_CHAT_DETAILS
doc_name: chat
related_dialog: IDD_CHAT_LIST
description:
<b>Name:</b>

This player's chat name.

<b>Group:</b>

You can place them into a group of your choice by entering a group name.

<b>Actual IP address:</b>

The TCP/IP address they connected from.

<b>Call them on:</b>

The TCP/IP address they suggest you call them on. You can click on this field and copy it.

<b>Port:</b>

The port number they suggest you call them on. You can click on this field and copy it.

<b>ID:</b>

The chat ID assigned by MUSHclient for this chat session.

<b>Client:</b>

The client they are using to connect to you.

<b>Incoming</b>

Checked if an incoming call.

<b>Can snoop</b>

Check to allow them to snoop you.

<b>Can send us files</b>

Check to allow them to send you files.

<b>Private</b>

Check to mark them as private, so other people cannot see they are connected to you.

<b>Ignore</b>

Check to ignore them.

<b>Can send us commands</b>

Check to allow them to send you commands.


dialog_name: IDD_PROXY_PASSWORD
title: Proxy server username and password
label: IDD_PROXY_PASSWORD
description:
If you connect via a proxy server you can optionally enter the logon name and password for the proxy server.

<b>Proxy Server Logon Name:</b>

Proxy server logon name.

<b>Proxy Server Password:</b>

Proxy server password.


dialog_name: IDD_PLUGINWIZARDPAGE1
title: Plugin wizard - Name and Purpose
label: IDD_PLUGINWIZARDPAGE1
doc_name: plugins
command_name: PluginWizard
related_dialog: IDD_PLUGINWIZARDPAGE2
description:
<b>Name:</b>

Name of this plugin - between 1 and 32 characters.

<b>Purpose:</b>

Short description - up to 100 characters.

<b>Author:</b>

Name of author - up to 32 characters.

<b>Requires:</b>

Which version of MUSHclient is required to run it. The earlier the better (so that people do not need to upgrade unnecessarily), however if your plugin uses script commands, or other features that only appeared in a particular version, that is the version number you should put here.

<b>Date Written:</b>

Date written - automatically generated.

<b>Version:</b>

Plugin version - defaults to 1.

<b>ID:</b>

Unique plugin ID - automatically generated.

<b>Warning</b>

Once you click the "Create" button and any triggers/aliases/timers/variables which you selected (in the other configuration screens) will be REMOVED from your world file and placed in the plugin.

The purpose of this is that the relevant triggers etc. should be moved from the "main" world file to the plugin file, otherwise you would have two lots of them when you tested the plugin, quite possibly causing a lot of confusion. However these changes will not actually occur until you save the world file.

<b>Create ...</b>

Click to write the plugin to disk as a separate file. 

Warning - if you click "create" and then cancel the file selection dialog, you will not be returned to the plugin wizard, so any selections/entries you made will need to be redone.


dialog_name: IDD_PLUGINWIZARDPAGE2
title: Plugin wizard - Description
label: IDD_PLUGINWIZARDPAGE2
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE3
description:
<b>Description</b>

Enter a description of what the plugin does (can be lengthy). It is stored in the plugin as "help" for the plugin user.

<b>Edit...</b>

Click to edit the description in a larger window.

<b>Generate 'Help' Alias</b>

If checked, the plugin will include a "help" alias which will show the description text.

<b>Name:</b>

The name for the help alias.


dialog_name: IDD_PLUGINWIZARDPAGE3
title: Plugin wizard - Triggers
label: IDD_PLUGINWIZARDPAGE3
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE4
description:
<b>Select the triggers to be moved from this world to the plugin.</b>

Click to select (use Ctrl+click or Shift+click to select multiple items) the triggers that are to appear in the plugin.

<b>Select All</b>

Click to select all in the list.

<b>Select None</b>

Click to select none in the list.


dialog_name: IDD_PLUGINWIZARDPAGE4
title: Plugin wizard - Aliases
label: IDD_PLUGINWIZARDPAGE4
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE5
description:
<b>Select the aliases to be moved from this world to the plugin.</b>

Click to select (use Ctrl+click or Shift+click to select multiple items) the aliases that are to appear in the plugin.

<b>Select All</b>

Click to select all in the list.

<b>Select None</b>

Click to select none in the list.


dialog_name: IDD_PLUGINWIZARDPAGE5
title: Plugin wizard - Timers
label: IDD_PLUGINWIZARDPAGE5
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE6
description:
<b>Select the timers to be moved from this world to the plugin.</b>

Click to select (use Ctrl+click or Shift+click to select multiple items) the timers that are to appear in the plugin.

<b>Select All</b>

Click to select all in the list.

<b>Select None</b>

Click to select none in the list.


dialog_name: IDD_PLUGINWIZARDPAGE6
title: Plugin wizard - Variables
label: IDD_PLUGINWIZARDPAGE6
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE7
description:
<b>Select the variables to be moved from this world to the plugin.</b>

Click to select (use Ctrl+click or Shift+click to select multiple items) the variables that are to appear in the plugin.

<b>Select All</b>

Click to select all in the list.

<b>Select None</b>

Click to select none in the list.

<b>Retain State (Remember Variables)</b>

If checked, the plugin will be set to "retain state". This means that variables used in the plugin will be remembered on a per world/per plugin basis.


dialog_name: IDD_PLUGINWIZARDPAGE7
title: Plugin wizard - Script
label: IDD_PLUGINWIZARDPAGE7
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE8
description:
<b>Language:</b>

Language to be used in the plugin.

<b>Include Standard Constants</b>

If checked, an "include" line will be generated to include the appropriate "standard MUSHclient constants" for the selected language. These are files that ship with MUSHclient, that contain constant names for error messages, and flags for things like AddTrigger.

<b>Script text</b>

This is the script (copied from your script file) that will appear in the plugin.

If only part of the script is relevant to the plugin you should remove the unwanted parts before creating the plugin.

<b>Edit...</b>

Click to edit the script in a larger window.


dialog_name: IDD_PLUGINWIZARDPAGE8
title: Plugin wizard - Comments
label: IDD_PLUGINWIZARDPAGE8
doc_name: plugins
related_dialog: IDD_PLUGINWIZARDPAGE1
description:
<b>Comments</b>

The comments in the comments box will appear inside the plugin as XML comments. They are intended for notes to the plugin developer, or for people who may want to modify the plugin. They do not appear as part of the plugin "help" text.

Because of XML rules, the comments may not contain the character sequence "--" (two hyphens in a row).

If you want to use hyphens (to make a line for instance), use hyphen-space-hyphen (eg. - - - -).

<b>Edit...</b>

Click to edit the comments in a large window.


dialog_name: IDD_EDIT_MULTILINE
title: Multi-line Edit
label: IDD_EDIT_MULTILINE
related_dialog: IDD_FUNCTION_LIST
description:
General-purpose dialog for editing text (like trigger/alias match/send text).

This is used for multi-line input.

<b>Functions ...</b>

If the dialog is being used for editing a script a "Functions..." box will be present. Clicking this will show a help dialog box listing all MUSHclient script functions.

If a word is selected, or the cursor is on a word in the multi-line edit dialog, then that word will be used as the filter for the help dialog. For example, position the cursor inside "AddTrigger" and click the "Functions" button.

<b>Complete ...</b>

If the dialog is being used for editing a script a "Complete..." box will be present. Clicking this will invoke a list box with all function names that start with the selected word (or the word adjacent to the cursor). You can choose one from the list and press (Enter) to accept the function name, or (Esc) to leave the text unchanged.

<b>Go To Line ...</b>

If the dialog is being used for editing a script a "Go To Line ..." box will be present. This lets you jump to a line in the dialog by line number. This is handy when an error message says "error in line 42" (or similar).


dialog_name: IDD_PREFS_P23
title: Chat
label: IDD_PREFS_P23
doc_name: chat
command_name: ConfigureChat
related_dialog: IDD_CHAT_LIST
description:
<b>Our chat name:</b>

The name that will appear on other peoples' chat sessions. It defauls to the character name you used in your "Connecting" configuration.

<b>Automatically allow snoop</b>

If checked, once you have authorised a chat user to snoop you, you are not prompted whether to allow a particular snoop session.

<b>Incoming calls</b>

If checked, allow incoming chat calls.

<b>Accept incoming calls on port:</b>

Which port to allow incoming chat calls on.

<b>Validate caller</b>

If checked, incoming calls are presented to you in a dialog box, where you are given the chance to accept or reject a particular call.

<b>Message Appearance</b>

How chat messages appear in your output window.

<b>Messages in:</b>

Chat messages foreground colour.

<b>on</b>

Chat messages background colour.

<b>Ignore incoming colours</b>

Discard colours on incoming chat calls. You might check this if other chat users are sending ANSI colour codes that clash with your own colour scheme.

<b>Prefix messages with:</b>

What to put at the start of each chat message, to distinguish it from other MUD output. For example, "(CHAT)".

<b>Limits</b>

This lets you limit incoming messages to the specified number of lines or bytes (for example, 100 lines, or 1000 bytes). You might set this is some chat users are sending annoyingly long messages.

<b>Max. lines per message:</b>

Incoming chat messages over this limit are truncated.

If zero, there is no limit on the number of lines. 

<b>Max. bytes per message:</b>

Incoming chat messages over this limit are truncated.

If zero, there is no limit on the number of lines. 


<b>Automatically accept files</b>

If checked, once you have authorised a chat user to send you files, you are not prompted whether to accept a particular file.

<b>Save to:</b>

Enter the directory for files to be saved to. If this is non-blank, and "automatically accept files" is checked, then incoming files can be received without any intervention. If this is blank, then you will be prompted for where to save incoming files.

<b>Browse...</b>

Browse for a directory to save incoming files to.


dialog_name: IDD_CHAT_EMOTE_ALL
title: Emote to all
label: IDD_CHAT_EMOTE_ALL
doc_name: chat
related_dialog: IDD_CHAT_LIST
description:
This sends an emote to the selected users. Your chat name is prepended, so you just need to type the emote. eg. "laughs".

<b>Emote:</b>

What to emote to the selected chat users.


dialog_name: IDD_GLOBAL_PREFSP11
title: Global preferences - tray
label: IDD_GLOBAL_PREFSP11
related_dialog: IDD_GLOBAL_PREFSP1
description:
<b>Show MUSHclient in</b>

You can specify to show MUSHclient in either the normal Windows Taskbar, the "Tray" or both.

<b>Choose icon</b>

You can choose the icon that will be shown in the Tray from this list, or browse for you own custom icon file.

<b>Browse...</b>

Click to browse for your own custom icon file.


dialog_name: IDD_GLOBAL_PREFSP12
title: Global preferences - plugins
label: IDD_GLOBAL_PREFSP12
doc_name: plugins
related_dialog: IDD_GLOBAL_PREFSP2
description:
<b>Global plugins</b>

Plugins listed here are automatically loaded when a world is opened, or a new world is created. This lets you have a list of "global" plugins (eg. the Chat plugin) that you always want to have available.

<b>Add...</b>

Click to add another plugin to the plugin list.

<b>Remove</b>

Click to remove the selected world from the plugin list.

<b>Move Up</b>

Click to move the selected plugin up the list (open it sooner).

<b>Move Down</b>

Click to move the selected plugin down the list (open it later).

<b>Plugins Directory...</b>

Click to select the default directory for loading/saving plugins.


dialog_name: IDD_GENERATE_UNIQUE_ID
title: Generate Unique ID
label: IDD_GENERATE_UNIQUE_ID
doc_name: utils
command_name: ID_EDIT_GENERATEUNIQUEID
description:
This uses CreateGUID to get a unique number, and then hashes it, retaining 24 characters (96 bits) of the hash. This generates a nice, unique identifier, like this: "0a96ce42d8e0ede554d3b9ab".

You could also use it for making up words to be send by a keypad or macro which can then be caught by an alias. This lets you extend the functionality of keypads and macros to do things like expanding variables.

You could also use it as a handy "password generator", as the number sequences are hardly going to be predicable.


dialog_name: IDD_MULTILINE_TRIGGER
title: Make Multi-Line Trigger
label: IDD_MULTILINE_TRIGGER
doc_name: triggers
command_name: MakeMultiLineTrigger
related_dialog: ID_GAME_CONFIGURE_TRIGGERS
description:
Allows you to quickly generate a multi-line trigger.

<b>Trigger on:</b>

Enter the multi-line text to be matched. This is automatically generated from selected text in the output window, if any. The text is converted to a regular expression, so that things like .()[] will be "escaped" with a backslash in front of it.

You do not need to enter \n for a newline, these will be generated automatically at each linebreak.

<b>Match Case</b>

If checked, the trigger will only match the exact case shown, otherwise it will match upper or lower-case versions of the text.

<b>OK</b>

When you click OK, a trigger will be added to the world's trigger list. This trigger will be:

<ul>
<li/>A regular expression (as required for multi-line triggers)

<li/>Multi-line, with the line count set to the number of lines in the match text

<li/>Keep evaluating (so other triggers will also match the line)

<li/>Send to output

<li/>Send the entire matching trigger ("%0")

<li/>Group as "Multi Line"

</ul>

The intention is that you would then edit the multi-line trigger in the trigger configuration for the world and make it do whatever you want. You may also want to replace variable parts of the text with (.+) or similar to act as wildcards.


dialog_name: IDD_FUNCTION_LIST
title: Functions
label: IDD_FUNCTION_LIST
doc_name: utils
related_dialog: IDD_EDIT_MULTILINE
description:
This dialog shows a list of MUSHclient script functions, optionally filtered to a subset by the Filter edit box.

Select a function name, and click OK to see the help for that function. Alternatively, double-click the function name.

<b>Filter</b>

Type a word into this box to show a subset of the functions that partially match the filter word (eg. "trigger").

<b>OK</b>

Click to show help on the selected function.

<b>Copy</b>

Click to copy the name of the selected function to the Clipboard, and close the dialog box.

<b>Lua</b>

Click to show the help for the Lua-specific functions.


dialog_name: IDD_LUA_GSUB
title: Global Replace
label: IDD_LUA_GSUB
doc_name: notepad
command_name: GlobalReplace
related_dialog: IDD_EDIT_MULTILINE
description:
This is for doing a powerful "global replace" using Lua's string.gsub function.

The selected text (or all text in the window if none is selected) will be sent to the string.gsub function, with the specified "find" and "replacement" text being used for the function, like this:

<code>
new_selection = string.gsub (old_selection, find_text, replacement_text)
</code>

If there is an error raised by string.gsub (eg. bad regular expression) then no text is replaced.

See the documentation for string.gsub in Lua for the exact workings of this function. Also see the forum postings:

<code>
http://www.gammon.com.au/forum/?id=6034
http://www.gammon.com.au/forum/?id=6138
</code>

The first one describes string.gsub in detail. The second one amplifies on the uses you can put this dialog box to.


<b>Find Pattern</b>

What to search for. This is a Lua-style regular expression.

The standard patterns you can search for are:

<code>
 . --- (a dot) represents all characters. 
%a --- all letters. 
%c --- all control characters. 
%d --- all digits. 
%l --- all lowercase letters. 
%p --- all punctuation characters. 
%s --- all space characters. 
%u --- all uppercase letters. 
%w --- all alphanumeric characters. 
%x --- all hexadecimal digits. 
%% --- a single '%' character.
%1 --- captured pattern 1.
%2 --- captured pattern 2 (and so on).
%f[s]  transition from not in set 's' to in set 's'.
%b()   balanced pair ( ... ) 
</code>

Important - the uppercase versions of the above represent the complement of the class. eg. %U represents everything except uppercase letters, %D represents everything except digits.

There are some "magic characters" (such as %) that have special meanings. These are:

<code>
^ $ ( ) % . [ ] * + - ?
</code>

If you want to use those in a pattern (as themselves) you must precede them by a % symbol.

eg. %% would match a single %

As with normal MUSHclient regular expressions you can build your own pattern classes by using square brackets, eg.

<code>
[abc] ---> matches a, b or c
[a-z] ---> matches lowercase letters (same as %l)
[^abc] ---> matches anything except a, b or c
[%a%d] ---> matches all letters and digits
[%a%d_] ---> matches all letters, digits and underscore
[%[%]] ---> matches square brackets (had to escape them with %)
</code>

The repetition characters are:

<code>
+  ---> 1 or more repetitions (greedy)
*  ---> 0 or more repetitions (greedy)
-  ---> 0 or more repetitions (non greedy)
?  ---> 0 or 1 repetition only
</code>

The standard "anchor" characters apply:

<code>
^  ---> anchor to start of subject string
$  ---> anchor to end of subject string
</code>

You can also use round brackets to specify "captures", similar to normal MUSHclient regular expressions:

<code>
You see (.*) here
</code>

Here, whatever matches (.*) becomes the first pattern. This can be referred to in the replacement box as %1.

You can also refer to patterns in the regular expression. For example:

<code>
You see (.*) and %1 here
</code>

This would match "You see fish and fish here", but not "You see fish and chips here".

Note that carriage-return characters (\r) are removed from the text before being submitted for find-and-replace, so they will never appear in the selected text. They are replaced before the text is redisplayed in the notepad window.


<b>(...)</b>  (edit find text)

Click on the button marked "..." to open a larger dialog box for inputting the "find" regular expression more easily.


<b>Replacement</b>

This is the replacement text for each match, or in the case of "Call Function" (described below), the function name to be called.

For every match of the regular expression in the Find Pattern box, the replacement text will be substituted. If you use %1, %2, etc. they will be replaced by the contents of the first/second capture pattern etc. 

To replace with % literally, enter %%.


<b>(...)</b>  (edit replacement text)

Click on the button marked "..." to open a larger dialog box for inputting the "replacement" text more easily.


<b>Line By Line</b>

If checked, each individual line of the selection is sent to string.gsub as an individual item. If unchecked, the entire selection is processed as a batch. 

The main difference will be the processing of line breaks. 

If you check "Line By Line":

<ul>
<li/>There will never be a newline character in the text to be matched (as that is the linebreak character)

<li/>The symbol ^ represents the start of each line

<li/>The symbol $ represents the end of each line

<li/>You cannot write a find/replace that will join lines together

<li/>It will be slower to execute (particularly on large blocks of text) because the string.gsub function has to be called for each line
</ul>


If you uncheck "Line By Line":

<ul>
<li/>There may be newline characters in the text to be matched (as that is the linebreak character). You can test for these with \n, if you check "Escape Sequences"

<li/>The symbol ^ represents the start of the entire selection

<li/>The symbol $ represents the end of the entire selection

<li/>You join lines together by searching for \n and replacing it with something else

<li/>It will be faster to execute
</ul>

<b>Escape Sequences</b>

You can enter non-printable characters in the Find and Replace boxes using the special codes documented for script function FixupEscapeSequences, eg. \n for newline, \t for tab.

<b>Call Function</b>

If checked, the function (which you can edit by clicking on the "Script" button), is applied to each match, rather then a simple text replacement. In this case the "Replacement" box should be the <b>name</b> of the required function. This is the alternative behaviour which is documented for string.gsub - supplying a function as the replacement rather than a string.

Supplying a function lets you make more powerful replacements, such as looking up a replacement word in a table, or doing things like replacing lower-case with upper-case, and so on.

The following libraries are available to your function: table, io, string, math, debug, rex, bits, compress, and utils.

You can also enter into the replacement box directly the name of a function that already exists in the installed libraries, if this will do what you need without any extra work. For example: string.upper, string.lower, utils.hash, utils.base64encode.

<b>Script</b>

Click this button to enter your replacement function. This is a function written in the Lua language. If you click this, and enter some text, the "Call Function" checkbox is automatically checked.

An example of doing this would be:

<code>
Find:  [&lt;&gt;&amp;]
Replace: f
Line by Line: no
Call Function: yes
Script:

replacements = { 
   [&quot;&lt;&quot;] = &quot;&amp;lt;&quot;,
   [&quot;&gt;&quot;] = &quot;&amp;gt;&quot;,
   [&quot;&amp;&quot;] = &quot;&amp;amp;&quot;,
   }

function f (str)
  return replacements [str] or str
  end
</code>

This would make an "HTML fixup" replacement, that replaces special HTML codes by the replacements shown in the table above.

Another example of using a function:

<code>
Find: %f[%a]%u+%f[%A]
Replace: string.lower
Line by Line: no
Call Function: yes

</code>

This searches for words that are in all upper-case (by searching for %u which is upper case letters), surrounded by something that is not a letter). When found the (inbuilt) function "string.lower" is called that converts it to lower-case.

To explain this a bit further, if we had simply searched for %u+ then we would also have matched on upper-case letters inside words which also had lower-case in them. I initially had the Find pattern as: "%A%u+%A". This matches one non-letter followed by all uppercase letters, followed by one non-letter. Whilst this successfully found all upper-case words, it failed on the text boundary (that is, it would not convert an all upper-case word at the start or end of the selection). However, using the little-known Lua "frontier" pattern, we detect the transition from not letters to letters %f[%a], which is also the start of the pattern, and finish off with %f[%A] which is the transition between letters to non-letters. 


<b>OK</b>

Click OK to perform the find-and-replace on the selected text. If no text is selected the operation is performed on the entire notepad window.

If you are not happy with the results, immediately perform an Undo (Edit Menu &gt; Undo) or press Ctrl+Z.

When you click OK the contents of the dialog box are remembered for this session of MUSHclient, over all instances of Notepad windows. Thus, if the results are not quite right, you can Undo them, re-open the dialog box, make amendments, and try again.


<b>X characters selected. (N line breaks)</b>

This field, next to the OK button, shows how much text is selected. If there is no selection, or all text is selected, it will read "All text selected.". The count of line breaks shows how many newline characters have been found in the selection. Thus, a selection of one line, and part of the next line, will show "1 line break" even though 2 lines may be visibly selected.


dialog_name: IDD_COMPLETE_WORD
title: Complete Function Name
label: IDD_COMPLETE_WORD
doc_name: notepad
related_dialog: IDD_FUNCTION_LIST
description:
This dialog box lets you choose a function name from a list which matches what you have partially typed.

Select the function you want and press &lt;Enter&gt; to accept it, or &lt;Escape&gt; to cancel.

If the list is empty that means no inbuilt function matched the selection.


dialog_name: IDD_LUA_DEBUG
title: Debug
label: IDD_LUA_DEBUG
doc_name: scripting
related_dialog: IDD_PREFS_P17
description:
This dialog is invoked by calling debug.debug () from within a Lua script.

You can use it to inspect variables, do a traceback, enter debugging commands, or abort the script.

<b>Source</b>

The short form of the source of this script. If loaded from a file it will be the filename preceded by the "@" symbol.

<b>First, last lines</b>

If known, the first and last line numbers in which the current function was defined.

<b>Current line</b>

The line number inside the script at which the debug.debug () command resides.

<b>What function is</b>

This will be one of:

<ul>
<li/>Lua - a regular Lua function
<li/>main - inside the main Lua chunk (that is, not inside a function)
<li/>C - a C function
</ul>

<b>Name</b>

If it can be determined, the name of the current function, followed by what the name is in brackets. (eg. "myfunction (local)" ).

<b>Function</b>

The function address.

<b>Number of upvalues</b>

How many upvalues this function has.

<b>Show upvalues</b>

Clicking this runs a small script to display the upvalues of the current function, if any, in the output window. The script looks like this:

<code>
do 
local i, name, val = 1 
local t = debug.getinfo (3, 'f') 
local f = t.func 
-- keep going until we run out of values
repeat 
  name, val = debug.getupvalue (f, i) 
  if name then  
    ColourNote ('limegreen', 'black', name .. ' = ' .. tostring (val))  
    i = i + 1  
  end 
until not name	
ColourNote ('limegreen', 'black', tostring (i - 1) .. ' upvalue(s)') 
end -- of local block
</code>


<b>Show locals</b>

Clicking this runs a small script to display the local variables of the current function, if any, in the output window. The script looks like this:

<code>
do local i, name, val = 1 
repeat 
 name, val = debug.getlocal (3, i) 
  if name then  
    ColourNote ('limegreen', 'black', name .. ' = ' .. tostring (val))  
    i = i + 1  
  end 
until not name	 
ColourNote ('limegreen', 'black', tostring (i - 1) .. ' local(s)') 
end -- local block
</code>


<b>Traceback</b>

Clicking this runs a small script do display the traceback information, namely:

<code>
ColourNote ('limegreen', 'black', debug.traceback ())
</code>

<b>Command</b>

You can type Lua commands into this window and press &lt;Enter&gt; (or click on Do Command). The command you entered is sent to the Lua interpreter to be executed in the context of the current script. For example, you could print or change global variables. The current command is remembered from one debug session to the next.

<b>Edit...</b>

Click this to edit the current contents of the command window in a larger dialog box. This larger box has access to function help, and function-name completion.

<b>Do command</b>

Sends the contents of the "command" box to the Lua interpreter.

<b>Continue execution</b>

Lets the script that called debug.debug () continue executing. Pressing &lt;Esc&gt; to dismiss the dialog has the same effect.

<b>Abort script</b>

Aborts the calling script with the error "Script aborted".


dialog_name: IDD_SPELLCHECK_DIALOG
title: Spell Check
label: IDD_SPELLCHECK_DIALOG
doc_name: spellcheck
command_name: SpellCheck
related_dialog: IDD_GLOBAL_PREFSP2
description:
This shows a misspelt word during the spell-check process.

<b>Misspelt:</b>

This is the word currently being considered. You can edit it in this box and click "Change" to change it to another word - that is, make a manual correction.

<b>Suggestions</b>

This is a list of suggested spellings, based on the "sound" of the original word, arranged in alphabetic order. Choose one and click the "Change" button to accept the suggestion. Or, double-click a suggested word.

<b>Ignore</b>

Ignore the misspelt word once.

<b>Ignore All</b>

Ignore this word this time, and all future times, in this spell-check operation.
To ignore a word forever, click "Add" instead.

<b>Add</b>

Adds this word to the "user" dictionary, so it is always considered correctly spelt.

<b>Change</b>

Change to the word you typed into the edit box, or the currently-selected suggested spelling.

<b>Change All</b>

If you have corrected the word, change all instances of the original spelling, to the new spelling.

<b>Cancel</b>

Cancel the spell-check operation.


