Skip to content

Channels ​

Channels provide scoped chat areas where players can communicate. They are defined in channels.yml.

Channel Properties ​

PropertyTypeDefaultDescription
nameStringRequiredDisplay name of the channel
shortcutStringOptionalA string that, when typed at the start of a message, routes it to this channel (e.g., !)
shortcut_commandsListOptionalCommand aliases that send messages directly to this channel (e.g., sc, staffchat)
rangeInteger-1Maximum distance in blocks for message visibility. -1 means no distance limit (global)
formatStringRequiredMiniMessage format string for messages in this channel
discord_message_formatStringOptionalFormat for messages coming from Discord into this channel
always_visibleBooleantrueWhen true, players with the channel permission can see messages without joining. When false, only joined members see messages
same_worldBooleanfalseWhen true, only players in the same world as the sender can see messages

Permissions ​

  • chatty.channel.<channel_id> - Allows joining and receiving messages from the channel. Also grants access to the channel's shortcut and shortcut commands.
  • chatty.spy.channel.<channel_id> - Allows spying on the channel (see messages without joining).

State Persistence ​

Channel membership and spy state are not persisted between sessions. When a player disconnects:

  • Their active channel is cleared - they return to global chat on next login.
  • Their spy state is cleared - auto-spy re-enables permitted channels on rejoin (see auto-spy on join), but any channels they manually un-spied will be active again.

Shortcuts ​

There are two ways to quickly send messages to a channel without joining it:

  1. Shortcut prefix - Type the shortcut character at the start of your message. For example, if staff_chat has shortcut !, typing !hello sends "hello" to the staff chat.
  2. Shortcut commands - Use a command alias. For example, /sc hello or /staffchat hello sends "hello" to the staff chat.

Range & Visibility ​

  • Range -1 - Messages reach all players (global).
  • Range > 0 - Only players within the specified number of blocks can see the message.
  • same_world: true - Restricts visibility to players in the sender's world.
  • always_visible: true - Players with the channel permission see messages even if they haven't joined the channel.
  • always_visible: false - Only players who have explicitly joined the channel see messages.

Placeholders ​

Channel Format Placeholders ​

PlaceholderDescription
%player_name%The sender's username
%player_display_name%The sender's display name
%channel_name%The channel's display name
%channel_id%The channel's ID (config key)
%message%The message content

Discord Message Format Placeholders ​

These are available in the discord_message_format field:

PlaceholderDescription
%discord_member_name%The Discord user's effective name
%discord_member_role%The Discord role name (with alias applied, or role color if no alias is set)
%discord_member_role_raw%The Discord role name (plain, no styling)
%discord_member_role_color%The Discord role color as #RRGGBB
%discord_channel_name%The Discord channel name
%channel_name%The Minecraft channel's display name
%channel_id%The Minecraft channel's ID
%message%The message content

Example ​

yaml
staff_chat:
  name: "Staff Chat"
  shortcut: "!"
  shortcut_commands:
    - "sc"
    - "staffchat"
  range: -1
  format: "<blue>[%channel_name%]</blue> <yellow>%player_name%</yellow> <dark_gray>›</dark_gray> %message%"
  discord_message_format: "<gray><bold>[DISCORD]</bold></gray> <blue>[%channel_name%]</blue> <yellow>%discord_member_name%</yellow> <dark_gray>›</dark_gray> %message%"
  always_visible: true
  same_world: true

local_chat:
  name: "Local Chat"
  shortcut: "?"
  shortcut_commands:
    - "lc"
    - "localchat"
  range: 100
  format: "<green>[%channel_name%]</green> <yellow>%player_name%</yellow> <dark_gray>›</dark_gray> %message%"
  always_visible: true
  same_world: true

All rights reserved