> ## Documentation Index
> Fetch the complete documentation index at: https://docs.haunt.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Reaction

> Create a trigger to automatically respond to a specific message.

<Note>Haunt's prefix is set to `;` by default.</Note>
<Info>Use `;prefix set [character]`to change the prefix for your server.</Info>

## Creating a new reaction

Get started by using the `reaction create` command.

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction create (emoji) (message) [{flags}]
  ```

  ```javascript Example theme={null}
  ;reaction create 🔥 haunt
  ```

  ```javascript Flags theme={null}
  ;reaction create 🔥 haunt {loose}
  ```
</CodeGroup>

<br />

<Frame>
  <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/create.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=d03d170250430434a8ea323d4b938bc9" width="656" height="279" data-path="images/configuration/messages/reaction/create.png" />
</Frame>

### What flags can I use with reactions

Here are the flags that are available for creating reactions

<AccordionGroup>
  <Accordion title="Loose Match">
    The `{loose}` flag will search for the trigger anywhere in the message.<br />
    As an example, If the message is `zay`, **Haunt** will react to `zay is funny`.
  </Accordion>
</AccordionGroup>

## Delete an existing reaction

Delete an existing reaction by using the `reaction delete` command.

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction delete (message)
  ```

  ```javascript Example theme={null}
  ;reaction delete zay
  ```
</CodeGroup>

<br />

<Frame>
  <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/delete.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=a1a6bb0e496633700ddd291a75bf119f" width="553" height="164" data-path="images/configuration/messages/reaction/delete.png" />
</Frame>

## View every existing reaction

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction view
  ```

  ```javascript Example theme={null}
  ;reaction view
  ```
</CodeGroup>

## Remove every existing reaction

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction clear
  ```

  ```javascript Example theme={null}
  ;reaction clear
  ```
</CodeGroup>

## Update an existing reaction

Here are the following subcommands to update settings for a reaction.

<AccordionGroup>
  <Accordion title="Message">
    This command will update the message which triggers the reaction.<br />
    <Warning>The **message** and the **new message** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction update message (message), (new message)
      ```

      ```javascript Example theme={null}
      ;reaction update message hi zay, hello zay
      ```
    </CodeGroup>

    <Frame>
      <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/update-message.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=31654a96d155e84678060975f7471bf5" width="572" height="263" data-path="images/configuration/messages/reaction/update-message.png" />
    </Frame>
  </Accordion>

  <Accordion title="Emoji">
    This command will update the reaction that sends when it's triggered.<br />
    <Warning>The **message** and the **reaction** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction update reaction (message), (reaction)
      ```

      ```javascript Example theme={null}
      ;reaction update reaction hi zay, shut up
      ```
    </CodeGroup>

    <Frame>
      <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/update-reaction.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=6aed978711e41c3dc9b96d23178376d8" width="629" height="259" data-path="images/configuration/messages/reaction/update-reaction.png" />
    </Frame>
  </Accordion>

  <Accordion title="Loose">
    This command updates the loose setting for the reaction.<br />
    <Warning>The **message** and the **choice** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction update loose (message), (choice)
      ```

      ```javascript Example theme={null}
      ;reaction update loose hi zay, false
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Cooldown">
    This command updates the cooldown setting for the reaction.<br />
    <Warning>The **message** and the **duration** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction update cooldown (message), (duration)
      ```

      ```javascript Example theme={null}
      ;reaction update cooldown hi zay, 5 minutes
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Match">
    This command updates the match setting for the message.<br />
    <Warning>The **message** and the **match** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction update match (message), (start|exact|end)
      ```

      ```javascript Example theme={null}
      ;reaction update match hi zay, start
      ```
    </CodeGroup>

    Start means the message trigger has to be at the start of the message.<br />

    <Frame>
      <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/start.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=f7b2dac31a6e0cbb431626c5c6613012" width="505" height="268" data-path="images/configuration/messages/reaction/start.png" />
    </Frame>

    Exact makes the message trigger work as normal.<br />

    <Frame>
      <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/exact.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=b949bd1e66294fbd52cf78045535730b" width="558" height="258" data-path="images/configuration/messages/reaction/exact.png" />
    </Frame>

    End means the message trigger has to be at the end of the message.

    <Frame>
      <img src="https://mintcdn.com/haunt-74016d1b/uS4T0jDUK0yJ0_op/images/configuration/messages/reaction/end.png?fit=max&auto=format&n=uS4T0jDUK0yJ0_op&q=85&s=fd55bbf6774428e8153fe5fe7f0864dc" width="504" height="259" data-path="images/configuration/messages/reaction/end.png" />
    </Frame>
  </Accordion>
</AccordionGroup>

## Restrict a reaction to a role

Start by using the `reaction role` command.

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction role add (message), (role)
  ```

  ```javascript Example theme={null}
  ;reaction role add hi zay, @haunt
  ```
