Skip to main content

Overview

ChimBot automatically sends customized embed messages when members join or leave your Discord server. These events create a welcoming atmosphere and keep track of member activity.

Welcome Messages

Greet new members with a custom embed when they join

Farewell Messages

Send a message when members leave the server

Configuration

Set the channel where welcome/farewell messages will be sent:
main.py
# ID of the welcome/farewell channel
CANAL_BIENVENIDA_ID = 1004156875035656303
To get a channel ID in Discord: Enable Developer Mode (User Settings → Advanced → Developer Mode), then right-click the channel and select “Copy ID”.

Welcome Event

The on_member_join() event triggers when a new member joins:
main.py
@bot.event
async def on_member_join(member):
    """Se ejecuta cuando un usuario entra al servidor"""
    canal = bot.get_channel(CANAL_BIENVENIDA_ID)
    if canal:
        embed = discord.Embed(
            title="¡Bienvenido al servidor!",
            description=f"Hola {member.mention}, disfruta tu nueva casa.",
            color=discord.Color.green()
        )
        embed.set_thumbnail(url=member.avatar.url)
        embed.add_field(name="Nombre", value=member.name, inline=True)
        embed.add_field(name="Miembros totales", value=str(member.guild.member_count), inline=True)
        await canal.send(embed=embed)
        print(f"[EVENTO] {member.name} se unió al servidor")

Welcome Message Features

The welcome embed includes:
  • Title: “¡Bienvenido al servidor!”
  • Description: Personalized greeting with user mention
  • Color: Green (discord.Color.green())
  • Thumbnail: Member’s avatar image
  • Fields:
    • Member’s username
    • Total server member count

Example Output

Welcome embed example
┌─────────────────────────────────────┐
│ ¡Bienvenido al servidor!            │
├─────────────────────────────────────┤
│ Hola @NewUser, disfruta tu nueva    │
│ casa.                               │
│                                     │
│ [Avatar]                            │
│                                     │
│ Nombre: NewUser                     │
│ Miembros totales: 42                │
└─────────────────────────────────────┘

Farewell Event

The on_member_remove() event triggers when a member leaves:
main.py
@bot.event
async def on_member_remove(member):
    """Se ejecuta cuando un usuario sale del servidor"""
    canal = bot.get_channel(CANAL_BIENVENIDA_ID)
    if canal:
        embed = discord.Embed(
            title="Un miembro se fue",
            description=f"{member.mention} ha abandonado el servidor. Igual nadie lo queria",
            color=discord.Color.red()
        )
        embed.set_thumbnail(url=member.avatar.url)
        embed.add_field(name="Usuario", value=member.name, inline=True)
        embed.add_field(name="Miembros totales", value=str(member.guild.member_count), inline=True)
        await canal.send(embed=embed)
        print(f"[EVENTO] {member.name} abandonó el servidor")

Farewell Message Features

The farewell embed includes:
  • Title: “Un miembro se fue”
  • Description: Farewell message with user mention
  • Color: Red (discord.Color.red())
  • Thumbnail: Member’s avatar image
  • Fields:
    • Member’s username
    • Updated total server member count

Example Output

┌─────────────────────────────────────┐
│ Un miembro se fue                   │
├─────────────────────────────────────┤
│ @OldUser ha abandonado el servidor. │
│ Igual nadie lo queria               │
│                                     │
│ [Avatar]                            │
│                                     │
│ Usuario: OldUser                    │
│ Miembros totales: 41                │
└─────────────────────────────────────┘

Required Setup

1

Enable Member Intents

Member events require the Members Intent to be enabled:
main.py
intents = discord.Intents.default()
intents.members = True  # Enable member events (join/leave)
2

Enable in Discord Developer Portal

Go to your bot’s settings in the Discord Developer Portal:
  1. Select your application
  2. Go to “Bot” settings
  3. Scroll to “Privileged Gateway Intents”
  4. Enable Server Members Intent
  5. Save changes
3

Configure Channel

Set the CANAL_BIENVENIDA_ID to your desired welcome channel:
CANAL_BIENVENIDA_ID = 1234567890123456789  # Your channel ID
Without the Server Members Intent enabled in both the code AND the Developer Portal, these events will not fire. The bot will appear to ignore join/leave events.

Customization Examples

@bot.event
async def on_member_join(member):
    canal = bot.get_channel(CANAL_BIENVENIDA_ID)
    if canal:
        embed = discord.Embed(
            title="🎉 New Member Alert!",
            description=f"Welcome {member.mention} to our awesome community!",
            color=0x00d26a  # Custom hex color
        )
        embed.set_thumbnail(url=member.avatar.url)
        embed.add_field(name="👤 Username", value=member.name, inline=True)
        embed.add_field(name="📅 Joined", value=member.joined_at.strftime("%Y-%m-%d"), inline=True)
        embed.add_field(name="👥 Member #", value=str(member.guild.member_count), inline=True)
        embed.set_footer(text="Make sure to read the rules!")
        await canal.send(embed=embed)

Embed Colors

ChimBot uses color coding for different events:
EventColorValue
Member Join🟢 Greendiscord.Color.green()
Member Leave🔴 Reddiscord.Color.red()
You can customize with:
  • discord.Color.blue()
  • discord.Color.gold()
  • discord.Color.purple()
  • 0xHEXCODE (e.g., 0x00d26a)

Error Handling

The events include basic error handling:
if canal:
    # Only send if channel exists
    await canal.send(embed=embed)
else:
    # Channel not found - log error
    print(f"[ERROR] Welcome channel {CANAL_BIENVENIDA_ID} not found")
If the channel doesn’t exist or the bot lacks permissions, the event will fail silently. Check console logs for event confirmations.

Required Permissions

Bot Permissions

  • View Channel - Access the welcome channel
  • Send Messages - Post welcome/farewell messages
  • Embed Links - Create rich embed messages
  • Attach Files - Display member avatars

Console Logging

All member events are logged to the console for monitoring:
[EVENTO] NewUser se unió al servidor
[EVENTO] OldUser abandonó el servidor

Best Practices

Do: Test events by joining/leaving with an alt account
Do: Use a dedicated welcome channel to avoid spam in general chat
Do: Keep welcome messages friendly and informative
Do: Include links to rules or important channels
Don’t: Make farewell messages too negative or hostile
Don’t: Ping @everyone in welcome messages

Build docs developers (and LLMs) love