> ## Documentation Index
> Fetch the complete documentation index at: https://docs.celestia.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Welcome Messages

> Automatically greet new members with customizable welcome messages and embeds

## Overview

Welcome messages automatically send greetings to new members when they join your server. You can configure multiple welcome messages across different channels, use custom embeds, and even ping new members to make them feel welcomed.

<Info>
  Welcome messages support both plain text with variables and custom embeds created with the embed builder.
</Info>

***

## Commands

<AccordionGroup>
  <Accordion title="welcome add" icon="plus">
    Add a welcome message or embed to a specific channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome add <#channel> <message>
      ~welcome add <#channel> <embed_name>
      ~welcome add <#channel> <message> ping
      ~welcome add <#channel> <embed_name> ping
      ```

      ```bash Example theme={null}
      ~welcome add #welcome Welcome to the server, {user.mention}!
      ~welcome add #general custom_welcome_embed
      ~welcome add #welcomes {user.mention} just joined! ping
      ~greet add #chat join_embed ping
      ```
    </CodeGroup>

    **Parameters:**

    * **#channel** — Channel where the welcome message will be sent
    * **message** — Your welcome message (supports variables)
    * **embed\_name** — Name of a saved embed from your embed builder
    * **ping** — Optional flag to mention the new member

    **Available Variables:**

    * `{user.mention}` — Mentions the new member
    * `{user.tag}` — User's full tag (name#0000)
    * `{user.id}` — User's ID
    * `{guild.name}` — Server name
    * `{guild.count}` — Total member count
    * `{guild.id}` — Server ID

    **Aliases:** `greet add`, `wlc add`, `welc add`\
    **Permissions:** Manage Server

    <Tip>
      Add the word `ping` at the end of your command to mention new members when they join!
    </Tip>
  </Accordion>

  <Accordion title="welcome list" icon="list">
    View all configured welcome messages for your server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome list
      ```

      ```bash Example theme={null}
      ~welcome list
      ~greet list
      ~wlc list
      ```
    </CodeGroup>

    **What It Shows:**

    * Channel where each message is sent
    * Preview of text messages or embed names
    * Whether ping is enabled for each message
    * Numbered list for easy reference

    **Aliases:** `greet list`, `wlc list`, `welc list`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="welcome remove" icon="trash">
    Remove all welcome messages from a specific channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome remove <#channel>
      ```

      ```bash Example theme={null}
      ~welcome remove #welcome
      ~greet remove #general
      ~wlc remove #chat
      ```
    </CodeGroup>

    **What It Does:**

    * Removes ALL welcome messages configured for the specified channel
    * Does not affect welcome messages in other channels
    * Shows how many messages were removed

    **Aliases:** `greet remove`, `wlc remove`, `welc remove`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="welcome reset" icon="rotate-left">
    Reset all welcome settings for your server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome reset
      ```

      ```bash Example theme={null}
      ~welcome reset
      ~greet reset
      ```
    </CodeGroup>

    **What It Does:**

    * Removes ALL welcome messages from all channels
    * Clears all joinping configurations
    * Resets the entire welcome system
    * Cannot be undone

    <Warning>
      This action is permanent and removes all welcome configurations. Use with caution!
    </Warning>

    **Aliases:** `greet reset`, `wlc reset`, `welc reset`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="welcome test" icon="flask">
    Test the welcome message in a specific channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome test <#channel>
      ```

      ```bash Example theme={null}
      ~welcome test #welcome
      ~greet test #general
      ~wlc test #chat
      ```
    </CodeGroup>

    **What It Does:**

    * Sends a test welcome message using your profile
    * Applies all variables as if you just joined
    * Shows exactly how new members will see the message
    * Pings you if ping is enabled

    **Aliases:** `greet test`, `wlc test`, `welc test`\
    **Permissions:** Manage Server

    <Note>
      Only tests messages configured for the specified channel. Make sure you've added a welcome message there first.
    </Note>
  </Accordion>
</AccordionGroup>

***

## Join Ping Commands

Join ping automatically pings new members in specified channels when they join, even without a welcome message.

<AccordionGroup>
  <Accordion title="welcome joinping" icon="at">
    Add a channel for automatic join pings.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome joinping <#channel>
      ```

      ```bash Example theme={null}
      ~welcome joinping #general
      ~greet joinping #chat
      ~wlc joinping #welcome
      ```
    </CodeGroup>

    **What It Does:**

    * Pings new members in the specified channel
    * Works independently from welcome messages
    * Maximum of 50 channels per server
    * Shows current count (e.g., 5/50)

    **Aliases:** `greet joinping`, `wlc joinping`, `welc joinping`\
    **Permissions:** Manage Server

    <Warning>
      Maximum limit: 50 joinping channels per server. Remove unused channels to add new ones.
    </Warning>
  </Accordion>

  <Accordion title="welcome joinping list" icon="list-ul">
    View all channels configured for join pings.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome joinping list
      ```

      ```bash Example theme={null}
      ~welcome joinping list
      ~greet joinping list
      ```
    </CodeGroup>

    **What It Shows:**

    * All channels with joinping enabled
    * Total count out of 50 maximum
    * Numbered list for reference

    **Aliases:** `greet joinping list`, `wlc joinping list`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="welcome joinping remove" icon="minus">
    Remove join ping from a specific channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome joinping remove <#channel>
      ```

      ```bash Example theme={null}
      ~welcome joinping remove #general
      ~greet joinping remove #chat
      ```
    </CodeGroup>

    **What It Does:**

    * Removes joinping from the specified channel
    * Does not affect welcome messages
    * Frees up a slot (now X/50 instead of X+1/50)

    **Aliases:** `greet joinping remove`, `wlc joinping remove`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="welcome joinping test" icon="vial">
    Test joinping functionality across all configured channels.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~welcome joinping test
      ```

      ```bash Example theme={null}
      ~welcome joinping test
      ~greet joinping test
      ```
    </CodeGroup>

    **What It Does:**

    * Pings you in all joinping channels
    * Verifies all channels are working correctly
    * Confirms bot has proper permissions

    **Aliases:** `greet joinping test`, `wlc joinping test`\
    **Permissions:** Manage Server
  </Accordion>
</AccordionGroup>

***

## Variable Reference

Use these variables in your welcome messages for dynamic content:

| Variable         | Output                  | Example            |
| ---------------- | ----------------------- | ------------------ |
| `{user.mention}` | Mentions the new member | @Username          |
| `{user.tag}`     | User's full tag         | JohnDoe#1234       |
| `{user.id}`      | User's unique ID        | 123456789012345678 |
| `{guild.name}`   | Your server's name      | My Awesome Server  |
| `{guild.count}`  | Current member count    | 1,234              |
| `{guild.id}`     | Your server's unique ID | 987654321098765432 |

***

## How It Works

<Steps>
  <Step title="Configure Welcome Messages">
    Set up one or more welcome messages using `welcome add`:

    ```bash theme={null}
    ~welcome add #welcome Welcome {user.mention}! You're member #{guild.count}
    ~welcome add #rules Please read the rules, {user.mention}
    ```
  </Step>

  <Step title="Optional: Add Join Pings">
    Enable automatic pings in specific channels:

    ```bash theme={null}
    ~welcome joinping #general
    ```
  </Step>

  <Step title="Test Your Setup">
    Verify messages work correctly:

    ```bash theme={null}
    ~welcome test #welcome
    ```
  </Step>

  <Step title="Automatic Greetings">
    When new members join:

    * All configured welcome messages are sent
    * Variables are replaced with actual values
    * Pings happen if enabled
    * Messages sent to their respective channels
  </Step>
</Steps>

***

## Permission Requirements

<CardGroup cols={2}>
  <Card title="Bot Permissions" icon="robot">
    The bot needs these permissions in welcome channels:

    * View Channel
    * Send Messages
    * Embed Links (for embed welcomes)
    * Mention @everyone (for pings)
  </Card>

  <Card title="User Permissions" icon="user">
    Command Requirements:

    * **Manage Server** — Required for all welcome commands
  </Card>
</CardGroup>

***

## Aliases

All welcome commands support multiple aliases:

<CardGroup cols={4}>
  <Card title="greet" icon="g">
    Short alias
  </Card>

  <Card title="wlc" icon="w">
    Shorter alias
  </Card>

  <Card title="welc" icon="w">
    Alternative
  </Card>

  <Card title="welcome" icon="hand-wave">
    Full command
  </Card>
</CardGroup>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Permission denied" icon="ban">
    **Problem:** "You need the Manage Server permission to use this command"

    **Solution:**

    * Verify you have the Manage Server permission
    * Check your role has sufficient permissions
    * Ask a server administrator for access
  </Accordion>

  <Accordion title="Welcome not sending" icon="message-slash">
    **Problem:** Welcome messages don't send when members join

    **Solutions:**

    * Verify bot has Send Messages permission in welcome channel
    * Check bot has Embed Links permission (for embed welcomes)
    * Ensure channel hasn't been deleted
    * Run `~welcome list` to verify configuration
    * Test with `~welcome test #channel`
  </Accordion>

  <Accordion title="Embed not found" icon="file-circle-question">
    **Problem:** "Embed Not Found" error when using embed welcomes

    **Solutions:**

    * Verify the embed exists: check with embed command
    * Ensure embed name is spelled correctly (case-sensitive)
    * Confirm embed is saved under your user account
    * Re-add the welcome message with correct embed name
  </Accordion>

  <Accordion title="Variables not working" icon="code">
    **Problem:** Variables show as `{user.mention}` instead of actual values

    **Solutions:**

    * Check variable spelling exactly matches reference
    * Ensure you're using curly braces `{}`
    * Variables only work in text messages, not embed names
    * For embeds, variables must be in the embed content itself
  </Accordion>

  <Accordion title="Joinping limit reached" icon="triangle-exclamation">
    **Problem:** "You Have Reached The Maximum Limit Of 50 Join Ping Channels"

    **Solution:**

    1. View current channels: `~welcome joinping list`
    2. Remove unused channels: `~welcome joinping remove #channel`
    3. Add new channel: `~welcome joinping #new-channel`
  </Accordion>

  <Accordion title="Channel already set" icon="copy">
    **Problem:** "That Channel Is Already Set As A Join Ping Channel"

    **Solution:**

    * The channel already has joinping enabled
    * Check with `~welcome joinping list`
    * No need to add it again
  </Accordion>

  <Accordion title="Ping not working" icon="at">
    **Problem:** New members aren't getting pinged

    **Solutions:**

    * Ensure you added `ping` flag when setting up welcome message
    * Check bot has Mention @everyone permission
    * Verify with `~welcome list` to see if (ping) appears
    * Re-add the welcome message with the ping flag
  </Accordion>
