Programmable Plugins

This directory contains a range of example plugins for the client. Plugins are short scripts written in the TCL programming language which allow you to customise the client and to add new functionality.

To use these plugins simply save them to a file and copy them to your /plugins/ directory. Plugin file names should end with '.tcl'. Then re-start the client and it will load each plugin. The /plugins/ directory should be in one of the following locations depending on the type of system you're using:

        unix:   ~/.tkMOO-lite/plugins
        mac:    PREF_FOLDER:plugins
        pc:     plugins directory in the same directory as the 
                tkmoo.tcl script.

All of these plugins are subject to the same LICENCE as the the client itself, unless stated otherwise.

Default Plugins

The following plugins are contained in the client distribution. You don't have to download these to try them out but they're included here anyway if you'd like to take a look.

Plugin Description
mcp21.tcl Support for the MCP/2.1 Out of Band protocol. This plugin is part of the client's default distribution since version 0.3.12.
status.tcl Displays a timer in the client's statusbar which shows you how long you've been connected.
message.tcl Adds MCP/1.0 and XMCP/1.1 hooks to the client to allow servers to send short messages that get displayed in the client's statusbar message widget. Supports the MCP/2.1 packages dns-com-awns-status and dns-com-ben-tfstatus-update.
ansi.tcl Provides support for ANSI Codes: foreground and background colour, bright, underline, bell. Controlled via the Colours and Fonts category in the Preferences Editor.
webbrowser.tcl Provides a common UI to control your platform's webbrowser. The Tcl command ' $url' is made available to other plugins and to the Triggers environment. See the plugin's code for more information.
(requires webbrowser.tcl)
This plugin allows you to type '?' followed by a search term and then opens a webbrowser window containing the search results. You can search using any one of several popular search engines. More...
(requires webbrowser.tcl)
This plugin detects URLs when they appear on the client's main window and turns them into clickable links. Clicking on a link will then open a webbrowser pointing at the URL. More...
rehash.tcl This plugin supports the dns-com-awns-rehash package and enables the client to know which server commands are currently visible to the player. A simple macro definition enables the client to tell if the words being typed are something you want to 'say' or something you want to 'do'. More...
cmdcomplete.tcl This plugin extends the client's word-completion facility by allowing [tab] to complete the first word on the command line with a valid command. This plugin requires that the server supports the dns-com-awns-rehash MCP/2.1 package.
(requires webbrowser.tcl)
This plugin supports the dns-com-awns-displayurl package and allows the server to send URLs to the client. The client should then use a client-side webbrowser to display the contents of the URL.
(requires client version 0.3.28 or newer)
This plugin supports the MCP/2.1 package dns-com-awns-serverinfo. The client is able to display Help-menu items pointing to the server's web home-page and help-page. More...
timezone.tcl Provides support for the dns-com-awns-timezone MCP/2.1 package. This plugin lets the client tell the server which time-zone you're currently in. The server can use this information to build meeting-schedule tools and other applications.

Optional Plugins

These plugins don't come with the normal client distribution. If you'd like to try them out then please understand that they're experimental and not officially supported. Of course if enough people use these plugins, and they become stable then they could well appear in the the default distribution.

If you think one of these plugins is causing you problems then please let me know. At the very least you can just remove the file from your /plugins/ directory and all will be well.

