Docs/Plugins

Autothreads plugin

Automatically start a thread on a matching message and post a customizable message inside it. Dashboard setup mirrors Autoreplies: the same match/limit controls, plus persist-level payload options (embeds, webhooks, link buttons, mention flags).

#Configuration

yaml
plugins:
  autothreads:
    enabled: true
    config:
      rules:
        - id: 1
          channel_id: "*"
          thread_name: "{user_display}"
          auto_archive_minutes: 1440
          response: "Let's keep this discussion here."
          trigger: contains
          match: "help"
          cooldown_seconds: 30

Grant can_add, can_remove, and can_list to a Dreamliner Role on the dashboard's Roles page (or /permissions role grant) — see permissions.md.

FieldDescription
rulesList of auto-thread rules
idUnique rule ID
channel_idChannel ID, or empty/* for all channels
thread_nameThread title (max 100). Supports {user}, {user_display}, {guild}, {channel}
auto_archive_minutesIdle archive: 60, 1440, 4320, or 10080
thread_slowmode_secondsOptional slowmode inside the new thread
responseOptional text posted in the thread (max 2000). Supports placeholders. Can be empty if an embed or buttons are set
triggerevery_message, contains, starts_with, exact, or regex
matchText/regex to match (required unless trigger is every_message). Regex is case-insensitive. Whole word: \bthread\b
every_nOnly create a thread on every Nth matching message
cooldown_secondsMinimum seconds between threads for this rule
attachments_onlyOnly messages with attachments
links_onlyOnly messages containing a link
embedSame embed options as persist (title, description, color, images, footer)
buttonsOptional link buttons (max 5)
webhookSend the thread message with a custom name/avatar (needs Manage Webhooks)
webhook_name / webhook_avatar_urlCustom webhook identity
silentSuppress notifications
suppress_embedsDon’t unfurl links in the text
mention_users / mention_roles / mention_everyoneAllowed mention types

#Commands

CommandPermissionDescription
/autothread addcan_addCreate a rule (message required; optional thread_name, channel, trigger, match, auto_archive)
/autothread removecan_removeRemove a rule by ID
/autothread listcan_listList all rules with IDs

Use the dashboard editor for embeds, webhooks, buttons, mention flags, and cadence filters.

#Behaviour

  • Listens in text and announcement channels. Messages already in a thread, bot/webhook messages, and messages that already have a thread are ignored.
  • Discord allows one thread per message, so the first matching rule that succeeds wins.
  • Webhook posts use a parent-channel webhook with threadId. If a webhook cannot be created, Dreamliner falls back to sending as the bot.

#Requirements

  • The bot needs Create Public Threads, Send Messages, and Send Messages in Threads in the target channel(s).
  • Webhook messages need Manage Webhooks. If a webhook cannot be created, Dreamliner falls back to sending as the bot.
  • Bot and webhook messages are ignored and will not trigger rules.