This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Welcome
Handles welcome and leave messages, verification with CAPTCHA, and raid protection.
Modes: Banner · Embed · Text
Both join (welcome) and leave messages support three modes with identical configuration:
| Mode | Description |
|---|---|
banner (Default) |
Canvas-rendered image (900×300), custom colors, optional background |
embed |
Fully configurable Discord embed (author, thumbnail, footer, fields, timestamp) |
text |
Simple text post |
In configs/modules/welcome.yml:
join:
enabled: true
mode: banner # banner | embed | text
channel: "CHANNEL_ID"
banner:
backgroundColor: "#1a1a2e"
accentColor: "#ff6b35"
textColor: "#ffffff"
backgroundUrl: "" # Optional: custom background image (https://...)
# Cover-fit — any aspect ratio works
leave:
enabled: true
mode: banner # banner | embed | text
channel: "CHANNEL_ID"
banner:
subText: "Goodbye!"
backgroundColor: "#2a1010"
accentColor: "#ff3333"
textColor: "#ffffff"
Banner default size is 900×300. Custom background images are fitted with cover-fit — the aspect ratio does not need to match.
Verification
Flow:
- New member joins → gets the
unverifiedrole (can only see #verify) - Bot pings them briefly in #verify (auto-deletes after 10 sec)
- User clicks 📋 Verify
- Bot sends a CAPTCHA via DM (math problem or image CAPTCHA)
- Correct answer →
unverifiedrole removed,memberrole added
If DMs are disabled: Bot shows instructions on how to enable DMs.
3 failed attempts → User is automatically kicked.
Verify Panel with Full Embed Schema Support
The verify panel is no longer a simple title/description embed — it supports the full embed schema:
verification:
enabled: true
channelId: "CHANNEL_ID"
embed:
title: "Verification"
description: |
Welcome to the server! Please verify yourself:
1. Click **Verify** below
2. You will receive a CAPTCHA via DM
3. Reply with the solution
color: "#5865F2"
author:
name: "Minetechworld"
iconUrl: "https://..."
thumbnail: "https://..."
footer:
text: "GrumpyCore"
iconUrl: "https://..."
timestamp: false
fields: []
buttonLabel: "Verify"
buttonEmoji: "📋"
Auto-Deployment
On bot start, the verify panel is automatically posted to the configured channel. The bot tracks the message ID in the database (WelcomeState). If the panel is manually deleted, the bot posts a new one on the next start. To redeploy manually: /welcome setup-verify.
Anti-Alt Account Check
New members are checked for suspiciously young account age. Accounts below the minimum are kicked and receive a DM explaining why.
verification:
minAccountAgeDays: 7 # 0 = disabled
Raid Protection
During a mass join event, the module detects the unusual activity.
raidProtection:
enabled: true
joinThreshold: 10 # Joins to trigger an alert
windowSeconds: 10 # Time window
action: "kick" # "kick" or "alert"
To end lockdown manually: /welcome clear-lockdown.
Preview Commands
| Command | Function |
|---|---|
/welcome preview |
Preview your own welcome banner / embed / text |
/welcome preview-leave |
Preview a leave message with your own name |
/welcome preview-verify |
Preview the verify embed + button |
/welcome preview-captcha |
Example image CAPTCHA with solution |
Permission: Manage Server
→ See also Preview-Commands
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
💬 Commands
👥 Staff