Skip to main content
Studio gives you a full suite of blocks for sending, editing, and reacting to Discord messages — from a plain text message in a channel to a richly formatted embed with interactive buttons. This page covers every message and embed block available in the block editor, along with helper value blocks for colors, timestamps, and mentions.

Simple Messages

Use these blocks to send, edit, or delete text messages in Discord channels or via direct message.

Send Message

erlc_bot_send_message — Send a plain text message to a channel.

Reply to Message

erlc_bot_reply_message — Reply to an existing message.

DM a User

erlc_bot_dm_user — Send a direct message to a server member.

Edit Message

erlc_bot_edit_message — Edit an existing message sent by the bot.

Deleting Messages

Delete Message

erlc_bot_delete_message — Delete a single message.

Bulk Delete Messages

erlc_bot_delete_messages — Delete multiple messages at once (up to Discord’s bulk-delete limit).

Publishing and Pinning

  • erlc_bot_publish_message — Cross-post a message from an announcement channel to all following channels. Inputs: MESSAGE_ID, CHANNEL_ID.
  • erlc_bot_pin_message — Pin or unpin a message. Inputs: MESSAGE_ID, CHANNEL_ID. Set the PINNED field to true to pin or false to unpin.

Fetching Messages

Use erlc_bot_fetch_message to retrieve a message and store its data for later blocks. Inputs: MESSAGE_ID, CHANNEL_ID. After fetching, read message properties with erlc_discord_bot_result_value by selecting a field from the dropdown:

Interaction Replies

When your automation is triggered by a slash command or button interaction, use these blocks to respond.
Interaction reply blocks only work inside a trigger that provides an interaction context, such as erlc_when_slash_command or erlc_when_discord_button. Using them outside of an interaction trigger will cause an error.
Use erlc_embed_send_hidden to send private confirmation messages after a user clicks a button or submits a modal — other members won’t see the response.

Reactions

Add or remove emoji reactions on messages.
  • erlc_bot_add_reaction — Add an emoji reaction to a message.
    • Inputs: EMOJI, MESSAGE_ID, CHANNEL_ID
  • erlc_bot_remove_reaction — Remove a specific user’s reaction from a message.
    • Inputs: EMOJI, MEMBER_ID, MESSAGE_ID, CHANNEL_ID
For the EMOJI input, use the emoji’s Unicode character for standard emoji (e.g., 👍) or the custom emoji format <:name:id> for server emoji.

Webhooks

Send messages and embeds through a Discord webhook URL without requiring the bot to be in the channel.
  • erlc_discord_webhook — Send a plain text message via webhook.
    • Inputs: URL (the webhook URL), CONTENT
  • erlc_embed_webhook — Send an embed via webhook. Connect embed component blocks to the BLOCKS statement input.
    • Inputs: URL, BLOCKS (statement)

Embeds

Embeds let you send richly formatted cards to Discord with titles, descriptions, fields, images, and interactive components. Studio supports both embed v2 and v1.

Sending Embeds

Send Embed

erlc_embed_send — Send an embed to a channel.

Reply with Embed

erlc_embed_reply — Reply to a message with an embed.

Ephemeral Embed

erlc_embed_send_hidden — Send an embed visible only to the invoking user.

Edit Embed

erlc_bot_edit_embed — Overwrite the embed on an existing bot message.

Embed Component Blocks

Place these blocks inside an embed’s BLOCKS statement input to build the embed’s content. Stack them in any order.
erlc_embed_field — Adds a name/value field to the embed.
erlc_embed_separator — Inserts a visual divider between sections.erlc_embed_card — Wraps a group of embed blocks inside a card container.
erlc_embed_button — Adds a clickable button to the embed.erlc_embed_link_button — A button that opens a URL when clicked.erlc_embed_select_menu — Adds a dropdown select menu to the embed.erlc_embed_select_option — An individual option inside a select menu.

Helper Value Blocks

Use these value blocks as inputs to message and embed blocks.

Colors

erlc_discord_rgb — Combine red, green, and blue channel values into a single color value for erlc_embed_color. Inputs: R, G, B (each 0–255)

Timestamps

erlc_discord_timestamp — Format a Unix timestamp as a Discord dynamic timestamp that updates in the user’s local timezone.

Text Formatting

  • erlc_discord_escape — Escapes markdown characters in a text value so they display literally. Input: TEXT

Mentions

Server Value Dropdowns

These blocks let you select a channel, role, or user from a dropdown populated with your server’s data, and output their ID as a value.

Example: Rich Embed with Title, Description, Color, and Button

The JSON below sends an embed to a channel with a title, description, a green accent color, and a primary-style button.
Chain embed component blocks using next.block to build up your embed content in sequence. The order of blocks determines the visual order of elements in the rendered embed.