Skip to content

DevSeige-Studios/WaterfallBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

379 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Waterfall is a modular, slash-command–driven, scalable Discord bot designed for clarity, maintainability, and performance.

Note: Sharding in still a work in progress, so it is not recommended to use sharding for now. You may need to modify the sharding system for it to work as desired.

  • Slash Commands
  • Clean, consistent UX
  • Stable long-running behavior
  • Strong moderation suite
  • AI & search utilities
  • Admin & management tools
  • utility features
  • Webhook-based logging
  • Developer-friendly architecture
  • ComponentsV2 embeds
  • localization (i18n)

Features:

πŸ›‘οΈ Moderation

  • Automod system
  • Anti-spam / anti-mention
  • Kick / ban
  • Warnings with mod-logs
  • Bot detection
  • History tracking
  • Tiered escalation

βš™οΈ Server Utility

  • Member info, server info
  • Message utilities
  • Channel utilities
  • Role helpers
  • Server statistics

🌐 AI & Research

  • Gemini AI
  • WolframAlpha
  • Lookup utilities
  • Dictionary stuff

πŸ’» Developer Features

  • Hot reload commands
  • Hot reload events
  • Shard management
  • GitHub integration
  • Debug tools
  • Centralized logging system
  • Analytics system with 30 day history
  • Shards status

πŸ”— Invite Waterfall

Use this link to invite the bot:

https://discord.com/oauth2/authorize?client_id=1435231722714169435


πŸ›  Self-Hosting

1. Requirements

  • Node.js 22+
  • MongoDB instance
  • Discord bot token
  • Optional: Gemini / SerpAPI / OMDb / WolframAlpha / Other API keys

2. Install

git clone https://github.com/DevSiege-Studios/waterfall.git
cd waterfall
npm install

3. Configure Environment Variables

cp .env.example .env

Now fill in the .env file:

token=YOUR_DISCORD_BOT_TOKEN
CLIENT_ID=YOUR_CLIENT_ID
MONGO_URI=YOUR_MONGO_URI

# shard config (Default: 0)
SHARD_ID=0
GOOGLE_API_KEY=your_google_api_key
GOOGLE_CSE_ID=your_google_cse_id
SERPAPI_KEY=your_serpapi_key
OMDB_API_KEY=your_omdb_api_key
WOLFRAM_APP_ID=your_wolfram_app_id
GEMINI_API_KEY=your_gemini_api_key

4. Configure Settings

Copy the example settings file and configure it:

cp util/settings.json.example util/settings.json

Edit util/settings.json with your configuration:

{
    "logWebhook": ["CHANNEL_ID", "TOKEN"],        // Primary logging webhook
    "logWebhook2": ["CHANNEL_ID", "TOKEN"],       // Secondary logging webhook
    "reportWebhook": ["CHANNEL_ID", "TOKEN"],     // User reports webhook
    "suggestWebhook": ["CHANNEL_ID", "TOKEN"],    // Suggestions webhook
    "joinWebhook": ["CHANNEL_ID", "TOKEN"],       // Bot guild join events
    "leaveWebhook": ["CHANNEL_ID", "TOKEN"],      // Bot guild leave events
    "devs": ["USER_ID"],                          // Developer user IDs
    "testers": ["USER_ID"],                       // Beta tester user IDs
    "moderators": ["USER_ID"],                    // Bot moderator user IDs
    "event": "none",                              // Special event mode
    "debug": "false",                             // Debug mode (true/false)
    "prefix": ">",                                // Legacy prefix (if needed)
    "version": "1.1.0"                            // Bot version
}

Webhook URLs: To get webhook URLs, create a webhook in Discord and use the format:

  • Channel ID: The number after /webhooks/ in the webhook URL
  • Token: The string after the channel ID

Example: https://discord.com/api/webhooks/123456789/abcdefghijklmnop

  • Channel ID: 123456789
  • Token: abcdefghijklmnop

5. Start the Bot

npm run start

6. Deploy Commands

npm run deploy

πŸ“ Project Structure

waterfall/
 β”œβ”€ commands/
 β”‚   └─ prefix commands... # Disabled, can be enabled from /events/message.js
 β”œβ”€ slashCommands/
 β”‚   β”œβ”€ gen/
 β”‚   β”œβ”€ mod/
 β”‚   β”œβ”€ dev/
 β”‚   β”œβ”€ utility/
 β”‚   └─ bot/
 β”œβ”€ events/
 β”œβ”€ schemas/
 β”œβ”€ scripts/
 β”œβ”€ util/
 β”‚   β”œβ”€ i18n.js
 β”‚   β”œβ”€ settingsModule.js
 β”‚   β”œβ”€ settings.json
 β”‚   └─ ...
 β”œβ”€ bot.js
 β”œβ”€ shardManager.js
 β”œβ”€ generateCommands.js
 β”œβ”€ deploy-commands.js
 β”œβ”€ logger.js
 β”œβ”€ package.json
 β”œβ”€ hourlyWorker.js
 β”œβ”€ dailyWorker.js
 β”œβ”€ crowdin.yml
 └─ README.md

🌍 Translation (Crowdin)

We support community translations through Crowdin:

https://crowdin.com/project/waterfall/

If you'd like to contribute, join the project and help translate Waterfall into more languages!


🀝 Contributing

Contributions are welcome!
If you'd like to help:

  1. Fork the repo
  2. Create a feature branch
  3. Submit a pull request

For larger changes, open an issue or chat with us in the support server:

https://discord.gg/qD3yfKGk5g


❀️ Credits

Waterfall is developed and maintained by DevSiege Studios.

Special thanks to:

  • Community translators
  • Contributors who helped shape the codebase
  • Testers & early adopters
  • Our Discord community

πŸ“œ License

Waterfall is licensed under the GPL-3.0 license.
This means:

  • You may use, modify, and distribute Waterfall
  • You must disclose source if redistributed
  • You must keep the same license

Full license text is available in LICENSE.


πŸ’¬ Support & Community

Need help or want to discuss Waterfall?

Join our support server:

https://discord.gg/qD3yfKGk5g


🏁 Final Notes

Thank you for using or contributing to Waterfall!
If you enjoy the bot, consider starring the repository and sharing it with others.

  • DevSiege Studios

About

Everything you need to manage and enhance your Discord server! - from moderation and utilities to AI tools and integrations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors