> For the complete documentation index, see [llms.txt](https://discortics.com/llms.txt). A consolidated single-file corpus is available at [llms-full.txt](https://discortics.com/llms-full.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://discortics.com/guides/welcome.md).

# Welcome, Leave, and Autoroles

Greet new members, say goodbye, and give roles automatically.

## Before you begin

- You need **Manage Server**.
- In each message channel, Discortics needs **View Channel**, **Send Messages**, and **Embed Links**.
- Autoroles need **Manage Roles** and a Discortics role above every role it assigns.

## Set up a welcome message

Send it to a channel, or privately with **Direct message**.

### Dashboard Setup

1. Open **Dashboard → Welcome**.
2. Open a Welcome configuration, or select **Add** to start a new one.
3. Choose a channel, or turn on **Direct message**.
4. Add text, sections, images, or other blocks, and insert any [variables](#variables).
5. Enable the message and save with the save bar.
6. Select **Send test** and check the channel.

### Discord Command Setup

1. Run `/settings welcome` or `;welcome`.
2. Open a Welcome configuration with the top selector, or create a new one.
3. Select **Channel**, or **Direct message** to send it privately.
4. Select **Message** and enter your text.
5. Select **Preview Message** to check it privately, without pings.
6. Enable the message on the main panel.
7. Select **Welcome Test** to send a test.

Discord edits use plain text with variables. For images and rich layouts, use the Dashboard. Submitting a Discord text edit replaces a rich layout, but opening or cancelling the editor doesn't.

**Quick setup:** `;welcome set #channel` creates and enables a default message in that channel, or resets the one already there. Add `--msg` for custom text, and `--delete 3s` to delete it after a delay of three seconds or more.

### Welcome options

| Option                   | What it does                                                                             |
| ------------------------ | ---------------------------------------------------------------------------------------- |
| **Delay until verified** | Waits until the member passes [verification](/guides/verification). Doesn't affect roles |
| **Delete after ping**    | Pings the member, then deletes the message. See [Ping on Join](#ping-on-join-poj)        |
| **Direct message**       | Sends privately on join. Closed DMs don't stop it working for future members             |

A Direct message welcome sends immediately, so it can't use **Delay until verified** or **Delete after ping**.

### Welcome limits

| Resource                    | Public | Prime | Custom |
| --------------------------- | -----: | ----: | -----: |
| Welcome messages per server |      3 |    10 |     25 |

- Each welcome message needs a different channel. One can use **Direct message** instead.
- Rename or remove configurations from the Dashboard.

## Ping on Join (PoJ)

Ping on Join mentions a new member so they get a notification, then deletes the message after at least three seconds. This points new members to your rules without cluttering the channel.

### Dashboard Setup

1. Open **Dashboard → Welcome** and choose a configuration.
2. Choose your welcome channel.
3. Include `{{user.mention}}` in the message.
4. Under **Mention Settings**, allow user mentions.
5. Turn on **Delete after ping**.
6. Optional: turn on **Delay until verified** so only verified members are pinged.
7. Save, then select **Send test**.

### Discord Command Setup

1. Run `/settings welcome` and choose a configuration.
2. Select **Channel** and choose your welcome channel.
3. Select **Message** and include `{{user.mention}}`.
4. Select **Delete After Ping**.
5. Optional: select **Delay** so only verified members are pinged.
6. Enable the message on the main panel.
7. Select **Welcome Test**.

Discortics needs **Manage Messages** in the channel to delete reliably. The delay is three seconds. To choose your own, use `;welcome set #welcome --msg Welcome {{user.mention}}! --delete 10s`.

## Set up a leave message

Use it as a public goodbye or a private staff log. You can have one leave message.

### Dashboard Setup

1. Open **Dashboard → Welcome** and open the leave message.
2. Choose a channel.
3. Add your message blocks.
4. Enable the message and save.
5. Select **Send test** and check the channel.

### Discord Command Setup

1. Run `/settings leave`.
2. Select **Channel** and choose a channel.
3. Select **Message** and enter your text.
4. Select **Preview Message** to check it privately.
5. Enable the message on the main panel.
6. Run `;leave test` to send a test.

## Configure autoroles

### Dashboard Setup

1. Open **Dashboard → Settings → Auto Roles**.
2. Choose your **Before verification** and **After verification** roles.
3. Save with the save bar.

### Discord Command Setup

1. Run `/settings autorole`.
2. Open **Manage**.
3. Select your **Before verification** and **After verification** roles, and save.

### When roles are given

| Verification | Before verification roles | After verification roles          |
| ------------ | ------------------------- | --------------------------------- |
| **Off**      | Not given                 | On join                           |
| **On**       | On join                   | After the member passes the check |
| **Bypassed** | During the join flow      | During the join flow              |

You can set both groups while verification is off.

### Autorole limits

| Resource                  | Public | Prime | Custom |
| ------------------------- | -----: | ----: | -----: |
| Before-verification roles |      5 |    10 |     20 |
| After-verification roles  |      5 |    10 |     20 |

These can't be autoroles: `@everyone`, the muted role, integration-managed roles, roles above Discortics, and roles with risky permissions.

Saving a role picker replaces that group. Clearing a group stops future assignments, but doesn't remove roles members already have.

## Variables

Use these in message text as written. The Dashboard also has a variable picker.

| Variable                 | Result                                  |
| ------------------------ | --------------------------------------- |
| `{{user.mention}}`       | Mentions the member                     |
| `{{user.username}}`      | Discord username                        |
| `{{user.globalName}}`    | Display name, or username if none       |
| `{{user.avatarURL}}`     | Member avatar URL                       |
| `{{user.createdAt}}`     | Account creation time                   |
| `{{user.createdAgo}}`    | Relative account age                    |
| `{{user.joinedAt}}`      | Server join time, welcome only          |
| `{{user.joinedAgo}}`     | Relative server join time, welcome only |
| `{{server.name}}`        | Server name                             |
| `{{server.memberCount}}` | Current member count                    |
| `{{server.iconURL}}`     | Server icon URL                         |
| `{{server.vanityCode}}`  | Server vanity code                      |

### Invite variables

These need [Invite Tracking](/guides/invite-tracking). Unknown values appear empty.

| Variable               | Result                                           |
| ---------------------- | ------------------------------------------------ |
| `{{invite.source}}`    | Invite, vanity URL, unknown, or ambiguous source |
| `{{invite.code}}`      | Detected invite code                             |
| `{{inviter.mention}}`  | Mentions the inviter                             |
| `{{inviter.username}}` | Inviter username                                 |
| `{{inviter.total}}`    | Inviter's total credited joins                   |
| `{{inviter.real}}`     | Inviter's current real invites                   |
| `{{inviter.left}}`     | Invited members who left                         |
| `{{inviter.fake}}`     | Invites classified as fake                       |

For vanity URL and untracked joins, inviter variables show your server's name, icon, and vanity join counts.

## Reset Welcome or Leave

Select **Reset** in the Discord panel and confirm. This turns the message off and removes its channel, content, and delay.

> [!WARNING]
> Reset can't be undone. Messages already posted in Discord stay.

## Commands

| Command              | What it does                   | Permission    |
| -------------------- | ------------------------------ | ------------- |
| `/settings welcome`  | Configure welcome messages     | Manage Server |
| `/settings leave`    | Configure the leave message    | Manage Server |
| `/settings autorole` | Choose automatic roles         | Manage Server |
| `;welcome test`      | Test the first welcome message | Manage Server |
| `;leave test`        | Test the leave message         | Manage Server |

Tests use your own profile and send to the configured channel. Dashboard tests need all changes saved first.

## Troubleshooting

**A member didn't get an autorole.** Check that the role is still selected, is below Discortics, and isn't managed by an integration. **After verification** roles only arrive once the member verifies or is bypassed.

**The welcome message didn't send.** Check that it's enabled, has a channel and a message, and that Discortics has **Send Messages** and **Embed Links**. If it's delayed, check that the member has verified.

**Roles arrived but the message didn't, or the other way round.** Roles and messages run separately. Check the message's **Delay** and which group each role is in.

**The ping message wasn't deleted.** Give Discortics **Manage Messages** in that channel.

**The member wasn't notified.** Include `{{user.mention}}` and allow user mentions. With **Delay until verified**, the ping waits until they verify.

**Editing a saved embed didn't change my welcome message.** They're separate. Edit the message in **Dashboard → Welcome** or with **Message** in `/settings welcome`.

Prefer one-line commands? See [Direct Commands](/guides/command-arguments).
