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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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