sperm is a Discord plugin builder that makes plugins that work with every Discord client mod through Cumcord.
npm i -g sperm
All CLI functionality of sperm can be done via CLI switches to allow users to automate plugin builds using scripts or CI tools.
Use sperm --help [command]
to get information on what a command does and what CLI switches it can use.
sperm init
will prompt you for information regarding your plugin and create a manifest.sperm build
will build a plugin fromcumcord_manifest.json
todist/
by default.sperm dev
will automatically open a connection to Cumcord's built-in development websocket to hot-reload your plugin and report errors.sperm helper
will automatically generate "installation helper" plugins for GooseMod, BetterDiscord, Powercord, or Vizality (NOT RECOMMENDED) that install Cumcord and your plugins seamlessly without any work from you or your users.
Distributing built plugins can be done in 3 ways:
- Distributing a helper plugin generated through
sperm helper
. - Distributing a link to your plugin's
dist
folder and telling users to install it through Cumcord's settings UI. (example:https://cumcord-plugin.github.io/dist/
) - Distributing a link to Cumcord's "web plugin installer" for users who already have Cumcord, which will talk to Cumcord's websocket to prompt the user to install a plugin in Discord itself. (example
https://send.cumcord.com/#https://cumcord-plugin.github.io/dist/
)
sperm uses Rollup and esbuild to do the heavy-lifting and as a result your plugin may include these file types:
- .js (Obviously.)
- .jsx (REQUIRES YOU IMPORT REACT FROM "@cumcord/modules/commonModules")
- .es6
- .es
- .mjs
You can submit patches and development ideas on our development mailing list.
You can talk about Cumcord on our discussion mailing list.
Announcements can be found on our announcements mailing list.