Triggered when a user leaves the server.

$onLeave[channelID] is a callback, which means it's used in the command trigger (not the code). The command is ran when a user leaves the server.

📌 You can only have 1 single $onLeave[] per bot.




  • channelID (Type: Snowflake || Flag: Required): The ID of the channel where the message should be sent to.


  1. Create a command with the trigger $onLeave[channelID].

    🧙‍♂️ You must replace "channelID" with a valid channel ID or a server variable that holds the channelID (See more here...)!


  2. Input your code/reply text.

    🧙‍♂️ You can use functions like $username, $authorAvatar, $authorID, $membersCount, $serverName[$guildID] here.


  3. Now, you have a leave message! ✨

Not Working? Check out the Troubleshooting section.


Is $onLeave[] bugged or not working?

  • You must have at least version 1.17.9 of the app.

  • Go to Discord Developer Portal and select your bot. Then, click on bot's tab and enable Member Intents.

  • Open BDFD app and select your bot. Go to bot settings and enable Member Intents.

    📝 Enabled intents in the app should reflect the intents enabled in the Discord Developer Portal.
    For example: If you have members intent enabled in the Discord Developer Portal then you should respectively enable them in the app (unless you don't want to use them at all).

  • Make sure $onLeave[channelID] is written in the "command trigger" field and not in the code.

  • Make sure your bot has VIEW_CHANNEL, EMBED_LINKS, SEND_MESSAGES permission in the channel provided in $onLeave[], and that you inputted a valid channel ID.

  • Also, make sure you don't have more than 1 $onLeave[].


Per-Server $onLeave

Both free and premium users can use $onLeave[], and all users can put $getServerVar[] within $onLeave[]. However, non-premium users can not use $getServerVar[] outside of callbacks.
If you own a public bot and want to make it so multiple different servers can use $onLeave[] (e.g. set their own leave message channel), follow these steps:

  1. Create a variable named "leave" and the value set to nothing.

  2. Create a command for setting the leave channel, then put the following in your code:

    $onlyAdmin[You need the admin permission to use that!]
    $argsCheck[>1;Please mention a channel!]
    Leave channel updated!

    📝 Servers will need to setup the channel they want the leave message to send to (by running a command with the code above).

  3. Now replace $onLeave[channelID] in your leave command trigger, with $onLeave[$getServerVar[leave]] and you're all set!