Skip to content

Quick start

This walks through the setup most servers end up with: a global channel everyone talks in, a local channel for roleplay range, a staff channel behind a permission, and a word filter that actually blocks something.

After the first start you already have a working chat. global is enabled, every player joins it, and ! sends there from any other channel. local ships disabled so a fresh server behaves like vanilla until you decide otherwise.

  1. config.yml — this is what the <server> placeholder shows, in chat and across the network.

    plugins/Voxen/config.yml
    server-name: "survival"
    default-language: en_US
    quick-chat: true
  2. Every channel file has its own format. Placeholders are listed in Chat formats.

    plugins/Voxen/channels/global.yml
    display-name: "<green>Global</green>"
    type: global
    default: true
    quick-prefix: "!"
    aliases: [g, global]
    format: "<gray>[<green>G</green>]</gray> <prefix><white><player></white><suffix><dark_gray>:</dark_gray> <message>"

    <prefix> and <suffix> come from LuckPerms or Vault, so ranks show up without any extra config.

  3. local only reaches players within radius blocks. Make it the channel new players talk in and keep global one ! away.

    plugins/Voxen/channels/local.yml
    enabled: true
    type: local
    default: true
    default-active: true
    radius: 100
    empty-warning: true

    empty-warning: true tells the sender when nobody was in range, which saves a lot of “is chat broken” questions.

  4. The permission nodes live in the channel file, not in plugin.yml, so you name them yourself.

    plugins/Voxen/channels/staff.yml
    quick-prefix: "@"
    permissions:
    read: voxen.channel.staff
    write: voxen.channel.staff
    join: voxen.channel.staff
    manage: voxen.channel.staff.manage

    Give your staff group voxen.channel.staff and they can read the channel and write to it with @message from anywhere.

  5. plugins/Voxen/modules/moderation.yml
    cooldown: "2s"
    filter:
    enabled: true
    mode: censor
    censor-char: "*"
    words:
    - darn
    normalize:
    leetspeak: true
    diacritics: true
    separators: true

    With normalization on, d4rn, dąrn and d.a.r.n all hit the same entry. See Moderation for the link filter, slowmode and the chat log.

  6. Players cannot use any formatting until you say so. Give your VIP group exactly what you want it to have:

    voxen.chat.tag.color
    voxen.chat.tag.bold
    voxen.chat.tag.italic

    Not voxen.chat.tag.* unless you mean everything. Details and the full node list are in What players may type.

  7. /voxen reload

    Only command renames under commands: need a full restart.

Going multi-server

Switch storage.yml to MySQL, set a transport in integrations.yml, flip cross-server: true on the channels you share. Cross-server chat

Renaming commands

Every player command can be renamed and aliased under commands: in config.yml. config.yml