Skip to content
Sign upLog in
← Back to Community

Edit a message - Discord.js Bot Development

Profile icon
almostStatic

Editing Messages | Discord.js

If you do not have a solid understanding of JavaScript or how it works and wish to learn how to do this; I suggest that you read some guides! There are some I have linked below.

Editing a sent message

There are loads of ways we can go around doing this, but let's start with one of the simplest (using a .then() block) :

message.channel.send("Beep").then((sentMessage) => sentMessage.edit("Boop!"))

The code above will send a message saying Beep and then quickly edit it to Boop!.

Remember, you can do anything with the sentMessage variable.

Using async / await

Anywhere inside an async function, you can use the operator await.

Quick Definition: await is used to wait for the promise to either be accepted or rejected. Basically, await is used to make sure something happens after the thing(s) before it have been executed.

Implementation of async / await

Alright, let's get down to some code, eh?

const msg = await message.channel.send("Beep"); msg.edit("Boop"); // you can do whatever you want with the msg variable; it returns the normal message object. msg.react("👋")

Here, we do const msg = await message.channel.send("Beep"). What this does is it sends a message saying "Beep" (making sure that everything else before it has been completed) and storing it as a variable msg.

Refer to the Official Discord.js Guide website for further resources

Voters
Profile icon
AdityaSanghi
Profile icon
Mr9FPS
Profile icon
epicly2000
Profile icon
EHSANURRAHMANRA
Profile icon
CentralCafe
Profile icon
Br8eb3odndpwksdodnsm
Profile icon
Mortis7286
Profile icon
DiamondDev01
Profile icon
SkidTrack
Profile icon
BenClarke7
Comments
hotnewtop
Profile icon
JUMBA

is it possible to make it so the bot sends the message after a command, like you showed, but instead of it instantley editing it, it does so after another command?
for example i say a, the bot responds b, then i say c, and he edits the "b" to be a "d". Kinda confusing, but i hope you understand.

Profile icon
chankelvin

@plitchorinkos
Yes it is possible using Message Collectors / Reaction collectors https://discordjs.guide/popular-topics/collectors.html#await-messages

Profile icon
RhyleyPlant

do you know if there is a way to edit a message after a user has sent a message?

Profile icon
almostStatic

@RhyleyPlant
Bots can only edit messages they have sent. You would need to get the bot to send a message, assign that to a variable and edit that via the message event. (client.on('message'...)..)