Welcome to the Utility Discord Bot! This bot is designed to enhance your Discord server's functionality by providing a variety of helpful features, including survey systems, sticky messages, onboarding for new members, and group call notifications.
Create and manage surveys within your Discord server to gather feedback and opinions from your community.
Keep important messages at the top of your channels so they are always visible to your members.
Welcome and guide new members with a structured onboarding process to ensure they have all the information they need.
Easily notify specific roles about upcoming group calls with direct messages.
/survey [channel]
: Set up a survey in the specified channel./survey-close
: Close an existing survey./survey-delete
: Delete an existing survey.
/stick [channel] [message-link]
: Stick a message in the specified channel.- `/unstick: Unstick the previous sticky message.
/onboard [member]
: Onboard a new member to the server.
/group-call [role]
: Notify members of an upcoming group call by sending DMs to a specific role.
The bot leverages Google Sheets as a database to store survey data and sticky message information, ensuring data is organized and easily accessible.
- Node.js
- Discord.js library
- Google Sheets API setup
To run this project locally, follow these steps:
- Clone this repository::
git clone https://github.com/ritoncharlox/Discord-Utility-Bot.git
- Access the cloned directory:
cd Discord-Utility-Bot
- Install dependencies:
npm install
-
Set up your configuration:
config.json
: This file contains your Discord bot token, client ID, guild ID, client color, and role IDs. Fill in the appropriate values for each field. For example:
{ "token": "YOUR_DISCORD_BOT_TOKEN", "clientId": "YOUR_CLIENT_ID", "guildId": "YOUR_GUILD_ID", "clientColor": "2f3136", "role1Id": "ROLE_1_ID", "role2Id": "ROLE_2_ID", "role3Id": "ROLE_3_ID" }
trape-327504-ce5999dc2d27.json
: This JSON file contains your Google Sheets API credentials. You can obtain these credentials from the Google Cloud Console. Fill in the appropriate values for each field. For example:
{ "type": "YOUR_TYPE", "project_id": "YOUR_PROJECT_ID", "private_key_id": "YOUR_PRIVATE_KEY_ID", "private_key": "YOUR_PRIVATE_KEY", "client_email": "YOUR_CLIENT_EMAIL", "client_id": "YOUR_CLIENT_ID", "auth_uri": "YOUR_AUTH_URI", "token_uri": "YOUR_TOKEN_URI", "auth_provider_x509_cert_url": "YOUR_AUTH_PROVIDER_X509_CERT_URL", "client_x509_cert_url": "YOUR_CLIENT_X509_CERT_URL", "universe_domain": "YOUR_UNIVERSE_DOMAIN" }
-
Start the bot:
node index.js
-
Make sure to replace "YOUR_DISCORD_BOT_TOKEN", "YOUR_CLIENT_ID", "YOUR_GUILD_ID", "ROLE_1_ID", "ROLE_2_ID", "ROLE_3_ID", and the fields in trape-327504-ce5999dc2d27.json with your actual token, client ID, guild ID, and role IDs. Additionally, replace all the placeholder fields in trape-327504-ce5999dc2d27.json with your actual Google Sheets API credentials.
Contributions are welcome! If you'd like to contribute to this project, feel free to fork this repository, make your changes, and submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.