← ALL PLUGINS

GUI BASED · v1.49

DiscordEventWebhooks

Get a message in your Discord when players join, leave, die, make advancements, chat or run commands, and when the server starts or stops: 14 events in all. Every event posts its own embed with your own title, text, colour, name and picture, all set up in game from a menu, on every Minecraft version from 1.8 to 26.3.

#server-logs
LIVE PREVIEW · DEFAULT CONFIG
1,954downloads
5.0 ★1 rating
–servers now
–players now

01 · INSTALL

Getting started

  1. Download the jar from Spigot. It's free.
  2. Drop it into your server's plugins folder. If you're upgrading, delete the old DiscordEventWebhooks jar first.
  3. Restart the server. The console shows a DiscordEventWebhooks banner when it's enabled, and plugins/DiscordEventWebhooks/config.yml is created.
  4. Run /dswb in game, click Set Webhook URL for All Events (the ender chest at the bottom middle) and paste your Discord webhook URL in chat. Every event now sends to that channel. That's the only command you need.
  5. Open any event and click Send Test Message to check it reaches your channel. Turn off the events you don't want, or give one its own URL with Set Webhook URL in its menu.
Upgrading from 1.49? Your config.yml keeps working as it is: the keys are the same, and settings that are new in 2.0 (like the eight new events and the extra colours) use their defaults until you change them.
Only one copy. Never keep two DiscordEventWebhooks jars in the plugins folder at the same time.

02 · DISCORD

Making a webhook

A webhook is a link that lets the plugin post into one Discord channel. You need the Manage Webhooks permission in that channel (server owners and admins have it).

01

Channel settings

In Discord, hover the channel you want the alerts in and click the gear ⚙ (Edit Channel).

02

New webhook

Open Integrations, then Webhooks, and click New Webhook.

03

Copy the URL

Click the new webhook and press Copy Webhook URL. It starts with https://discord.com/api/webhooks/.

04

Paste it in game

In /dswb, click Set Webhook URL for All Events (or an event's own Set Webhook URL) and paste it in chat. Other players can't see what you paste.

Keep the URL private: anyone who has it can post in that channel. If it leaks, delete the webhook in Discord and make a new one. You can use one webhook for every event (the Set Webhook URL for All Events button does that in one go), or a different channel for each (for example chat in one channel, commands in a staff-only one). The two mix: set one URL for all, then change just the ones that should go elsewhere.

03 · EVENTS

Fourteen events

Each event has its own menu in /dswb, its own on/off switch, URL and embed. An event is only sent when it's Enabled and has a webhook URL, so the ones you don't set up stay quiet. These are the default embeds.

04 · TRY IT

Embed playground

Pick an event, change its text, colour, name and picture, and see exactly how the embed looks in Discord. Then set the same thing in game with /dswb, or, as an alternative, copy the lines into config.yml.

Placeholders are filled in with example values. Discord formatting like **bold**, *italic*, __underline__ and `code` works in the description.

05 · COMMANDS

Every command

You don't need any of these except /dswb. Open it, click the event you want to change, then click the setting and type the new value in chat. The other commands are optional shortcuts that do the same thing, and are handy from the console.

CommandAliasesWhat it doesPermission

Optional set commands

/dswbset <event> <field> <value> works for every event, for example /dswbset death title Rest in peace, and /dswbset all url <url> gives every event the same URL. The six events from 1.x () also keep their own shortcut commands, one per value, shown below with the full name in the tooltip. Everything after the command is used as the value, spaces included, so /jwtitle Welcome to the server! works. Use none to clear a value, or to remove a URL. For , use /dswbset or the menu.

All 40 commands need discordwebhooks.config. Event names for /dswbset and /dswbtest: .

06 · PERMISSIONS

One permission

Example with LuckPerms: /lp user <name> permission set discordwebhooks.config true. The events themselves need no permission: they're sent for every player.

08 · CONFIG

config.yml

Found at plugins/DiscordEventWebhooks/config.yml. You don't need to edit this file: every setting can be changed in game with /dswb, including the ones under other (in Other Settings, the anvil). Editing it by hand and running /dswbreload is an alternative. Changes made from the menu only touch the one setting you changed. Switches accept 'True'/'False' or true/false.

KeyDefaultWhat it does
Full default config.yml show

09 · PLACEHOLDERS

Placeholders

Use these in the title, description, footer and username of any event, and in playerHeadURL. Some only exist for one event, as noted. Server Start and Server Stop have no player, so only %online_players%, %max_players% and %server_version% work there. Minecraft colour codes are removed before sending, because Discord can't show them; use Discord formatting like **bold** instead.

Colours. , or any hex colour like #5865F2.

10 · CHANGELOG

What's new

Older updates on Spigot →

11 · HELP

Common questions

Nothing shows up in Discord

Open /dswb: the event needs to say Enabled and have a URL. Then open the event and click Send Test Message. The plugin tells you in chat whether Discord accepted it and, if not, why. Errors from real events are also written to the console (at most once a minute per event), for example Could not send the Join webhook. HTTP 404: the webhook was deleted in Discord, or the URL is wrong.

Discord says HTTP 400

Discord didn't accept the message. The usual causes are a webhook username containing the word "discord" (Discord doesn't allow it) or an icon that isn't a link to an image. Set a different username or icon, or type none to use the webhook's own name and picture.

