Docs/Welcome & farewell
Feature guide · Welcome & Farewell

Greeting new members, and seeing them off.

How to configure text, embed, and generated image-card welcome/farewell messages — the setup panel, personalization variables, and exactly what happens in every edge case.

01

Three delivery modes, and you can combine them

A welcome or farewell message can go out as plain text, a Discord embed, a generated image card — or any combination of the three, all from the same join/leave event. Each mode has its own on/off switch (text_enabled, embed_enabled, card.enabled), independent of the others.

If every mode is switched off while the system itself is enabled, nothing is sent — Ovels won't post an empty message just because the feature is toggled on. And if the configured channel is deleted, the send is skipped silently rather than erroring.

02

The interactive setup panel vs. one-off commands

/welcome setup and /farewell setup open a full button-driven configuration panel with a live preview, built for getting everything right in one sitting — channel, delivery modes, embed styling, and the image card, without memorizing subcommand syntax.

For quick, scripted changes, every setting is also available as its own subcommand: channel, text, textmode, embed, desc, thumbnail, color, footer, image, card, plus view to see the current configuration, preview to send a test message immediately, and reset to restore safe defaults and disable the system. Setting an embed field (description, footer, image) or the plain-text content automatically turns that delivery mode on — you don't need a separate enable step.

03

Personalizing messages with variables

Text content, embed descriptions, embed footers, and image-card titles/subtitles all support the same set of variables, filled in at send time:

  • {member:mention}, {member:name}, {member:nick}, {member:tag}, {member:dis}, {member:avatar} — the joining/leaving member.
  • {server} and {count} — the server name and current member count.
  • {inviter:name}, {inviter:tag}, {invites} — who invited them and their effective invite count, when invite tracking can identify it.

The dashboard's card editor also accepts dot-notation aliases for the same values — {server.name}, {server.member_count}, {member.name}, {member.username}, {member.tag}, {member.mention} — so copy-pasting a variable from either surface works in the other. \\n in plain text is converted to a real line break.

04

The generated image card

Turning on card renders an actual PNG per event — the member's own avatar composited over a background, with a title and subtitle (both variable-aware). It's independent of the embed: you can run a card-only welcome with text and embed both off, or layer all three.

Customizable fields: title, subtitle, font (Default, Poppins, Bebas, Handwriting, or Mono), textColor, a background that's either a flat color or an image URL, and overlayOpacity for darkening a background image so light text stays readable. Welcome and farewell each ship with their own sensible defaults — welcome defaults to Discord blurple (#5865F2) with "Welcome to {server.name} 🎉", farewell defaults to a neutral grey (#4B4B52) with "{member.name} has left the server 👋" — so the feature looks good before you customize anything.

05

Dashboard and Discord commands edit the same settings

The dashboard's Welcome and Farewell pages and the /welcome//farewell commands read and write the exact same guild configuration — there's no separate "dashboard mode." Use whichever is more convenient at the time; changes made in one show up immediately in the other.

Both surfaces validate input the same way: colors must be a proper 6-digit HEX value, and image URLs must be plain https:// links with no embedded credentials. An invalid value is rejected with a specific error instead of being silently accepted and failing later at send time.

06

Delivery safety

Before sending anything, Ovels checks its actual Discord permissions in the configured channel — View Channel and Send Messages always, plus Embed Links if an embed is enabled and Attach Files if the image card is enabled. A missing permission fails that specific send with a clear reason in the bot's logs rather than posting a broken, partial message.

Mentions in the message content are scoped to just the member who joined or left — even if your custom text contains other user or role mentions, Ovels won't let a welcome/farewell message accidentally ping @everyone or an unrelated role.

Looking for exact syntax?This page covers behavior, not syntax. See the Admin command reference for every /welcome and /farewell subcommand and option.
Edge case reference

Scenario by scenario.

The specific outcome for every welcome/farewell situation Ovels is built to handle.

The welcome/farewell channel is deleted while the feature is enabled+

The send is skipped for that event — nothing is posted, and nothing errors out to the rest of the bot.

Text, embed, and card are all switched off, but the system itself is enabled+

No message is sent for that join/leave — an empty message is never posted just because the feature is toggled on.

The image card is enabled but text and embed are both off+

Only the generated PNG is sent, with no accompanying text or embed.

Ovels is missing a required permission in the target channel (e.g. no Embed Links)+

That send fails and is logged with the specific missing permission — no broken or partial message goes out.

Someone joins via a vanity invite link, or a bot joins via OAuth+

{inviter:name} / {inviter:tag} resolve to "VANITY" or "OAuth" instead of a blank value or a crashed message.

You run /welcome preview or /farewell preview+

A test message is sent to the configured channel immediately, using your own member data — no need to wait for a real join or leave to check formatting.

You run /welcome reset or /farewell reset+

Settings are restored to safe defaults and the system is disabled outright, not just cleared to an empty channel.