> For the complete documentation index, see [llms.txt](https://docs.homebots.live/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.homebots.live/modules/triggers-and-quotes.md).

# Triggers & Quotes

You can set a message as a trigger and give it a keyword, and whenever someone says that keyword, the bot will send the message you set.

If you don't want accidental triggers, you can opt for a quote instead! To trigger a quote message, your message must begin with `...` and followed by the keyword.

{% hint style="success" %}
**Example:** A quote with the keyword `elysian` can be triggered like so: `... elysian`
{% endhint %}

You can build a quote or trigger message through the built-in embed builder, which offers incredible customizability, or format a message through [Discohook](https://discohook.org/) and set it as a trigger through the [`Add as a Quote/Trigger`](#add-as-a-quote-trigger-message-app) message app.

{% hint style="info" %}
Quotes and triggers have a global cooldown of **5 seconds** per quote/trigger.
{% endhint %}

***

### Add as a Quote/Trigger ([Message App](/configuration/message-apps.md))

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this message app.
{% endhint %}

*Sets the message you selected as a trigger or quote. A GUI will popup which will require you to enter the keyword and define whether it's a trigger or a quote.*

If the message selected has multiple embeds, the bot will only save the first.

{% hint style="info" %}

#### Text Replacements & Nadeko Embeds

For Nadeko embeds with text replacements, do the following:

1. Create a message on [Nadeko's Embed Visualizer](https://eb.nadeko.bot/) and use one of the [supported text replacements](#supported-text-replacements).
2. Use Nadeko's `.say` command and paste in the code.
3. Use this message app to add it as a quote/trigger.&#x20;

\
Alternatively, you can use [Discohook](https://discohook.org/) with the [supported text replacements](#supported-text-replacements), and then use this message app to add it as a quote/trigger.
{% endhint %}

{% hint style="info" %}

#### Supported Text Replacements

`$user.mention$` — the user's mention

`$user.name$` — the user's name
{% endhint %}

***

### Add Trigger (`/triggers add`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*Add a new message trigger.*

**`keyword`**: The keyword of the trigger.

**`content`**: The message body of the trigger message.&#x20;

**`hex_color`**: The hex code of the trigger message's embed color.

**`author`**: The author name of the trigger message's embed.&#x20;

**`author_icon`**: The author icon image of the trigger message's embed. Must use `author`.

**`title`**: The title of the trigger message's embed.

**`title_url`**: The title URL of the trigger message's embed. Must use `title`.

**`description`**: The description of the trigger message's embed.&#x20;

**`thumbnail`**: The thumbnail image of the trigger message's embed.

**`image`**: The image of the trigger message's embed.

**`footer`**: The footer text of the trigger message's embed.

**`footer_icon`**: The footer icon image of the trigger message's embed.

{% hint style="info" %}
**Restrictions:**

* Keyword cannot have a space.
* All parameters are optional, however, you must use at least one of the following:
  * `content`
  * `title`
  * `description`
  * `author`
  * `image`
    {% endhint %}

***

### Delete Trigger (`/triggers delete`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*Delete an existing message trigger.*

**`id`**: The ID of the trigger to be deleted. This can be found in [**`/triggers list`**](#list-triggers-triggers-list).

***

### List Triggers (`/triggers list`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*List all message triggers and their IDs.*

***

### Add Quote (`/quotes add`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*Add a new quote.*

**`keyword`**: The keyword of the quote.

**`content`**: The message body of the quote message.&#x20;

**`hex_color`**: The hex code of the quote message's embed color.

**`author`**: The author name of the quote message's embed.&#x20;

**`author_icon`**: The author icon image of the quote message's embed. Must use `author`.

**`title`**: The title of the quote message's embed.

**`title_url`**: The title URL of the quote message's embed. Must use `title`.

**`description`**: The description of the quote message's embed.&#x20;

**`thumbnail`**: The thumbnail image of the quote message's embed.

**`image`**: The image of the quote message's embed.

**`footer`**: The footer text of the quote message's embed.

**`footer_icon`**: The footer icon image of the quote message's embed.

**`quote_identifier`**: Whether to display the quote identifier in the message.

{% hint style="info" %}
**Restrictions:**

* Keyword cannot have a space.
* All parameters are optional, however, you must use one of the following:
  * `content`
  * `title`
  * `description`
  * `author`
  * `image`
    {% endhint %}

***

### Toggle Quote Identifier (`/quotes toggle_identifier`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*Delete an existing quote.*

**`id`**: The ID of the quote whose identifier display to be toggled. This can be found in [**`/quotes list`**](#list-quotes-quotes-list).

**`state`**: Whether to enable or disable the display of the quote identifier.

***

### Delete Quote (`/quotes delete`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*Delete an existing quote.*

**`id`**: The ID of the quote to be deleted. This can be found in [**`/quotes list`**](#list-quotes-quotes-list).

***

### List Quotes (`/quotes list`)

{% hint style="warning" %}
By default, only members with the **Administration** permission can use this command.
{% endhint %}

*List all quotes and their IDs.*
