Passa al contenuto principale

Message Quotes

Automatically repost a Discord message as a rich quote whenever someone pastes its message link.

Citazioni dei messaggi
Cita un messaggio di Discord quando un utente incolla un link a un messaggio.
This module is open-source.
This module creates one top-level Slash-Command on your server.
This module has one configuration file.
This module is being actively used on over 100 other servers on SCNX.
This module is included for free in every plan. Learn more about prices.

Features

  • Detects Discord message links pasted into chat and reposts the linked message as a formatted quote.
  • Optional Quote Message action in Discord's Apps (right-click) menu, so users can quote a message without pasting its link.
  • Rendered quote can show the original author, nickname, avatar, channel, message content, a Discord timestamp, a link back to the original, and its first image.
  • Fully customizable quote message - build it as an embed or a generated image with parameters for every field.
  • Channel/category and role blacklists to keep quoting out of the places (and away from the people) you choose.
  • Toggles for ignoring bot messages, allowing self-quotes, replying to the trigger message, and deleting the trigger message.
  • Optional attachment quoting, re-uploading the linked message's files alongside the quote.
  • The quoted message's first image is archived to your server's file library, so quotes keep their image after Discord's CDN URLs expire.

Setup

  1. Enable the module on your server.
  2. Make sure the bot has the permissions View Channel, Send Messages, Read Message History and Embed Links in the channels where quoting should work. To use Delete trigger?, it also needs Manage Messages.
  3. Open the Configuration and adjust the blacklists, toggles and quote message to fit your server.

Usage

  • Once set up, a user simply pastes a link to another message (from the same server) into any non-blacklisted channel. The bot fetches the linked message and reposts it as a quote.
  • The linked message is only quoted if both the user who pasted the link and the bot can actually see it (they need View Channel and Read Message History in the source channel). Links pointing to another server are ignored.
  • Depending on your configuration, the quote is sent as a reply to the trigger message, and the trigger message may be deleted afterwards.
  • A short per-user cooldown prevents a single user from spamming quotes in quick succession.
  • Alternatively, users can right-click (or long-press) any message, open Apps, and choose Quote Message to post the quote without pasting a link. See Commands.

Permanent image archival

When a quote is rendered, the linked message's first image is uploaded to your server's file library and the quote is built against that permanent URL. This stops quotes from breaking once Discord's short-lived CDN URLs expire.

Archived images count against your server's file-storage quota. To opt out, enable Disable attachment archival in the bot's General Configuration; with archival disabled, quote images revert to Discord's expiring URLs and old quotes will eventually break again.

Commands

Understand the documentation
In these docs, name:<Type> is an option of a slash-command with name name and the type Type. Options that not required, are described as [name:<Type>]. If the action of a command is vastly different between required and not-required options, we might list them separately.
Examples
  • /moderate ban user:<Member>: This command (/moderate ban) has an required option with the name "user" that only accepts one member as a value.
  • /moderate ban victim:<Member> reason:<Text>: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value and another required option with the name "reason" that accepts any text as an value.
  • /moderate ban victim:<Member> reason:<Text> [proof:<Attachment>]: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value, another required option with the name "reason" that accepts any text as an value and a not-required option with the name "proof" which allows one attachment as its value.
CommandDescription
Quote MessageA message context-menu (Apps) action. Right-click or long-press a message and select it to repost that message as a quote.

The Quote Message action respects the same configuration as link-based quoting. If quoting is suppressed for the target (for example because Ignore bot messages? is on, or Allow Self-quotes? is off and you are quoting yourself), the bot replies privately (ephemerally) and posts nothing.

Configuration

Configure the message quoting system. Open it in your dashboard.

FieldDescription
Blacklist rolesRoles that are excluded from quoting. Members with a listed role cannot trigger a quote.
Blacklist channelsChannels that are excluded from quoting. Channels and categories are supported; a category excludes all its channels.
Attach files?Should all attachments be quoted? The linked message's files are re-uploaded alongside the quote. Deactivation recommended if "Message" components v2 are used.
Ignore bot messages?When enabled, messages sent by bots are not quoted.
Allow Self-quotes?Whether users can quote their own messages.
Reply to messages?Reply to the message that triggered the quote. Ignored when Delete trigger? is enabled.
Delete trigger?When enabled, the message that triggered the quote is deleted after the quote is posted. Requires the Manage Messages permission.
MessageThe message in which the quote is returned. Build it as an embed or a generated image; the available parameters (author, nickname, avatar, channel, timestamp, link, first image, content, and more) are listed in your dashboard.

Troubleshooting

Nothing happens when a message link is pasted
  • Make sure the module is enabled and the bot has View Channel, Send Messages, Read Message History and Embed Links in both the channel where the link is pasted and the channel the linked message lives in.
  • Make sure the channel (or its category) is not in Blacklist channels and the user does not have a role in Blacklist roles.
  • The linked message must be on the same server. Links to messages in other servers are ignored.
  • The user who pasted the link must be able to see the linked message themselves (View Channel and Read Message History in the source channel).
  • If you just quoted a message, wait a few seconds - a short per-user cooldown applies.
Bot messages are not being quoted
  • This is expected when Ignore bot messages? is enabled. Disable it to allow quoting bot messages.
The trigger message is not being deleted
  • Make sure Delete trigger? is enabled.
  • Ensure the bot has the Manage Messages permission in the channel where the link was pasted. Without it, the quote is still posted but the trigger message is left in place.
  • While Delete trigger? is enabled, Reply to messages? is ignored, since the message it would reply to is removed.
The "Quote Message" action says the message cannot be quoted
  • The target is likely suppressed by configuration - for example Ignore bot messages? is on and the target was sent by a bot, or Allow Self-quotes? is off and you are quoting your own message.
  • You also need permission to send messages in the current channel for the action to post the quote.
Old quotes lost their image
  • Discord's CDN URLs expire over time. Quote images are normally archived to your file library to prevent this.
  • If Disable attachment archival is enabled in the bot's General Configuration, quote images fall back to Discord's expiring URLs and will eventually break.

Stored data

This module does not persist any data in its own module database. Quotes are rendered and posted on the fly, and the short per-user cooldown is kept only in memory and reset when the bot restarts.

The one exception is image archival: when a quoted message's first image is archived, that image is stored in your server's file library (and counts against your file-storage quota) rather than in this module's database. Manage or remove those files from the file library in your dashboard.

Need more help?
Can't find what you're looking for? Our team is happy to help.