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
The on_member_join() event triggers when a new member joins:
main.py
@bot.eventasync 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")
The on_member_remove() event triggers when a member leaves:
main.py
@bot.eventasync 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")
┌─────────────────────────────────────┐│ Un miembro se fue │├─────────────────────────────────────┤│ @OldUser ha abandonado el servidor. ││ Igual nadie lo queria ││ ││ [Avatar] ││ ││ Usuario: OldUser ││ Miembros totales: 41 │└─────────────────────────────────────┘
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.
@bot.eventasync 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)
@bot.eventasync def on_member_remove(member): canal = bot.get_channel(CANAL_BIENVENIDA_ID) if canal: embed = discord.Embed( title="👋 Goodbye!", description=f"{member.name} has left the server.", color=0xff6b6b # Custom hex color ) embed.set_thumbnail(url=member.avatar.url) embed.add_field(name="Member Count", value=str(member.guild.member_count), inline=False) embed.set_footer(text="We hope to see you again!") await canal.send(embed=embed)
Automatically assign a role to new members:
@bot.eventasync def on_member_join(member): # Assign default role default_role = discord.utils.get(member.guild.roles, name="Member") if default_role: await member.add_roles(default_role) # Send welcome message canal = bot.get_channel(CANAL_BIENVENIDA_ID) if canal: embed = discord.Embed( title="Welcome!", description=f"{member.mention} has been given the {default_role.mention} role!", color=discord.Color.green() ) await canal.send(embed=embed)
Send a direct message to new members:
@bot.eventasync def on_member_join(member): # Send DM to new member try: await member.send( f"Welcome to {member.guild.name}! " "Please read the rules in #rules channel." ) except discord.Forbidden: print(f"Couldn't DM {member.name} (DMs disabled)") # Send server announcement canal = bot.get_channel(CANAL_BIENVENIDA_ID) if canal: await canal.send(f"Welcome {member.mention}!")
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.