A powerful, modular Discord bot inspired by Goat-Bot-V2 with advanced features, economy system, and interactive commands.
Features โข Installation โข Documentation โข Support
RentoBot is a production-ready Discord bot built with Node.js and Discord.js v14, featuring a modular architecture similar to Goat-Bot-V2. It provides a comprehensive suite of features including economy system, leveling, AI integration, anime/manga lookup, music streaming, moderation tools, and an administrative web dashboard.
- โ Modular Architecture: Easy to extend and customize
- โ Production-Ready: Built-in error handling, logging, and monitoring
- โ Database Caching: Optimized MongoDB operations with in-memory caching
- โ Dual Command Support: Both prefix and slash commands
- โ Web Dashboard: Real-time bot management and statistics
- โ Security First: Environment variables and secure credential management
- โ Auto-Maintenance: Scheduled restarts and cache clearing
- Dual Command System: Support for both prefix (
!command) and slash commands (/command) - 90+ Commands: Comprehensive command library covering all major categories
- 6 Event Handlers: Custom event system for guild and member events
- Interactive UI: Buttons, select menus, modals, and pagination
- OnReply System: Conversation-based command flows
- Auto-Detection: Automatically syncs guild data and member counts
- Complete Economy System: Bank, daily rewards, work, rob, transfer, shop
- XP & Leveling: Message-based XP gain with customizable level-up messages
- Custom Rank Cards: Canvas-based rank cards with user personalization
- Leaderboards: Global and server-specific leaderboards
- Inventory System: Item collection and management
- AI Features:
- ๐๏ธ Voice responses with 6 different voice models
- ๐จ Advanced image generation with 4 variations
- ๐ Regeneration and voice selection options
- ๐ Multi-language translation support
- AniList Integration: Search anime/manga with premium dropdown menus
- Anime Streaming: Multi-server streaming with Hindi dubbed content
- YouTube Command: Rich metadata display and video search
- Spotify Integration: Track information and playback
- Image Generation: AI-powered image creation
- Games: Quiz, Tic-Tac-Toe, Slot machine
- Web Dashboard:
- Real-time bot statistics
- User and guild management
- Command analytics
- System monitoring
- Authentication system
- Advanced Permissions: Three-tier role system (Users, Mods, Admins)
- Access Control:
- Admin-only mode (restrict bot to admins)
- Admin-guild mode (restrict to specific servers)
- Error Notifications: Automatic error reporting to admin channels
- Moderation Tools: Ban, kick, mute, warn, clear messages
- Command Statistics: Track usage of all commands
- Message Tracking: Server-wide message counts
- User Statistics: Per-user command and message analytics
- System Metrics: CPU, memory, uptime monitoring
- Error Logging: Production-ready error notification system
Before installing RentoBot, ensure you have:
- Node.js: Version 20.x or higher
- MongoDB: Running instance or MongoDB Atlas account
- Discord Bot Token: From Discord Developer Portal
- Discord Application: With Message Content Intent enabled
- Git: For cloning the repository (optional)
Enable these intents in Discord Developer Portal > Bot section:
- โ Presence Intent
- โ Server Members Intent
- โ Message Content Intent
git clone https://github.com/notsopreety/Rento-Bot.git
cd Rento-BotOption A: Using config.json (Recommended)
Edit config.json with your credentials:
{
"discord": {
"token": "your_discord_bot_token_here",
"clientId": "your_application_client_id",
"clientSecret": "your_application_client_secret"
},
"database": {
"mongodbUri": "your_mongodb_connection_string"
},
"bot": {
"prefix": "!",
"adminBot": ["your_discord_user_id"]
},
"dashboard": {
"enabled": true,
"port": 5000,
"sessionSecret": "your_secure_random_secret",
"username": "admin",
"password": "your_secure_password"
}
}Option B: Using .env file (Optional)
For additional security, create a .env file (environment variables override config.json):
# Discord Configuration
DISCORD_BOT_TOKEN=your_discord_bot_token_here
DISCORD_CLIENT_ID=your_application_client_id
DISCORD_CLIENT_SECRET=your_application_client_secret
# Database Configuration
MONGODB_URI=your_mongodb_connection_string
# Bot Configuration
BOT_PREFIX=!
BOT_ADMIN_ID=your_discord_user_id
# Dashboard Configuration (optional)
DASHBOARD_PORT=5000
DASHBOARD_SESSION_SECRET=your_secure_random_secret
DASHBOARD_USERNAME=admin
DASHBOARD_PASSWORD=your_secure_passwordnpm installnpm start๐ Your bot is now online! Visit http://localhost:5000 to access the dashboard.
For detailed documentation, please refer to:
- DOCS.md: Complete feature documentation and API reference
- STEP_INSTALL.md: Detailed step-by-step installation guide
- SETUP.md: Environment configuration and security guide
| Category | Commands | Description |
|---|---|---|
| ๐ฎ Fun | quiz, tictactoe, slot, emojimix | Interactive games and entertainment |
| ๐ฐ Economy | balance, daily, work, rob, shop | Complete economy system |
| ๐ Leveling | rank, leaderboard, setexp | XP and ranking system |
| ๐ก๏ธ Moderation | ban, kick, mute, warn, clear | Server moderation tools |
| โ๏ธ Config | setprefix, config, greeting | Server configuration |
| ๐ค AI | talk, imagine, translate, gptoss | AI-powered features |
| ๐บ Media | anime, anilist, youtube, spotify | Entertainment search |
| โน๏ธ Info | help, botinfo, serverinfo, ping | Bot and server information |
| ๐ Admin | eval, shell, restart, onlyadmin | Bot administration |
Restrict bot usage to administrators:
!onlyadmin on
Restrict bot to specific servers (any channel within those servers):
!onlyadminbox on
Configure admin guilds in config.json:
{
"bot": {
"onlyadminchannel": true,
"adminChannels": [
{
"guildId": "YOUR_GUILD_ID",
"channelId": "YOUR_CHANNEL_ID"
}
]
}
}Enable automatic error logging to admin channels:
{
"bot": {
"logErrorAdminChannels": true
}
}Access the web dashboard at http://localhost:5000:
- Public Dashboard: Bot statistics, command list, features
- Admin Panel:
/admin- User management, guild settings, analytics - Authentication: Configured via environment variables
- ๐ Real-time bot statistics
- ๐ฅ User and guild management
- ๐ Command usage analytics
- ๐ป System resource monitoring
- ๐จ Modern responsive design
- ๐ฑ Mobile-friendly interface
Need help? Here's how to get support:
- Discord Server: Join our support server
- GitHub Issues: Report bugs or request features
- Documentation: Check DOCS.md for detailed information
.env file or expose credentials!
- โ Use environment variables for all sensitive data
- โ Rotate tokens if accidentally exposed
- โ Keep dependencies updated
- โ Enable 2FA on Discord account
- โ Use secure MongoDB connection strings
See SETUP.md for security best practices.
RentoBot is highly customizable:
- Commands: Add new commands in
scripts/commands/ - Events: Create event handlers in
scripts/events/ - Dashboard: Customize views in
dashboard/views/ - Presence: Modify activities in
utils/presenceManager.js - Rank Cards: Customize design in
scripts/commands/rankcard.js
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Goat-Bot-V2
- Built with Discord.js
- Powered by MongoDB
- 90+ Commands: Comprehensive command library
- 6 Event Handlers: Custom event system
- 31+ Activities: Dynamic presence rotation
- 3-Tier Permissions: Flexible access control
- Web Dashboard: Real-time management
- Production-Ready: Error handling and monitoring
Made with โค๏ธ by Samir Badaila
โญ Star this repo โข ๐ Report Bug โข โจ Request Feature