Skip to content

System messages

Voxen can take over the lines the server writes by itself: who joined, who left, who died and who earned an advancement. Each one is a block of its own, so you can rewrite the join message and leave deaths to vanilla.

plugins/Voxen/modules/system-messages.yml
enabled: false
respect-vanish: true
join:
enabled: true
format: "<dark_gray>+ <green><player> <gray>joined <white><server>"
channel: "global"
cross-server: true
discord: true

The whole module is off until enabled: true, so an update never changes what your players see. Once it is on, Voxen silences the vanilla line of every event that is enabled below it and writes its own; events left off keep behaving exactly as before.

Block When it fires
join a player logs in
first-join their very first login, instead of join
quit a player logs out
server-switch they moved to another server on the network, instead of quit and join
death a player dies
advancement a player earns an advancement that announces itself in chat

Every block takes the same five settings, plus delay on quit:

Setting What it does
enabled whether Voxen writes this message at all
format the message itself, in MiniMessage
channel whose readers see it, a channel from channels/
cross-server send it to the other servers on the network as well
discord forward it to DiscordSRV or EssentialsDiscord

Formats take the same placeholders as chat formats — <player> (the nickname when one is set), <username>, <display_name>, <prefix>, <suffix>, <group>, <world>, <server> — plus PlaceholderAPI and MiniPlaceholders. Some blocks add their own:

Block Extra placeholders
server-switch <from> and <to>, the network ids of the two servers
death <message>, the death message the server would have printed
advancement <advancement> and <message>, its title and its description

There are two ways to end up with no message, and they are not the same.

enabled: false hands the event back to the server. Voxen writes nothing and the vanilla line comes back, so players still read Steve joined the game in the default yellow.

An empty format with enabled: true keeps the event in Voxen’s hands and writes nothing at all. The vanilla line stays suppressed, so nothing reaches chat, Discord or the other servers on the network.

plugins/Voxen/modules/system-messages.yml
advancement:
enabled: true
format: ""

That is how you silence an event completely, which is the usual answer when advancement spam is the reason you opened this file. It works the same for every block: an empty first-join format lets a first login pass without a word, while first-join.enabled: false announces it with the join message instead.

On a network a player walking from survival to lobby leaves one server and joins another, so without help they look like someone who left the network and someone else who arrived.

delay on quit is what prevents that. The quit message waits that long before it is written; if the player turns up on another server in the meantime, the origin server drops it and the new server writes server-switch instead. Two seconds is enough for a proxy transfer.

The wait only happens where a switch is possible, meaning modules/presence.yml is on and network.transport is set. On a single server there is nothing to tell apart, so the message is written the moment the player disconnects and delay is ignored.

plugins/Voxen/modules/system-messages.yml
quit:
enabled: true
delay: 2s
format: "<dark_gray>- <red><player> <gray>left"
server-switch:
enabled: true
format: "<dark_gray>» <aqua><player> <gray>went from <white><from></white> to <white><to>"

Voxen knows where a player came from through presence tracking, so modules/presence.yml has to be on and network.transport has to be configured. Without them every arrival is a plain join, which is the right answer on a single server.

Set server-switch.enabled: false to treat a switch like any other join and quit, and set delay: 0 to write the quit message the moment the player disconnects.

With respect-vanish: true a vanished moderator slips in and out without a word: no join, no quit, no death and no advancement. The same setting keeps them out of /voxen find, out of the player suggestions on Voxen’s commands and out of the network player list other servers see.

Voxen reads the vanished metadata that Essentials, CMI, SuperVanish and PremiumVanish all set, so no extra configuration is needed. Staff who are allowed to see vanished players still get them in their suggestions, because that follows the same visibility the server itself uses.