Open Source · GPLv3

Zentrynel

An open-source Discord moderation bot for open-source communities. Protect your contributors and maintainers with slash commands, automatic escalation, member verification, and per-server configuration.

Bun discord.js v14 TypeScript SQLite

Features

Community-controlled moderation tools for safe, welcoming open-source Discord communities.

⚖️

Escalating Strike System

Warnings automatically escalate based on configurable thresholds: auto-mute at 3, auto-kick at 5, and auto-ban at 7. Customize per server.

🔐

Two-Layer Verification

In-server button + challenge flow with automatic checks and a moderator review fallback queue. No DMs required.

🍯

Verification Honeypot

Protect the verification channel by deleting posts, warning the member, and permanently banning repeat posts within 24 hours.

🛡️

Verification Auto-Kick

Automatically remove members who do not complete verification within your configured timeout, while preserving moderator control through role and permission checks.

🏷️

On-Join Role

Automatically assign a role to every new member when they join. Independent of verification, it works alongside or without it.

🚫

DM & Invite Disabler

Disable member-to-member DMs and invite creation server-wide. Auto-extends every 12 hours to stay permanent.

⚙️

Per-Server Config

Each server gets independent settings, log channels, strike history, and thresholds. Full control via /config.

🌐

Sharding-Ready

Separate shard manager and client entry points. Scales effortlessly to thousands of servers without code changes.

Automatic Escalation

Warnings stack up. Consequences follow automatically.

3
warnings
Auto-Mute
5
warnings
Auto-Kick
7
warnings
Auto-Ban

Defaults shown. Customize thresholds per server with /config thresholds

Commands

Powerful slash commands for every moderation need.

Moderation

/warn <user> [reason] Moderate Members

Issue a warning

/mute <user> [duration] [reason] Moderate Members

Timeout a user

/kick <user> [reason] Kick Members

Kick a user

/ban <user> [reason] [delete_messages] Ban Members

Ban a user

/purge <amount> [user] Manage Messages

Bulk delete messages

/warnings <user> Moderate Members

View active warnings

/approve <user> [reason] Moderate Members

Manually approve a member's verification

/version Everyone

Show the current Zentrynel version

Configuration

/config view Administrator

View server settings

/config logchannel <channel> Administrator

Set mod log channel

/config thresholds [mute] [kick] [ban] Administrator

Set strike thresholds

/config muteduration <duration> Administrator

Set default mute duration

/config onjoinrole [role] Administrator

Set or clear on-join role

/config verificationhoneypot <enabled> Administrator

Enable or disable verification-channel honeypot

/config verificationkick [timeout] Administrator

Auto-kick members who do not complete verification

/config reset Administrator

Reset to defaults

Quick Setup

Get Zentrynel running in your server in minutes.

1

Invite the Bot

Add Zentrynel to your Discord server with the required permissions.

Invite Zentrynel
2

Set a Log Channel

Configure where moderation actions are logged.

/config logchannel #mod-logs
3

Customize Thresholds

Adjust the escalation thresholds to fit your community.

/config thresholds mute:3 kick:5 ban:7
4

Start Moderating

Use slash commands to warn, mute, kick, or ban members. The bot handles escalation automatically.

Set Up Member Verification

Use a self-service verification channel and a private review channel to protect your community without relying on DMs.

Before you begin: Create Verified and Unverified roles, then place Zentrynel's role above both roles in Discord's role list.
  1. 1

    Create Two Text Channels

    Create a member-facing verification channel and a review channel. In the review channel, deny View Channel to @everyone, then grant access to your moderator roles and Zentrynel.

  2. 2

    Enable Verification

    Turn on the verification flow for your server.

    /config verificationenable enabled:true
  3. 3

    Choose the Channels

    Set the text channel where members verify and the channel where moderators review requests.

    /config verificationchannels verify:#verification review:#verification-review
  4. 4

    Assign Verification Roles

    Choose the role granted after approval and the role assigned while a member is pending verification.

    /config verificationroles verified:@Verified unverified:@Unverified
  5. 5

    Configure Verification Rules

    Optionally set a minimum account age and maximum automated challenge attempts.

    /config verificationrules minage:24h maxattempts:3
  6. 6

    Add Safety Timeouts

    Optionally remove members who never verify and expire reviews that moderators do not resolve. The verification auto-kick runs periodically and checks the bot's permissions and role hierarchy before taking action.

    /config verificationkick timeout:1h /config manualreviewtimeout timeout:3d
  7. 7

    Post the Verification Panel

    Post the Start Verification button in the configured verification channel.

    /config verificationpanel

Self-Host It

Zentrynel is fully open-source. Run your own instance and keep moderation in your community's control.

Terminal
# Clone and install
git clone https://github.com/wgtechlabs/zentrynel.git
cd zentrynel
bun install

# Configure
cp .env.example .env
# Edit .env with your bot token and client ID

# Register commands and start
bun run build
bun run register
bun run start

One-Click Deploy

Deploy instantly to Railway with zero configuration.

Deploy on Railway
License GPLv3
Runtime Node.js ≥ 22
Database SQLite (swappable)