</AccordionGroup>

***

## Usage Examples

<Tabs>
  <Tab title="Basic Welcome">
    ```bash theme={null}
    # Simple text welcome
    ~welcome add #welcome Welcome to the server, {user.mention}!

    # With member count
    ~welcome add #general Hey {user.mention}! You're member #{guild.count}

    # Multiple messages
    ~welcome add #welcome Welcome {user.mention}!
    ~welcome add #rules Please read <#rules-channel>, {user.mention}
    ```
  </Tab>

  <Tab title="With Ping">
    ```bash theme={null}
    # Welcome with ping
    ~welcome add #welcome Welcome {user.mention} to {guild.name}! ping

    # Embed with ping
    ~welcome add #general welcome_embed ping

    # Join ping without message
    ~welcome joinping #general
    ```
  </Tab>

  <Tab title="Using Embeds">
    ```bash theme={null}
    # First create an embed with the embed builder
    ~embed create welcome_embed

    # Then use it in welcome
    ~welcome add #welcome welcome_embed

    # With ping
    ~welcome add #welcome fancy_welcome ping
    ```
  </Tab>

  <Tab title="Multiple Channels">
    ```bash theme={null}
    # Different messages in different channels
    ~welcome add #welcome Welcome {user.mention}!
    ~welcome add #rules Read the rules, {user.mention}
    ~welcome add #roles Get your roles in #roles, {user.mention}

    # Join pings
    ~welcome joinping #general
    ~welcome joinping #chat
    ~welcome joinping #welcome
    ```
  </Tab>

  <Tab title="Management">
    ```bash theme={null}
    # View all welcomes
    ~welcome list

    # Test a welcome
    ~welcome test #welcome

    # Remove from specific channel
    ~welcome remove #old-channel

    # Reset everything
    ~welcome reset

    # Manage joinpings
    ~welcome joinping list
    ~welcome joinping remove #general
    ```
  </Tab>
</Tabs>

***

## Related Features

<CardGroup cols={2}>
  <Card title="Embed Builder" icon="code" href="/embed">
    Create custom embeds to use as welcome messages
  </Card>

  <Card title="Autorole" icon="user-tag" href="/autorole">
    Automatically assign roles to new members when they join
  </Card>
</CardGroup>
