Skip to content

swagdotsh/zekbot420

Repository files navigation

6ce517a4d6c725cd1b7cb51a4e4a1465

zekbot420

Learn more at: zekbot420.swagrelated.com


GitHub Issues or Pull Requests GitHub Repo stars GitHub repo size GitHub License GitHub top language GitHub commit activity GitHub contributors

Your favorite Discord bot's open-source alternative.


Features

Moderation

  • Ban / unban
  • Kick
  • Timeout / untimeout
  • Clear messages
  • Warn system (warn, unwarn, list warnings)
  • Jail system
  • Sticky roles system

Leveling

  • Leveling system
  • Leaderboards
  • Configurable XP system
  • Role rewards

Utility & Info

  • Ping / uptime
  • Avatar lookup
  • Polls
  • Help command
  • Basic server/user info
  • Translation (translate messages and text to almost any language)
  • Emoji fetcher

Logging

  • Logs support (stores moderation actions)
  • Welcome setup + welcoming messages
  • “Snipe” / “clearsnipe” style message recall

Integrations

  • Last.fm login and commands (optional; requires API key)
  • Fortnite item shop and player stats (optional; requires fnbr.co and fortnite-api API keys, respectively)
  • Rainbow Six Siege stats (optional; requires r6data.eu API key)

Voice

Audio playback

  • Audio file playback in VC
  • Info to see sample rate, bitrate, etc. of currently playing track
  • Queue system
  • Skip, stop, pause, resume controls
  • SoundCloud & YouTube support

VoiceMaster

  • Setup a "Join to Create" voice channel system
  • Lock/unlock voice channels, kick users from channels, rename channels
  • Usable by any server member

Downloading


Requirements

  • Node.js (recommended: current LTS)
  • npm (comes with Node.js)
  • A Discord application + bot token
  • Permissions to add a bot to a server (usually a role with Manage Server, or you can create a test server)

Optional (depending on your use case)

  • yt-dlp (for video downloading features)
  • Neon (or any postgres-compatible database)
  • ffmpeg (required for audio playback in voice channel features, installs with npm install during install)
  • Last.fm API key (for Last.fm integration features)

Setting Up

If you're interested in hosting your own version of zekbot420, visit the Getting Started wiki page. Everything you'll need to know is there from preresiquites to cloning the repo, installing packages and making the bot live is there.

If that's all good to go, read the Configuration page to learn how to set up modify zekbot420.

Running the bot

Simply head to your project root and, in your terminal, run:

node index.js

Or, if you prefer a package script (if present in package.json):

npm run start

Data & Persistence

Some features store data locally (for example: warnings/modlog/Last.fm configuration/audio files) and others on a PostgresSQL-database. For the local data, you’ll see data files under the data/ directory.

Caution

Keep this folder on .gitignore to avoid accidentally committing sensitive data.


Project Structure

  • index.js — bot entry point
  • commands/ — message/prefix style commands (organized by category)
  • slashCommands/ — slash command handlers/definitions
  • welcoming.js / welcomesetup.js — welcoming flow
  • storesnipe.js / snipe.js — message snipe support
  • deploy-commands.js — registers slash commands with Discord
  • data/ — local storage (warnings, modlog, downloads, audio)
  • events/ — handlers for leveling XP (text, voice) & jail timing
  • stickyrolesDbHandler.js — Postgres database handler for sticky roles
  • stickyrolesHandler.js — primary sticky roles manager
  • jailHandler.js — Postgres database and primary manager for the jail system
  • leveling.js — Postgres database and primary manager for the leveling system

Common Issues

Bot starts but commands don’t work

  • Confirm the bot is invited with the right scopes/permissions:
    • bot
    • applications.commands (for slash commands)
  • Re-run command deployment:
node deploy-commands.js

If your instance of zekbot420 is in mutliple servers, add a global at the end for it to deploy everywhere your bot is added.

node deploy-commands.js global

“Missing Access” / permission errors

  • Ensure the bot role is high enough in the server role hierarchy
  • Ensure the bot has permission to manage messages/moderate members where needed

Intents-related issues

  • Make sure the required Gateway Intents are enabled in the Discord Developer Portal for your bot (and configured in code if applicable)

Support

If you have issues that aren't listed here or just have general questions, visit the bot's support page.


Contributing

Contributions are welcome—bug fixes, new commands, improvements to docs, etc.

Suggested workflow:

  1. Fork the repo
  2. Create a feature branch
  3. Make changes
  4. Open a PR with a clear description and testing notes

License

This project is licensed under the MIT license.


About

Your favorite Discord bot's open-source alternative.

Topics

Resources

License

Stars

Watchers

Forks

Contributors