Skip to main content
Plugin development happens inside the Illegalcord source tree. You do not need a separate plugin template or manifest.json.

Requirements

  • Node.js 22 or newer.
  • pnpm.
  • A local clone of Illegalcord.
  • Discord desktop for testing desktop injection, or a browser target for pnpm buildWeb.

Setup

1

Install dependencies

From the repository root:
2

Choose a plugin folder

Use src/userplugins/<name> for Illegalcord-specific bundled plugins, src/equicordplugins/<name> for Equicord-specific work, or src/plugins/<name> for stock plugin changes.
3

Build in watch mode

For desktop work:
For web work:
4

Inject or reload

Use pnpm inject after a desktop build, then restart Discord. For web, reload the extension output from dist.

Validation commands

Run focused checks before committing plugin work:
If your plugin includes CSS:

New plugin checklist

  • Add the SPDX header at the top of each new source file.
  • Export definePlugin({ ... }) as the default export.
  • Include name, description, and authors.
  • Use Devs or EquicordDevs for authors.
  • Add dependencies for imperative API usage.
  • Prefer declarative plugin fields.
  • Clean up every timer, listener, observer, subscription, and manual registration.
  • Regenerate plugin metadata with pnpm generatePluginJson.
Keep the first version in one file. Split only when a second file is genuinely reusable or the plugin grows past a comfortable size.