Official Plugins
UrsaMU’s official plugins live in the UrsaMU GitHub organization.
They are listed in src/plugins/plugins.manifest.json and installed automatically on first run via ensurePlugins.
Auto-installation
On startup, the engine reads plugins.manifest.json and fetches any plugin whose ref differs from the installed copy. No manual install step is required.
The install run is atomic across the whole manifest: if any plugin or transitive dep fails to clone, has an unsafe name/URL, or violates a version semver range from its requester, the entire run aborts and rolls back. Disk and src/plugins/.registry.json are left exactly as they were — previously installed plugins are not touched.
To disable auto-install for a specific plugin, remove its entry from the manifest.
Plugin Registry
| Plugin | Repo | Min Engine | Description |
|---|---|---|---|
| channel | UrsaMU/channel-plugin | >=1.9.27 |
Channel system — alias dispatch, auto-join, @chancreate/@chandestroy/@chanset, message history |
| discord | UrsaMU/discord-plugin | >=1.9.0 |
Webhook-based Discord integration — channel bridging, presence, chargen events |
| jobs | UrsaMU/jobs-plugin | >=1.9.0 |
Jobs and request system — player requests, staff commands, REST API |
| events | UrsaMU/events-plugin | >=1.9.2 |
In-game event calendar with RSVP tracking and REST API |
| bbs | UrsaMU/bbs-plugin | >=1.9.0 |
Myrddin-style bulletin boards — threading, categories, sticky posts, Discord webhooks |
| wiki | UrsaMU/wiki-plugin | >=1.9.0 |
File-based markdown wiki — pages, search, history, backlinks |
| UrsaMU/mail-plugin | >=1.9.3 |
In-game mail — drafts, reply/forward, folders, attachments, quota, REST API | |
| builder | UrsaMU/builder-plugin | >=1.9.5 |
World-building commands — @dig, @open, @link, @describe, @examine, REST API |
| chargen | Bundled — src/plugins/chargen/ |
>=1.8.0 |
Character generation scaffolding — hooks into the connection flow to guide new players through stat selection |
| help | UrsaMU/help-plugin | >=1.9.0 |
API-first help system — file + DB + command providers, +help/set/+help/del, REST API, per-plugin help dirs |
Adding a Plugin
Any GitHub repo can be added to the manifest:
{
"plugins": [
{
"name": "my-plugin",
"url": "https://github.com/example/my-plugin",
"ref": "v1.0.0",
"description": "What this plugin does.",
"ursamu": ">=1.9.27",
"deps": [
{ "name": "jobs", "url": "https://github.com/UrsaMU/jobs-plugin", "version": "^1.9.0" }
]
}
]
}
Each deps[] entry may include an optional version semver range (e.g. "^1.2.0", ">=1.0.0 <2.0.0") — the installer cross-checks it against the dep’s own manifest version and aborts the run on mismatch. Omit version for backwards-compatible behavior.
Or use the CLI:
deno run -A jsr:@ursamu/cli@0.1.2/plugin install https://github.com/example/my-plugin
See Building a Plugin to publish your own.