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

# Dropdown menus

> Build a role picker with a dropdown menu, holding up to 125 roles with labels and descriptions.

A dropdown menu is a message with a role picker attached. It holds far more roles than reactions do, shows a label and description for each, and can be set to one role at a time or as many as the member wants.

<Info>
  This command needs **Manage Roles**, and Bloom needs Manage Roles too.
</Info>

## Building one

Run `!dropdownroles create #roles` and Bloom walks you through four steps in the channel you ran it from. Type `cancel` at any step to stop.

<Steps>
  <Step title="Message">
    The text or embed shown above the menu, written in the [embed format](/reference/embeds). Type `skip` for a bare menu with no message.
  </Step>

  <Step title="Options">
    One role per line:

    ```text theme={null}
    💛 | Events | @Events
    🎮 | Gaming | @Gaming | Get pinged for game nights
    ```

    The fourth part is an optional description. Up to **125** options, spread over five menus of 25. Bloom tells you if it had to skip a line.
  </Step>

  <Step title="Settings">
    Optional, one per line. `placeholder: Choose your roles` sets the text on the closed menu, and `mode: single` limits members to one role at a time. Type `skip` for the defaults, which are multi-select and "Select roles".
  </Step>

  <Step title="Delivery">
    Choose **Send as Bot**, or **Send via Webhook** to post it under your server's own name and icon.
  </Step>
</Steps>

## Managing your menus

<ParamField path="dropdownroles <create|edit|delete|list|info|refresh> [#channel]" type="Manage Roles">
  Aliases: `dr`, `selectroles`, `dropdown`.

  * `!dropdownroles list` shows every menu in the server.
  * `!dropdownroles info` shows one menu's options.
  * `!dropdownroles edit` changes an existing menu's options.
  * `!dropdownroles delete #roles` removes the menus in a channel.
  * `!dropdownroles refresh` rebuilds menus after roles have changed.
</ParamField>

<Warning>
  Every role in the menu must sit below Bloom's own highest role. A role above it is skipped when the menu is built, or silently fails to apply if it is moved up later.
</Warning>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Some of my options were skipped">
    Bloom reports the lines it could not use. The usual causes are a role it cannot find, an emoji it cannot post, or a role ranked above its own.
  </Accordion>

  <Accordion title="Selecting a role does nothing">
    Check Bloom's role is still above the roles in the menu, then run `!dropdownroles refresh`. A role that was deleted and recreated has a new ID and needs the menu edited.
  </Accordion>

  <Accordion title="I need more than 125 roles">
    That is the ceiling for one message, being 25 options across five menus. Split them across several messages, grouped by theme.
  </Accordion>

  <Accordion title="The setup stopped part way">
    Each step waits for your reply and then gives up. Run `!dropdownroles create` again to start over. Nothing is saved until the last step.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Reaction roles" icon="face-smile" href="/configuration/roles/reaction-roles">
    A quicker option for a handful of roles.
  </Card>

  <Card title="Embed syntax" icon="code" href="/reference/embeds">
    The format for the message above the menu.
  </Card>

  <Card title="Managing roles" icon="user-gear" href="/configuration/roles/managing-roles">
    Create the roles before you list them.
  </Card>

  <Card title="Autoroles" icon="user-plus" href="/configuration/roles/autoroles">
    Roles given automatically on join.
  </Card>
</CardGroup>
