five messages, one set of commands: a welcome when somebody joins, a goodbye when they leave, a thank you when they boost, a dm to the person who joined, and a ping that takes itself away again.

setting it up

open the dashboard, pick your server and go to greetings. each of the five has its own switch, a channel (the join dm has none), the message, plain text or a card script starting with {embed}, and how long before it’s deleted. for the join ping, 0 uses the five second default.

variables

,welcome variables prints the list in discord. two spellings work: the dotted {user.mention} and the flat {user_name}, so a message pasted from another bot needs no editing. an unknown variable is left on screen exactly as you typed it, so a typo is visible rather than silently blank. write {{user}} to show a variable without using it.

embed scripts

a message starting with {embed} is a script: { opens a parameter, : splits its name from its content, $v separates parameters, and && splits the parts of the ones that take two. it is the grammar most bots in this category read, so a script moves between them unchanged.
parameters drain draws: message, title, url (makes the title a link), description, color, image, images (a gallery, up to ten), thumbnail, author, footer, field, button, timestamp, banner, icon, section, and rule or space on their own. one it does not know is ignored rather than refused, so a script written elsewhere still sends. most parameters are drawn where they always go, the title at the top, the footer at the bottom. fields and dividers are the exception: those are drawn in the order you wrote them, so a long card can be broken into sections.
{rule} draws a line across the card and {space} leaves the gap without one. {timestamp} puts the time beside the footer, on each reader’s own clock rather than yours.

the parts an embed has no word for

drain draws a container, not an embed, so three parameters are drain’s own: {button: label && url && emoji} takes an emoji as a third part too. a picture that is not a link is left out rather than drawn wrong.
there is a builder for all of this at drain.baby/embeds: pick plain or card, fill it in, watch the preview, copy the command. pick feed there to build a creator feed’s line, name, picture and wait, and copy its ,social feed edit command. drain draws these with discord’s newer components, not a classic embed, so the same script comes out with an accent rail, real text blocks and a proper media gallery.

what it will not do

  • it never pings a role or everyone. only the person who arrived is mentioned, whatever the message says.
  • it goes quiet during a raid. past ten joins in ten seconds greetings stop, because a greeting per join is a raid’s own amplifier.
  • a greeting with no message never sends. a channel on its own does nothing, and ,welcome says so rather than looking configured.

ways to type it

every command

welcome

goodbye

boost

join dm

join ping