Plugin Enhancement: Welcome — custom image backgrounds, multi-channel, multi-role, social links
Enhance adb-plugin-welcome with custom image backgrounds, multi-channel support, multiple welcome messages per role, social media link display, and interactive onboarding.
Why
The welcome plugin already has beautiful image cards but lacks customization depth: servers want role-specific welcome messages, multi-channel setups (welcome + rules + info), social links on the card, and interactive onboarding buttons.
Spec
New Features:
1. Role-Based Welcome Messages
/welcome role <role> <channel> — Set a specific welcome channel for a role
/welcome role-message <role> <text> — Custom message per role
- Example: @New Member → welcome channel + rules link; @veteran → different message
- If no role match, use default welcome
- Multiple role messages supported, first match wins (ordered by role hierarchy)
2. Custom Image Backgrounds
/welcome background upload <image> — Upload custom welcome card background
/welcome background default — Restore default
/welcome background list — List uploaded backgrounds (up to 10 per server)
/welcome background set <id> [channel] — Set background per channel
/welcome background set <id> [role] — Set background per role
- Supported formats: PNG, JPG, GIF (animated GIF backgrounds if canvas supports it)
- Server-wide default background with per-role overrides
- Built-in background presets: Gradient Pack (10), Patterns (5), Gaming (5), Nature (5)
3. Multi-Channel Setup
- Welcome message → Channel A
- Goodbye message → Channel B
- DM welcome → DM
- Rules channel auto-link → separate message in rules channel
- Verification step → channel C with verify button
/welcome-channel add <type> <#channel> — Channel types: welcome, goodbye, rules, verify
/welcome-channel remove <type> — Remove channel binding
- Chain: New member → Welcome message + Rules link + Verify button → Role assignment
4. Social Media / Links Section
/welcome social discord <invite> — Display Discord invite on card
/welcome social youtube <url> — YouTube link
/welcome social twitter <handle> — X/Twitter handle
/welcome social website <url> — Website link
/welcome social github <url> — GitHub link
/welcome social twitch <url> — Twitch link
- Icons rendered on the welcome card as a footer bar
- Alternatively: buttons below the welcome embed
5. Interactive Onboarding
/welcome button add <label> <url> — Add a button to welcome message
/welcome button remove <label> — Remove a button
/welcome button list — List buttons
- Button types: Link button (to rules, website), Role button (click to get role)
- Example buttons: [📜 Rules] [🌐 Website] [🎮 Discord] [✅ Get Member Role]
6. Welcome Embed Enhancements
/welcome embed-color <hex> — Card accent color
/welcome embed-title <text> — Custom title (default: "Welcome, {user}!")
/welcome embed-description <text> — Extra text below the card
/welcome embed-footer <text> — Footer text
/welcome embed-thumbnail [server|user|custom] — Thumbnail choice
- Embed variables:
{user}, {user.name}, {server}, {memberCount}, {rulesChannel}
7. Welcome Stats
/welcome stats — Total welcomes, total goodbyes, active since date
/welcome stats today — Welcomes today
- Member milestone announcements: "You are the 1000th member! 🎉"
Config Schema Additions:
{
// Existing config preserved
// New:
"channels": {
"welcome": [],
"goodbye": null,
"rules": null,
"verify": null
},
"roleMessages": [
{ "roleId": "", "text": "", "channelId": "" }
],
"backgrounds": [
{ "id": "", "url": "", "uploadedBy": "" }
],
"defaultBackground": null,
"roleBackgrounds": {},
"social": {
"discord": "",
"youtube": "",
"twitter": "",
"website": "",
"github": "",
"twitch": ""
},
"buttons": [
{ "label": "", "url": "", "type": "link" | "role", "roleId": "" }
],
"embed": {
"color": "#FF69B4",
"title": "Welcome, {user}!",
"description": "",
"footer": "Member #{memberCount}",
"thumbnail": "user" // 'user' | 'server' | 'none'
}
}
Acceptance Criteria
Plugin Enhancement: Welcome — custom image backgrounds, multi-channel, multi-role, social links
Enhance
adb-plugin-welcomewith custom image backgrounds, multi-channel support, multiple welcome messages per role, social media link display, and interactive onboarding.Why
The welcome plugin already has beautiful image cards but lacks customization depth: servers want role-specific welcome messages, multi-channel setups (welcome + rules + info), social links on the card, and interactive onboarding buttons.
Spec
New Features:
1. Role-Based Welcome Messages
/welcome role <role> <channel>— Set a specific welcome channel for a role/welcome role-message <role> <text>— Custom message per role2. Custom Image Backgrounds
/welcome background upload <image>— Upload custom welcome card background/welcome background default— Restore default/welcome background list— List uploaded backgrounds (up to 10 per server)/welcome background set <id> [channel]— Set background per channel/welcome background set <id> [role]— Set background per role3. Multi-Channel Setup
/welcome-channel add <type> <#channel>— Channel types: welcome, goodbye, rules, verify/welcome-channel remove <type>— Remove channel binding4. Social Media / Links Section
/welcome social discord <invite>— Display Discord invite on card/welcome social youtube <url>— YouTube link/welcome social twitter <handle>— X/Twitter handle/welcome social website <url>— Website link/welcome social github <url>— GitHub link/welcome social twitch <url>— Twitch link5. Interactive Onboarding
/welcome button add <label> <url>— Add a button to welcome message/welcome button remove <label>— Remove a button/welcome button list— List buttons6. Welcome Embed Enhancements
/welcome embed-color <hex>— Card accent color/welcome embed-title <text>— Custom title (default: "Welcome, {user}!")/welcome embed-description <text>— Extra text below the card/welcome embed-footer <text>— Footer text/welcome embed-thumbnail [server|user|custom]— Thumbnail choice{user},{user.name},{server},{memberCount},{rulesChannel}7. Welcome Stats
/welcome stats— Total welcomes, total goodbyes, active since date/welcome stats today— Welcomes todayConfig Schema Additions:
Acceptance Criteria