GaGBot is a utility bot for discord servers, written in JavaScript for Node.js
To get the latest stable release, check out the releases page.
- Module Loader - GaGBot can dynamically load modules that define new commands and events, making implementing custom features a breeze! (r20.1.0)
- Permissions - Fine-tune access to custom commands with simple permission nodes per role. (r20.1.0)
- Greet Module - Send new users a welcome message when they join the server. (r20.2.0)
- Reaction Roles - Allow users to assign themselves specific roles by reacting to messages. (r20.2.0)
- Admin Module - Commands for managing the server, e.g. purging channels, muting users, and so on.
- Custom Logging - Keep track of server activity by choosing what events are logged, and where.
- Promotion Tracks - Allow users to earn roles, with ladders that they can climb automatically.
Got a good idea? Open an issue and start the discussion!
Alternatively, you could contribute to one of these features! Look for open issues that are awaiting your action.
- Install
git
- Install
node
, version 14.0.0 or later - Install
npm
- A MongoDB server.
- Create a Discord Application and get a Bot Token
- Invite the bot to your server.
- Clone the repo or grab a stable release (recommended)
- Install the bot
cd /gagbot.js
npm install
- Create an environment variable named
DISCORD_TOKEN
, and set it to your bot's token.- If you're using the
admin
module, you should also supply the environment variablesPASTEBIN_DEV_KEY
,PASTEBIN_USER_NAME
andPASTEBIN_USER_PASSWORD
, containing your Pastebin API developer key, username and password respectively. This is especially necessary for large servers where theprune
command may select inactive members in excess of the number the bot is able to list in a MessageEmbed.
- If you're using the
- Add your MongoDB connection string to an environment variable named
MONGO_DB_URI
. - Run the bot. If all goes well, you'll see the modules being loaded, followed by a message that your bot has logged in to Discord.
node src/bot.js
-
You can test your bot using the
ping
command in your server chat, which is included in thecore
module. By default, you can either tag the bot to summon it, or use the prefix!
.
We use MAJOR.MINOR.PATCH semantic versioning in two different flavours. One for versioning code, and the other for releases. For more information, visit the wiki.
The latest stable release is r20.1.0
.
- Kay [email protected] - Product Owner
This code is licensed under the ISC License - see LICENSE.md for details.