Custom Embeds
Design rich, good-looking Discord messages — with images, fields and clickable buttons that hand out roles or open threads — without writing a line of JSON. Build from your dashboard or straight from Discord.
Custom Embeds is a visual builder for Discord's rich message format — the same style used for announcements, rules, and "click a button to get a role" posts. Build one on your dashboard, or run /message-setup in Discord for a step-by-step wizard — either way it saves to the same place, so an embed started on one can be finished on the other.
Rules Setup is a separate tool
The "Rules Setup" tab on the Custom Embeds page builds a different kind of message — a modern, sectioned rules post with an optional "Accept Rules" button — and it's kept deliberately separate from the embed builder below, with its own settings and its own storage.
Building an Embed
Open Custom Embeds → Create New on your dashboard, or run /message-setup and choose Setup Embed. Both walk through the same fields:
| Section | Field | Limit |
|---|---|---|
| Target | Channel to post in | Required |
| Ping @everyone when posted | Optional checkbox | |
| Content | Title | 256 characters |
| Description (Markdown supported) | Keep it under ~4,000 characters — Discord will reject anything longer when you post | |
| Sidebar color | Any hex color | |
| Fields | Name / value pairs, each optionally "Inline" | Up to 10 fields |
| Images | 1 thumbnail (small, top-right) + large images | Up to 4 large images — see callout below |
| Footer | Footer text + small footer icon | 2,048 characters |
| Buttons | Up to 5 buttons, each Primary/Secondary/Success/Danger styled, each with its own chain of actions | 80-character label |
How "4 large images" actually works
Discord only allows one large image per embed — so behind the scenes, each extra image you add becomes its own small colored strip stacked right underneath your main embed. Visually it reads as one message with several images; that's the trick making it possible.
Button actions
Each button can run a short chain of actions, in order, when clicked:
| Action | What it does |
|---|---|
| Add / Remove / Toggle Role | Grants, removes, or flips a chosen Discord role on the clicking member. |
| Wait | Pauses for a number of seconds before the next action in the chain runs. |
| Send Message | Posts a message — either publicly in the channel, or privately so only the clicker sees it. |
| Create Thread | Opens a private thread and adds the clicking member to it. |
Anyone who can see the posted message can click its buttons — the wizard that builds the embed is staff-only, but the buttons it produces are open to your whole server, which is exactly what you want for a self-service "get a role" message.
Editing, Reposting & Deleting
The My Embeds tab lists every embed you've built with its field and button counts, and flags any with a "⚠️ Not posted" badge if its live Discord message is missing. From there:
- Edit — change any field and save.
- Re-post — creates a brand new Discord message. Meant for recovering an embed whose message was deleted — using it while the original message still exists leaves both live at once.
- Delete — removes the live Discord message and the saved embed permanently.
Editing from the dashboard vs. from Discord behaves differently
Editing on the dashboard updates the live message in place — same message, new content — as long as you haven't changed its channel. Editing the same embed from /message-setup always deletes the old message and posts a fresh one instead, even if nothing about the channel changed. If the message being edited has pins or thread replies attached, prefer editing from the dashboard to keep it intact.
The /message-setup Command
/message-setup takes no options — running it opens a private hub with everything inside as buttons:
| Hub button | What it does |
|---|---|
| Setup Embed | Launches the step-by-step wizard described above. |
| Edit Embed | Lists your existing embeds (up to 25) and loads the one you pick back into the wizard. |
| View Embeds | A private list of every configured embed with its channel. |
| Remove Embed | Deletes an embed after a confirmation step. |
| Create / Edit / Remove Rules Message | Opens the separate Rules wizard (see below). |
The command itself is restricted to staff by default (anyone with the Manage Server permission, adjustable in Discord's own Integrations settings), and every button/menu inside it re-checks staff permissions again on each click.
Rules Setup
A companion tool for posting server rules as a modern, expandable message rather than a classic embed. Configure a channel, a title, an accent color, and up to 6 sections (each with its own heading and body text). You can optionally add an "Accept Rules" button that grants a role when clicked, and each section can have its own button that shows the clicker a private response. A "Load Preset Rules" option fills in a starter General / Discord / In-Game / Zorp rules skeleton you can edit from there.
Prerequisites & Good to Know
- RustyWorks must already be in your server with permission to send messages in the target channel — and Manage Roles too, if any button grants or removes a role.
- Any role used in a button action needs to sit below RustyWorks' own role in Server Settings → Roles, or the action will silently fail for that member.
- The "Ping @everyone" checkbox only adds the text — if the bot's role doesn't have permission to mention @everyone in that channel, the message posts but nobody actually gets pinged.
- Long descriptions or field values aren't length-checked as you type — if you go over Discord's real limits, you'll see a Discord error when you try to post rather than a warning in the editor.
- The step-by-step Discord wizard requires both a Title and a Description before it lets you continue; the dashboard only requires one or the other.
- Uploading an image directly (rather than pasting a URL) inside the Discord wizard works by DMing you a copy to get a permanent link — make sure your DMs are open to the bot when doing this.
Ready to build your first embed?
Start from your dashboard, or launch the wizard in Discord with /message-setup.