# Reactions

Sometimes you want to add a bit of a touch of personality, or even interactiveness with the user when responding to a message. Reactions are there for you! You can add any reaction you want to a message, for example, using interaction commands, you can do it this way:

```typescript
client.on("interactionCreate", async interaction => {
    if (!(interaction instanceof CommandInteraction)) return;
    if (interaction.data.name === "hi") {
        const message = await interaction.createMessage({ content: "Hi!" });
        await message.createReaction(90001206) // wave emoji;
    }
});
```

As easy as it sounds like, right?

But! If you have a message and want to remove a reaction from it, you can do it this way

```typescript
// We assume that you have a declared "message" constant in this scope
await message.deleteReaction(90001206) // removes the wave emoji;
```

Though, this only deletes the wave emoji **that has been added by your app.**

If you want to target a specific user and remove their reaction, you'll have to pass their user ID in method arguments.

```typescript
// We assume that you have a declared "message" constant in this scope
await message.deleteReaction(90001206, "their user id") // removes the wave emoji;
```

Like this :)

Overall, it is pretty easy to put and remove any reaction from a message! You can still do it manually by using REST, if you miss some information: not having a message instance.

By either, getting the message through REST with:

```typescript
client.rest.channels.getMessage(channelID, messageID);
```

and then performing your action on it, or, just performing it directly through REST:

```typescript
client.rest.channels.createReaction(
channelID, 
channelType, 
targetID,
reaction
);
```

```typescript
client.rest.channels.deleteReaction(
channelID, 
channelType, 
targetID,
reaction, 
targetUserID? (optional)
);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.touchguild.com/reactions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
