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
mail 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.