Skip to content

Basic Plugin Setup

Equicord uses the same plugin system as Vencord, which means you can develop entirely new plugins from scratch or adapt existing ones.

  • Directorysrc/
    • Directoryequicordplugins/ For Equicord plugins
      • …
    • Directoryuserplugins/ For personal plugins
      • …
  • Directorysrc/userplugins/
    • DirectorymyFirstPlugin/ Valid (camelCase)
      • …
    • DirectoryMyFirstPlugin/ Invalid (pascalCase)
      • …
    • Directorymy-first-plugin/ Invalid (hyphen/spaces)
      • …

Each plugin must have its own folder and the entry file must be named index.ts or index.tsx.

src/userplugins/myFirstPlugin/index.ts

Inside index.ts, define your plugin using definePlugin. Which boilerplate you use depends on where your plugin will live.

If this is your first time contributing an Equicord plugin, you must first add yourself to the EquicordDevs object. Go to /src/utils/constants.ts, add your entry, and then reference it in the authors field.

import { EquicordDevs } from "@utils/constants";
import definePlugin from "@utils/types";
export default definePlugin({
name: "MyCoolPlugin",
description: "I am very cool!",
authors: [EquicordDevs.YourName],
});

Use this format for plugins inside equicordplugins/.

  • name should be short, clear, and unique.
  • description should clearly explain what the plugin does.
  • Use EquicordDevs.YourName only for Equicord plugins.
  • Use a plain object for personal or private plugins.

To learn more about how plugins work, check out the Equicord GitHub repository and explore the existing plugins in:

  • src/equicordplugins — Equicord plugins
  • src/plugins — Vencord plugins

For more in-depth plugin development information, visit the DeepWiki.

For plugin development suggestions and support, you can ask in the Equicord Discord. You may not get a reply if the user or person is not knowledgeable on the topic.