Skip to content

Plugin Enhancement: Welcome — custom backgrounds, role-based messages, social links, onboarding buttons #37

Description

@DeadIndian

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

  • Role-specific welcome channels and messages
  • Custom image background upload per server/role
  • Multi-channel welcome flow (welcome + rules + verify)
  • Social media links on welcome card or as buttons
  • Interactive buttons on welcome message (link + role buttons)
  • Customizable embed colors, titles, footers
  • Welcome stats and milestone detection

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin-enhancementEnhancement to an existing plugin (add features, improve UX)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions