# EpicInteractions

**EpicInteractions** is an addon that allows for creating interactive messages using Discord buttons and select menu&#x73;**.**

{% hint style="warning" %}
This addon requires [EpicActions](https://builtbybit.com/resources/olympus-utils-epicactions.50382/) to work properly!&#x20;
{% endhint %}

## Creating interactive messages

For creating interactive messages you need to setup a message with some button(s) or menu(s). To do that, you can use [EpicPresets](https://simonb50.gitbook.io/docs/olympus/epicpresets#message-components).\
While creating you will need to use unique `customId`s and write them down - that's what you need to make everything work.

### Making buttons work

To make working button, you need to open `buttons.yml` config file and create new button config object in the `buttons` list.

```yaml
name: # Button name
customId: # Button ID - unique + lowercase + no_spaces
actions: # Button actions - see below
reply: # Button reply - see below
```

`actions` is a list of actions config objects from [EpicActions](https://simonb50.gitbook.io/docs/olympus/epicactions#available-actions) to execute.\
`reply` is a config object for interaction response. [Click here for more info.](#interaction-replies)

### Making menus work

To make a working select menu, you need to open `menus.yml` config file and create new menu config object in the `menus` list.

```yaml
name: menu # Menu name
customId: # Menu ID - unique + lowercase + no_spaces
options: # Menu options
reply: # Button reply - see below
```

`options` is a list of select menu objects.\
`reply` is a config object for interaction response. [Click here for more info.](#interaction-replies)

Option config object format

```yaml
name: # Option value
actions: # Option actions
```

`name` is representing the value of option, which means that if options selected by user contain one with this value, all added `actions` will be executed.

### Interaction replies

For handling responses you need to select a preset from [EpicPresets](https://simonb50.gitbook.io/docs/olympus/epicaddons/epicpresets).

```yaml
preset: # Preset name
private: # Whenever the reply should be private
```


---

# 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://simonb50.gitbook.io/docs/olympus/epicaddons/epicinteractions.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.
