Welcome
Set up customizable greeting messages for your server
Overview
Set a customizable welcome message that automatically sends once a user joins the server.
Welcome messages only send after you set BOTH a channel and enable the feature. Nothing will send until both are configured.
Getting Started
Enable the welcome system
Initialize the welcome feature with:
,welcome setup
This creates a default configuration. You can always reset everything with ,welcome reset.
Set the welcome channel
Choose where greed sends the message when members join:
,welcome channel #welcome
greed must have permission to send messages in this channel.
Write your welcome message
Customize the template using variables and embeds:
,welcome message {embed}{title: Welcome!}{description: Welcome {user.mention}!}
Use ,welcome preview to test before saving.
Test the message
Preview how your message looks with yourself as the joining member:
,welcome test
greed will DM or send the rendered message to you for inspection.
Verify it's working
Once enabled, the message sends automatically when new members join. Check your configured welcome channel permissions to ensure messages are being delivered.
Available Variables
Welcome messages have access to the following context:
{user.*}— The joining member (all user fields listed below){guild.*}— Your server's properties{channel.*}— The welcome channel properties
User Variables
| Variable | Description | Example |
|---|---|---|
{user} | Username | moonpie |
{user.mention} | Mention tag | <@123456789> |
{user.name} | Username only | moonpie |
{user.id} | Discord ID | 123456789 |
{user.tag} | Username with tag (old format) | moonpie#0001 |
{user.avatar} | Avatar URL | https://cdn.discordapp.com/avatars/... |
{user.display_name} | Display name (nickname or username) | moonpie or custom nickname |
{user.bot} | Is bot? | Yes or No |
{user.created_at} | Account creation date (Discord timestamp) | <t:1234567890:F> |
{user.created_at_timestamp} | Unix timestamp | 1234567890 |
{user.joined_at} | Join date (Discord timestamp) | <t:1234567890:F> |
{user.joined_at_timestamp} | Unix timestamp | 1234567890 |
{user.top_role} | Highest role name | Member or N/A |
{user.role_list} | Comma-separated role names | Member, Verified, Active |
{user.color} | Hex color of highest role | #FF0000 or N/A |
{user.join_position} | Position in join order | 42 or N/A |
{user.join_position_suffix} | Join position with ordinal | 42nd or N/A |
{user.boost} | Currently boosting? | Yes or No |
{user.boost_since} | Boost start date (Discord timestamp) | <t:1234567890:F> or N/A |
{user.guild_avatar} | Server-specific avatar URL | URL or N/A |
Guild Variables
| Variable | Description | Example |
|---|---|---|
{guild} | Server name | My Awesome Server |
{guild.name} | Server name | My Awesome Server |
{guild.id} | Server ID | 987654321 |
{guild.count} | Member count (formatted) | 1,234 |
{guild.member_count} | Member count (formatted) | 1,234 |
{guild.created_at} | Server creation date (Discord timestamp) | <t:1234567890:F> |
{guild.created_at_timestamp} | Unix timestamp | 1234567890 |
{guild.icon} | Server icon URL | https://cdn.discordapp.com/icons/... |
{guild.banner} | Server banner URL | https://cdn.discordapp.com/banners/... |
{guild.boost_count} | Number of boosts | 5 |
{guild.boost_tier} | Boost level | 1, 2, 3, or No Level |
{guild.emoji_count} | Custom emoji count | 50 |
{guild.role_count} | Total roles | 25 |
Channel Variables
| Variable | Description | Example |
|---|---|---|
{channel} | Channel name | welcome |
{channel.name} | Channel name | welcome |
{channel.mention} | Channel mention | <#123456789> |
{channel.id} | Channel ID | 123456789 |
{channel.topic} | Channel topic | Welcome new members! or N/A |
Template Examples
Simple Plain Text
Copy and paste to try:
,welcome message Welcome to {guild.name}, {user.mention}! You are our #{user.join_position}th member. Enjoy your stay!
Embedded Welcome with Rich Content
,welcome message {embed}{color: 5814783}{title: Welcome to {guild.name}!}{description: Hey {user.mention}, we're excited to have you here! Our server has {guild.member_count} awesome members.}{field: Account Age|Your account was created {user.created_at}}{field: Your Roles|{user.role_list}}{thumbnail: {user.avatar}}
Welcome with Conditional Logic
Use conditionals to customize based on available information:
,welcome message Welcome {user.mention}!{if {user.boost}}This member is boosting!{else}Looking forward to your contributions!{/if}
Another conditional example based on join position:
,welcome message {embed}{title: Welcome!}{description: {user.mention} just joined us!}{if {user.join_position} == 1}Wow, you're our first member!{elseif {user.join_position} < 100}You're an early member - number {user.join_position}!{else}We now have {user.join_position} members!{/if}}
Customization
Embed Formatting
Use embed syntax to create visually rich messages:
,welcome message {embed}{color: 5814783}{title: Welcome to {guild.name}}{description: {user.mention} has joined! Total members: {guild.member_count}}{field: Account Created|{user.created_at}}{field: Top Role|{user.top_role}}{thumbnail: {user.avatar}}
Using Custom Scripts
Save a reusable welcome template by name:
,custom save welcome-pro {embed}{color: 5814783}{title: Welcome!}{description: {user.mention} just arrived}{thumbnail: {user.avatar}}
Then apply it:
,welcome message {cscript:welcome-pro}
Custom script names must start with a letter or number and contain only lowercase letters, numbers, hyphens, and underscores (max 32 characters). You can save up to 100 custom scripts per server.
Management
View Current Message
See the template currently saved:
,welcome view
If using the default, it will display the default template.
Preview the Message
Test how your message renders with yourself as the joining member:
,welcome test
greed will show you the exact message formatting, embeds, and content.
Reset to Default
Return to greed's default welcome template:
,welcome reset
This clears your custom message entirely.
Troubleshooting
Messages Aren't Sending
- Channel Deleted or Inaccessible: Verify the configured channel still exists and greed has
Send Messagespermission there. Use,welcome viewto check the channel. - Feature Not Enabled: Both a channel and the enable flag must be set. Run
,welcome setupto initialize. - Rate Limit (20 joins/minute): If many members join rapidly (20+ in 60 seconds), messages are paused to prevent spam. Welcome resumes after the rate-limit window passes.
- Template Error: If your script has syntax errors, the message fails silently. Use
,welcome testto catch rendering issues before deployment. - Bots Not Welcomed: greed does not send welcome messages to bot accounts.
Template Renders Empty or Broken
- Check that variable names are spelled correctly (e.g.,
{user.mention}not{user.name.mention}). - For conditional logic, ensure the syntax is
{if condition}{content}{/if}with no nesting errors. - Use
,welcome testto preview the rendered output and catch typos.
Embeds Not Appearing
- Verify the
{embed}syntax follows the embed resource guide. - Color codes must be valid hex (6 digits) or decimal integers.
- Use
,welcome testto preview embeds before saving.
If the configured channel is deleted or greed loses permission to send messages there, welcome messages will silently fail to send. Verify the bot has permission to send messages in the welcome channel before investigating other issues.