Plugin Description Status
checkmail.tcl UNIX users, checks your mailbox and tells you when new mail has turned up. The plugin works by looking for timestamp and size changes in your incoming mailbox file. Experimental
cold_text.tcl A hypertext interface to objects on a Cold server. Cold servers send specially formatted output which this plugin converts into hyperlinks. You can see this working if you visit the Cold Dark (telnet:// Experimental
gateway.tcl One of many gateway plugins, designed to let your client connect to the internet through a company firewall. This plugin is provided as a general example for programmers. It's unlikely that this version will work for you. Experimental
linelen.tcl Sends the MOO command '@linelength <length>' whenever the client window is resized. Useful if you prefer using a fixedwidth font. Experimental
ping.tcl Provides support for the dns-com-awns-ping MCP/2.1 package. Allows both client and server to test the latency of a user's connection, a rough indication of net-lag. Creates a small statusbar indicator which lights up LEDs according to how slow the network connection is. Experimental
visual.tcl Provides client-side support for the dns-com-awns-visual MCP/2.1 package. In turn used by the rose2.1.tcl plugin. Experimental
(requires visual.tcl)
Makes use of the data supplied by the visual.tcl plugin to provide a simple clickable map interface and user awareness information in a toolbar item. More... Experimental
spell.tcl User-defined dictionaries (or the 'ispell' or 'look' commands on UNIX) can be used to detect spelling mistakes in the input window. Unrecognised words are highlighted automatically while you type so you can catch your typos before you hit the Return key. Right-click on unrecognised words to add them to your personal dictionary. More...

A simple 20-thousand word dictionary is available for non-UNIX users. It needs to be unzipped before use.

subwindow.tcl This plugin lets you display messages in a subwindow. It can make use of triggers and macros to pass messages to and from the server. More... Experimental
getset.tcl This plugin supports the dns-com-awns-getset package and enables the client to save data to and load data from the server. Contains a simple notepad application invoked by the Tools->GetSetDrop menu item. Experimental
fnkeys.tcl This plugin lets you bind commands to function keys. Pressing a function key will send the commands to the server. Command bindings are defined under the new 'Function Keys' category in the Preferences Editor. Experimental
cvw.tcl This plugin supports a small subset of the CVW application suite. It currently implements clickable maps, user-listings, room contents, user inventory and editable notes. More... Experimental
speak_weirdly.tcl This plugin rewrites normal MOO speech forms and helps to make output a little less predictable. More... Experimental
scoop.tcl This plugin creates a page of HTML from the text you select on the client window. You can use it to produce quick, web-ready logs of conversations. More... Experimental
pretty.tcl This plugin adds the 'Edit->Prettyprint MOO' menu option to the client's local editor. Use the option to reformat MOO-code, indenting lines correctly. Experimental
shell.tcl This plugin adds the 'Tools->Shell selection' menu option to the client. Select some text and invoke the menu item and the selection will be executed as if it was a command typed into your UNIX shell. You can also add a simple macro to let you run shell commands from the client's input window. Only available for UNIX. Experimental

Third-party Plugins

These plugins don't come with the normal client distribution and may also be subject to their own copyright and licence. If you'd like to try them out then please understand that they're not officially supported but that support may be available from the author of specific plugins. Read the plugin's source code to find out more.

Plugin Description Authors
mcptrace.tcl Creates a separate window to display all MCP communication between the client and the server. The window can be opened when the client connects, by checking 'Show MCP Trace' in the 'Out of Band' category of the preferences editor, or can be opened at any time by using the Tools->'MCP Trace' menu item. Michael Mantel
syntax.tcl This plugin hooks into the built-in editor and allows it to perform syntax highlighting on its contents. The syntax plugin is, itself, theoretically extensible with other plugins for various types of syntax highlighting, but currently only supports MOO code highlighting, which is built into the core plugin. Russell Pickett
keypad.tcl This plugin lets you bind commands to keys in the numeric keypad. Pressing a keypad key will send the commands to the server. Command bindings are defined under the new 'Keypad Controls' category in the Preferences Editor. Joshua May
toolbar.tcl This plugin provides several useful toolbars. The client's main window can carry a set of graphical buttons for common commands, and a set of buttons bound to user-defined commands. Local editors can carry a toolbar with buttons for the most frequently used commands. A compass rosette is available to help you navigate around the mud and '@dig' rooms. The plugin can be customised using the 'Toolbar Settings' and 'Advanced Toolbar Settings' categories in the Preferences Editor. Joshua May