Will it lag my server?

No. Messages are sent in the background, one after another, so the server never waits for Discord. If you send lots at once (busy chat, for example) and Discord asks the plugin to slow down, it waits and sends them a moment later instead of dropping them.

Can players see my webhook URL?

No. When you paste it into the chat prompt, your message is hidden from everyone else and isn't sent to the Player Chat webhook. Menus and chat only show the start of the URL, the console never prints it, and the commands that set a URL are never logged by the Command Ran webhook.

Are passwords from /login sent to Discord?

No. Commands in ignoredCommands are never sent, and the default list covers the usual login plugin commands: login, l, log, register, reg, changepassword, changepass and cp. Add or remove commands in /dswb > Other Settings > Ignored Commands: type a command to add it, or one that's already on the list to remove it.

Can players ping @everyone through the chat webhook?

No. Every message is sent with mentions switched off, so @everyone, @here, user and role mentions show as plain text and nobody is pinged.

Will a new player get both the Join and First Join messages?

No. When First Join is enabled and has a URL, a player joining for the very first time gets only the First Join message. Everyone else, and new players when First Join isn't set up, get the normal Join message.

Why do I get a Leave message when someone is kicked?

A kicked player also leaves, so both are sent: Kick (with the reason) and then Leave. Turn one of them off if you only want one.

Server Start and Server Stop were sent when I ran /reload

Reloading stops and starts every plugin, so the plugin can't tell a reload from a restart. Use a full restart instead of /reload, which also avoids many other plugin problems.

Which advancements are sent?

The same ones Minecraft announces in chat. Recipe unlocks and hidden advancements aren't sent. On 1.8 to 1.11, which had achievements instead, each achievement is sent.

I used OPCommandLogger. What do I use now?

OPCommandLogger is discontinued, and this plugin does its job. Open /dswb, give the Command Ran event a webhook URL, make sure it's Enabled, and click Log Operator Commands Only (the diamond pickaxe). Every command an operator runs is then posted to your Discord, with who ran it and the full command, instead of being saved to a file. Remove the OPCommandLogger jar when you switch.

How do I only log commands from staff?

Open the Command Ran menu in /dswb and click Log Operator Commands Only (the diamond pickaxe). Then only commands run by operators are sent.

The player head picture doesn't show

The picture comes from playerHeadURL, by default https://mc-heads.net/avatar/%player_name%/128. If that site is down, or you prefer another one, open /dswb > Other Settings > Player Head Picture and type another skin site, for example https://minotar.net/avatar/%player_name%/128, or none to remove it.

How do I put everything back to the defaults?

Open /dswb and click Reset Config (the TNT in the top left). A second menu asks you to confirm, because this cannot be undone: every webhook URL is removed and every title, description, colour and switch goes back to its default.

Does it work on Paper, Purpur or other forks?

Yes. It uses only the standard Bukkit API, so Spigot, Paper and forks based on them from 1.8 to 26.3 are supported. The same jar works on all of them.

NEED A HAND?

Ask in the Discord.

If something isn't working, join the Discord and ask. Include your server version and anything the console printed about DiscordEventWebhooks (never share your webhook URL).