Custom Commands homeCustom Commands
  • Blog
  • Premium
  • Templates
  • Support
Back to blog
// blog

Generated images in Discord: rank cards, welcome cards and anything else

Design a layout once, and the bot renders it fresh for each member with their avatar and their numbers. How image templates work and where they pay off.

Md Shahriyar Alam

15 minutes ago

·3 min read

Text does a lot in Discord, and then you see a server posting a proper card with the member's avatar on it and everything you have looks plain.

That is a generated image, and it is less work than it looks.

Image templates on the dashboard

What a template is

Design once, add variables, render per member

You design a layout once: a background, where the avatar goes, where each piece of text goes, fonts, sizes, colours.

The template has variables — the bits that change. A name, a number, an avatar URL. When the bot renders it, those get filled in and you get a fresh PNG for that member.

One design, unlimited outputs. You are not making an image per person; you are making the mould.

What people use it for

Welcome cards. The most common. Avatar, name, member number, over a background that matches your server.

Rank and level cards. Avatar, level, a progress bar, a position. This is the one that makes a levelling system feel like a game rather than a number in a message.

Achievement and reward cards. Something visual when a member hits a milestone.

Profile cards. Balance, streak, roles, whatever your server tracks.

Announcement banners. Same headline layout, different text each time, instead of hand-editing an image in Photoshop for every post.

Two kinds of variable

Worth understanding, because it changes how you design.

Fixed values are one-per-render: a name, a level, a score. One slot in the design, one value.

Lists are repeated: a leaderboard card with ten rows, or a shop card with several items. The design defines what one row looks like, and the renderer repeats it.

If you find yourself making ten near-identical slots by hand, you want a list.

Design notes that matter

Avatars are square, and members expect circles. Mask it round unless you want a deliberately blocky look.

Leave room for long names. Discord names go up to 32 characters. Design with the longest plausible name, not with "Bob". A card that looks great in testing and clips half your members' names is worse than plain text.

Contrast against the background. A busy background image plus thin light text is unreadable at Discord's display size. Darken the background behind the text, or use a solid panel.

Test at the size it will actually be shown. Cards get scaled down in chat. Detail that reads at full size disappears.

Where the images end up

The rendered image is attached to the message, so it appears inline. Nothing for you to host.

Pair it with an embed and the card becomes the image while the text sits in the description — a welcome that greets in words and shows in pictures at the same time.

Using one from a command

Templates are not limited to welcome messages. Any command can render one.

That is what makes /rank, /profile and /balance interesting: the same numbers you were about to print as text become a card. The command works out the values, hands them to the template, and posts the result.

When not to bother

If the information is a single number, a card is decoration. /ping does not need a poster.

Cards earn their place when there are several values with a relationship — a level and progress toward the next, a balance and a rank, a name and an achievement. Otherwise text is faster to read and faster to send.

Free plan

Image templates are included on the free plan, along with welcome messages and embeds.

ccbot.appDesign one on the dashboard →

Loading comments…

{}

Need help?

Have a question, a suggestion, or stuck on something? Reach out — we're happy to help.

Join support server
Custom CommandsCustom Commands

The #1 custom commands Discord bot — build commands, events and databases with zero boilerplate.

Join the support server

Product

  • Overview
  • Reaction roles
  • Welcome messages
  • Embed builder
  • Custom bot
  • Why us?
  • Premium
  • Template shop

Resources

  • Blog
  • Support
  • Dashboard

Company

  • Privacy
  • Contact
[email protected]

2 Frederick Street, London, WC1X 0ND

Payments secured by Stripe
{ / } custom commands

© WEiRDSOFT LTD. All rights reserved.