config.yml
Every key
Section titled “Every key”| Key | Default | Meaning |
|---|---|---|
server-name |
server |
value of the <server> placeholder |
default-language |
en_US |
console language and fallback for players |
quick-chat |
false |
allows quick prefixes like !hello |
chat-delivery |
player |
how chat reaches players, see below |
item-share.enabled |
false |
the <item>, <helmet>, <chestplate>, <leggings>, <boots> tags |
item-share.cooldown |
10s |
delay between item shares per player, empty disables it |
nicknames.enabled |
false |
/nick, /realname and nickname display |
nicknames.min-length |
3 |
minimum visible length, formatting tags excluded |
nicknames.max-length |
24 |
maximum visible length |
nicknames.filter |
true |
rejects nicknames containing blocked words |
update-checker.enabled |
true |
checks GitHub for a newer release on startup |
update-checker.notify |
true |
also tells players with voxen.update when they join |
commands.* |
see below | command names and aliases |
Chat delivery
Section titled “Chat delivery”This is the one setting worth understanding before you go live.
Messages stay signed player chat, rendered through Paper’s chat renderer.
- Vanilla chat reporting and the client’s secure chat features keep working.
- The staff
[x]delete button works, because clients can only remove signed messages. - The signature covers the originally typed text. Word filter censoring and quick prefixes only change what is displayed, so a chat report contains what the player actually typed, not what everyone saw.
This is the default because it keeps everything vanilla does, and message deletion depends on it.
Voxen cancels the chat event and sends its own messages.
- Per-viewer features work fully: censoring per player, ignore lists,
/chattoggle, per-language text. - Messages are not signed, so vanilla chat reporting is disabled and the delete button disappears, since there is nothing a client could delete.
Pick this when per-viewer censoring matters more to you than chat reports and deletion.
Renaming commands
Section titled “Renaming commands”The first entry is the main name, the rest are aliases:
commands: message: [priv, szept] reply: [reply, r] channel: [channel, ch] nickname: [nick] real-name: [realname]/msg becomes /priv with /szept as an alias. Only /voxen cannot be renamed.
Nicknames
Section titled “Nicknames”nicknames: enabled: false min-length: 3 max-length: 24 filter: trueLength is measured on the visible text, so MiniMessage tags do not count against the
limit. With filter: true a nickname containing a word from
the moderation word list is rejected.
<player> in chat formats shows the nickname with the real name on hover. From the
console there is no hover, so staff use /realname <nickname> instead. Setting
enabled: false removes /nick and /realname after a restart and stops nicknames from
being displayed.
Update checker
Section titled “Update checker”update-checker: enabled: true notify: trueOne request to the GitHub releases API when the server starts, off the main thread. If the
newest tag is higher than the running version it goes into the console, and players holding
voxen.update get the update-available message shortly after they join. Nothing is ever
downloaded or installed, and a failed request is silent.
Item sharing
Section titled “Item sharing”item-share: enabled: true cooldown: 10sPlayers holding voxen.chat.tag.item can write <item> to drop their held item into the
message, with a hover preview. <helmet>, <chestplate>, <leggings> and <boots> do
the same for armor. An empty cooldown removes the limit;
voxen.bypass.item-cooldown skips it. Individual channels can refuse item tags with
item-tags: false.