AlterBot is an open-source, modular Discord bot built using Discord.js. Designed to be simple, flexible, and extendable with minimal effort — perfect for community servers, developer learning, or adding your own features quickly.
- 🔌 Modular command system (/modules)
- 💬 Slash command support
- 🧠 Interactive and admin-only features (like bot status control)
- 📂 Auto-generated config on first run
- 🧪 Built-in intent tester and CLI command interface
npm installRun the bot once to generate config.json:
node bot.jsYou'll see:
{
"token": "",
"clientId": "",
"guildId": ""
}Edit the file and add your bot's credentials from the Discord Developer Portal.
| Field | Description |
|------------|---------------------------------------------------|
| token | Your bot token |
| clientId | The Application (Client) ID |
| guildId | (Optional) Test server ID for faster dev commands |node bot.jsThe bot will load modules from the modules/ folder, register slash commands, and log in.
Modules go in /modules and support both slash commands and event-based code.
// modules/ping.js
const { SlashCommandBuilder } = require("discord.js");
module.exports = {
data: new SlashCommandBuilder()
.setName("ping")
.setDescription("Replies with Pong!"),
async execute(interaction) {
await interaction.reply("🏓 Pong!");
},
};// modules/onReady.js
module.exports = {
async init(bot) {
bot.once("ready", () => {
console.log(✅ Bot is ready as \${bot.user.tag});
});
},
};/botstatus set type:Playing message:"Hello World" status:onlineOr use scrolling statuses:
/botstatus scroll type:Watching messages:"Server 1,Server 2,Server 3" interval:10To stop scrolling:
/botstatus stopscrollPull requests are welcome! To contribute:
- Add new features as modules in /modules
- Use SlashCommandBuilder for commands
- Use .init() for background/event logic
- Follow the existing file structure and code style
This project is licensed under the MIT License.
Made with ❤️ by Basper' > README.md