What gets logged
Nineteen events, each with its own toggle, its own embed colour, and its own optional channel. This page is what each one actually posts.
Everything here is on by default except where noted, and every one can be turned
off in config.yml or with the config generator.
Player events
Join and quit
Posts when someone connects or disconnects, with their skin as the embed thumbnail.
If the server runs Geyser with Floodgate, joins from Bedrock are flagged as such. It never labels anyone “Java” — absence of evidence isn’t evidence, and saying so would be wrong on any server without Floodgate installed.
log:
player:
join:
enabled: true
show_platform: true
Chat
Every public chat message, with the player’s name in bold. Messages are escaped before sending, so nobody can inject Markdown into your channel by typing it.
Filterable by content and by minimum length — useful against hi, ? and .
spam.
Commands
Every command a player runs, exactly as typed.
This is why /login, /register and /msg are filtered by default. Command
logging posts the line verbatim, so without that deny-list you would publish
passwords and private messages to Discord. Matching ignores arguments and plugin
prefixes, so /essentials:msg hi is caught as msg.
Deaths
The death message, plus a Cause of Death field built from server-side damage context rather than the client’s localised text — so it reads identically for Java and Bedrock players, and in any language.
Coordinates are off by default, because anyone who can read the channel can
then find the body and its dropped items. Turn them on with show_coords.
Deaths can be filtered by cause, which matters on a void world or a parkour course.
Advancements
Advancement unlocks. Recipe unlocks and tab roots are skipped by default — they fire constantly and mean nothing to a reader.
Filterable by key, and a trailing * matches a whole tab:
minecraft:husbandry/*.
Teleports
Teleports, with distance. The noisiest event on most servers, so three causes are excluded by default because they aren’t really teleports at all:
| Cause | Why it’s excluded |
|---|---|
EXIT_BED |
standing up from a bed |
DISMOUNT |
getting off a horse, boat or minecart |
SPECTATE |
a spectator jumping to a player |
Add PLUGIN if you use Essentials — /home, /warp and /spawn all arrive
that way and are usually the bulk of what’s left.
Gamemode changes
When someone switches between survival, creative, adventure or spectator. Often the first thing you want in an audit channel.
Server events
Start and stop
The plugin announces server start, and logs a clean shutdown.
Console commands
Commands run from the console or terminal, with the sender shown as Server.
Explosions
Explosions with their source and how many blocks were destroyed — creepers, TNT, end crystals, beds in the Nether, respawn anchors.
Filterable by source and by a minimum block count, so a creeper going off in mid air over nothing doesn’t earn a message.
Moderation events
Bans, unbans, kicks, op, deop, whitelist on/off, and whitelist add/remove.
Only logged when they actually succeeded. A failed ban attempt from someone without permission doesn’t appear, so the channel is a record of what happened rather than what was tried.
Each carries who did it and, where the command supplies one, why.
Known limitation: punishment plugins such as LiteBans, LibertyBans and AdvancedBan keep their own database rather than the vanilla ban list, so their punishments may not be detected. If you use one of those, moderation logging may be quieter than you expect.
Sending events to different channels
Any event can carry its own webhook, so moderation can go to a private staff channel while chat stays public:
log:
moderation:
ban:
enabled: true
webhook: "https://discord.com/api/webhooks/…"
Anything left blank uses the main webhook. Each destination gets its own queue, so a busy chat channel never delays your moderation log.
Turning things off
Three ways, depending on how much you want to change:
- One event — set its
enabledtofalse - A pattern across events — use one of the fifteen filters: players, worlds, commands, chat content, advancements, teleport causes, death causes, explosion sources
- Everything, visually — the config generator builds the whole file in your browser
Next
- Setup guide — from install to first message
- Configuration reference — every key explained
- Webhook not posting? — if an event isn’t arriving