Embed customization guide for sten.wtf bots
An embed is the entire interface your users see. Most are written once and never read back. Here is a small set of rules that make them clearer, and a layout system that stops every channel looking like a different product.
Your bot's embeds are not decoration — for most of your users they are the product. Someone lands in a channel, reads one message, and either understands what to do or does not. Everything below is aimed at that one moment.
Hierarchy: title, then one instruction, then details
The single most common failure is an embed that puts everything at the same level of importance. A reader scanning it has no idea which part is the thing they are supposed to act on.
- Title— short and action-shaped. "Claim your account" beats "Account claim system v2".
- Description — exactly one primary instruction, in the first line. Not three. If there are genuinely three things, you have three embeds or a numbered list, not one paragraph.
- Fields — constraints, examples, edge cases, fallbacks. Everything the reader needs only if the first line did not apply to them.
A useful test: cover everything but the title and the first line of the description. Can someone still act correctly? If not, the important part is buried.
Buttons should say what they do
Discord buttons are the highest-signal element in the message and are routinely wasted on generic labels.
- Name the action, not the direction."Verify account" and "Open claim form" tell the reader what happens. "Continue" and "Next" do not.
- Keep the count low. Two obvious choices beat five plausible ones. Every extra button is another decision the reader has to make before doing anything.
- Match the wording to the text above.If the description says "claim" and the button says "redeem", the reader stops to work out whether those are the same thing. They will usually decide they are, but you have spent their attention on nothing.
- Use colour semantically. One primary action per message, destructive actions in red, everything else secondary. Colour that means something is worth more than colour that looks nice.
Build three layouts, not thirty embeds
The reason bots drift into looking unprofessional is that each embed gets written from scratch, in a different mood, on a different day. Colours wander, tone changes, some have footers and some do not.
Almost everything you need is covered by three reusable layouts:
- Action — the state where you are asking for something. Verification prompts, claim posts, confirmations. Brand colour, one primary button.
- Success — something worked. Green, the result stated plainly, and whatever the natural next step is.
- Error or retry— something did not work. Red or amber, a plain-language reason, and a specific recovery path. "Something went wrong" is not a reason.
Set these up once, reuse them everywhere, and your bot reads as one coherent product across every channel it posts in.
Consistency details that matter more than they sound
- One accent colour. Pick your brand colour and use it for every action embed. Reserve green and red for outcomes only.
- Footers for provenance, not filler.A footer is useful for "which bot posted this" and timestamps. It is not a place to continue the sentence.
- Respect field widths. Inline fields work well in twos and threes and wrap badly on mobile past that. Most of your users are on a phone.
- Thumbnails over full images. A full-width image pushes your buttons below the fold on mobile. Use one when the image is the content, a thumbnail otherwise.
Write for someone who has never seen your server
You know what your bot does. Your reader arrived thirty seconds ago from a link. Internal shorthand — command names, your own jargon for a flow, the nickname a feature picked up in your staff channel — reads as noise to them.
Say what will happen, in ordinary words, in the first line. Everything else is optional.