</CodeGroup>

<AccordionGroup>
  <Accordion title="Remove a reaction from a restricted role">
    <Warning>The **message** and the **role** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction role remove (message), (role)
      ```

      ```javascript Example theme={null}
      ;reaction role remove hi zay, @haunt
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="View the reactions restricted to roles">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction role view
      ```

      ```javascript Example theme={null}
      ;reaction role view
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Clear every reaction restricted to a role">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction role clear
      ```

      ```javascript Example theme={null}
      ;reaction role clear
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

## Restrict a reaction to a channel

Start by using the `reaction channel` command.

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction channel add (message), (channel)
  ```

  ```javascript Example theme={null}
  ;reaction channel add hi zay, #commands
  ```
</CodeGroup>

<AccordionGroup>
  <Accordion title="Remove a reaction from a restricted channel">
    <Warning>The **message** and the **channel** must be separated with a **comma** (`,`).</Warning>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction channel remove (message), (channel)
      ```

      ```javascript Example theme={null}
      ;reaction channel remove hi zay, #commands
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="View the reactions restricted to channels">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction channel view
      ```

      ```javascript Example theme={null}
      ;reaction channel view
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Clear every reaction restricted to a channel">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction channel clear
      ```

      ```javascript Example theme={null}
      ;reaction channel clear
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

## What else can I do?

You can also entirely ignore a `member`, `role` or `channel` from triggering reactions.<br />

### Ignore a member

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction ignore (member)
  ```

  ```javascript Example theme={null}
  ;reaction ignore @bhisa
  ```
</CodeGroup>

<AccordionGroup>
  <Accordion title="Remove a member from being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore remove (member)
      ```

      ```javascript Example theme={null}
      ;reaction ignore remove @bhisa
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="View every member being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore view
      ```

      ```javascript Example theme={null}
      ;reaction ignore view
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Clear every member being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore clear
      ```

      ```javascript Example theme={null}
      ;reaction ignore clear
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

### Ignore a role

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction ignore role (role)
  ```

  ```javascript Example theme={null}
  ;reaction ignore role @haunt
  ```
</CodeGroup>

<AccordionGroup>
  <Accordion title="Remove a role from being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore role remove (role)
      ```

      ```javascript Example theme={null}
      ;reaction ignore role remove @haunt
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="View every role being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore role view
      ```

      ```javascript Example theme={null}
      ;reaction ignore role view
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Clear every role being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore role clear
      ```

      ```javascript Example theme={null}
      ;reaction ignore role clear
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

### Ignore a channel

<CodeGroup>
  ```javascript Syntax theme={null}
  ;reaction ignore channel (channel)
  ```

  ```javascript Example theme={null}
  ;reaction ignore channel #general
  ```
</CodeGroup>

<AccordionGroup>
  <Accordion title="Remove a channel from being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore channel remove (channel)
      ```

      ```javascript Example theme={null}
      ;reaction ignore channel remove #general
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="View every channel being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore channel view
      ```

      ```javascript Example theme={null}
      ;reaction ignore channel view
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Clear every channel being ignored">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ;reaction ignore channel clear
      ```

      ```javascript Example theme={null}
      ;reaction ignore channel clear
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>
