A workspace for developing custom plugins, scripts, and utilities for the Aardwolf MUD, designed specifically for MUSHclient version r2332 and higher.
This repository is structured into specific folders to separate concerns and ensure a clean environment:
| Directory | Purpose |
|---|---|
assets/ |
External media assets, soundscapes, images, and audio files used by plugins. |
db/ |
SQLite database files used for persistent storage, caching, and logs. |
lua/ |
Shared external Lua libraries, helper modules, and custom script dependencies. |
plugins/ |
Main repository for all MUSHclient plugin XML definition files. |
To use the plugins in this repository:
- Clone or download this repository.
- In MUSHclient, open the File menu -> Plugins -> Add.
- Browse and select the plugin XML files from the
plugins/directory.
When developing plugins for this repository, please adhere to the following best practices:
- XML Schema & Validation: All plugins must be valid XML with a
.xmlextension. Always wrap Lua code blocks inside<![CDATA[ ... ]]>tags. - Unique Plugin IDs: Ensure every plugin has a unique 24-character hexadecimal ID. Never duplicate plugin IDs.
- Scope & Namespace Safety: Declare all variables, functions, and imports as
localin Lua scripts to avoid polluting the global scope or conflicting with other plugins. - GMCP Integration: Prefer GMCP for character details, status, room, and targeting data using
require "gmcphelper"rather than scraping text output via triggers. - UI & Miniwindows: Optimize redraws to minimize CPU usage, support clean window resizing, and leverage
require "movewindow"for repositioning. Ensure window memory is freed usingWindowDelete()inside theOnPluginClose()callback. - Database Management: For tracking history or persistent state, load SQLite databases using
require "sqlite3"and wrap queries in error-handling (pcall) blocks to prevent client crashes.
This project is licensed under the MIT License - see the LICENSE file for details.