Skip to content

iTsMaaT/WD-40

Repository files navigation


WD-40 Discord Bot

Add Cadence Discord bot  Discord support server  WD-40 bot license


Table of Contents

JavaScript

Features

  • Easy to use
  • Music playing ability
  • Quick fixes upon finding bugs
  • Slash commands
  • and more!

Adding to your server

  1. You can follow this link to add the bot to your server.
  2. The base prefix for text commands will be >
  3. You can execute the /help command (or >help) to get a list of all commands.
  4. Profit! If any issues arise, feel free to join the support server and ask for help.
  5. Alternatively, you can execute the /suggestion command (or >suggestion) to suggest a feature or a bug fix.

Self-hosting

Good luck. 4. Add a bot app in the Discord Developer Portal and get the token and client ID. 5. Make sure to enable all privileged intents in the bot app if you want full functionality.

  1. Install Node.js v20.x LTS and latest version of FFmpeg.
  2. Clone this repository and run npm install (use npm install --legacy-peer-deps if errors occur).
  3. Configure .env file in the root directory with your bot token and client id (details in .env.example).
Variable Description
TOKEN The bot token, which you can get from the Discord Developer Portal.
CLIENT_ID The client ID of the bot, which you can get from the Discord Developer Portal.
GEMINI_TOKEN The token for the Gemini AI API, which you can get from the Gemini API website.
GEMINI_API_PROXY_URL The URL for a US proxy, as Gemini API keys only work in the US.
PTERODACTYL_API_KEY If hosting on Pterodactyl, the API key for your panel.
PTERODACTYL_URL The URL for your panel.
PTERODACTYL_SERVER_ID The ID of the server on your panel.
VIRUS_TOTAL_API_KEY The API key for the VirusTotal API, which you can get from the VirusTotal website.
STEAM_API_KEY The API key for the Steam API, which you can get from the Steam website.
REDDIT_CLIENT_SECRET The client secret for the Reddit API, which you can get from the Reddit website.
REDDIT_CLIENT_ID The client ID for the Reddit API, which you can get from the Reddit website.
REDDIT_CLIENT_TOKEN The refresh token for the Reddit API, which you can get from the Reddit website.
YOUTUBE_ACCESS_STRING The access string for the YouTube API, which you can get from executing npx --no discord-player-youtubei in your terminal (more info).
DATABASE_URL The URL for the database, to create the DB, please refer to DATABASE below.
OWNER_ID The ID of the owner of the bot.
STATUS_CHANNEL_ID The ID of the channel where the bot will post status updates.
MEMBERS_UPDATE_ID The ID of the channel where the bot will post member updates.
SUGGESTION_CHANNEL_ID The ID of the channel where the bot will post suggestions from the /suggestion (>suggestion) command.
SENTRY_DSN (optional) Sentry DSN to enable Sentry logging of ERROR/SEVERE/WARNING
SERVER Either prod or dev, will make the bot only react to it's owner on dev.

Reddit client secret, ID and token are optional, as it will use the normal API instead of going trough OAUTH if not specified.

  1. Set up the database.

Database

The bot uses a MySQL database to store data. You can create a database by running the following command:

CREATE DATABASE bot;

Help and support

If you need help, feel free to join the support server and ask for help.

Known issues

If you are hosting on a VPS and use Youtube for the music part, your IP might get blocked by YouTube as it systematically blocks IPs that are from a VPS, in this case, you can disable YouTube and use Deezer or SoundCloud instead by modifing the config in utils/config/config.json.