Skip to content

Channel Configuration

Bruno Martins edited this page Mar 15, 2026 · 3 revisions

Each channel in HeroChat is defined by a configuration file (e.g., global.json, local.json). This document details all the available options for configuring a channel.

Configuration Fields

Name

  • Type: String
  • Default: "Global"
  • Description: The display name of the channel. This is used in messages and UI elements.

Commands

  • Type: Array<String>
  • Default: ["g", "global"]
  • Description: A list of commands that can be used to send messages to this channel or set it as the focused channel.

ShoutCommands

  • Type: Array<String> (Optional)
  • Default: null
  • Description: A list of prefixes that, when used at the beginning of a message, will force the message to be sent to this channel, bypassing the focused channel.

Format

  • Type: String
  • Default: "{color}[Global] {#FFFFFF}{player_nickname}{#555555}{bold}> {color}{message}"
  • Description: The format of the chat message. This string supports placeholders from PlaceholderAPI and custom components defined in the Components section.

Permission

  • Type: String (Optional)
  • Default: null
  • Description: A permission node required to send messages in this channel. If not specified, anyone can send messages.

Distance

  • Type: Double (Optional)
  • Default: null
  • Description: If set, this channel becomes a proximity channel. Only players within this distance of the sender will receive the message.

CrossWorld

  • Type: Boolean (Optional)
  • Default: null
  • Description: If Distance is set, this option determines if the proximity check should apply across different worlds.

CapslockFilter

  • Type: Object
  • Description: Configuration for the capslock filter.
    • Enabled: Boolean (Default: true) - Whether to enable the filter.
    • Percentage: Integer (Default: 50) - The minimum percentage of uppercase characters in a message to trigger the filter.
    • MinLength: Integer (Default: 5) - The minimum message length to which the filter should apply.

Cooldowns

  • Type: Map<String, Long>
  • Default: {}
  • Description: A map of permission nodes to chat cooldowns in milliseconds. The key is the permission (e.g., herochat.cooldown.chat.default), and the value is the cooldown duration.

Components

  • Type: Map<String, Object>
  • Default: {}
  • Example: {"color": {"Text": "{#DDDDDD}"}}
  • Example2: {"color_admin": {"Text": "{#DDDDDD}", "Permission": "herochat.admin.color"}}
  • Description: Defines custom components that can be used in the Format string. Each key is the component name (e.g., {color}). The permission field is optional, if the sender does not have that permission then the component text won't be shown.

Example Configuration

{
  "Name": "Global",
  "Commands": [
    "g",
    "global"
  ],
  "ShoutCommands": [
    "!"
  ],
  "Format": "[G] {luckperms_prefix} {player_username} {luckperms_suffix} &8> {message}",
  "Permission": "chat.global",
  "CapslockFilter": {
    "Enabled": true,
    "Percentage": 50,
    "MinLength": 5
  },
  "Cooldowns": {
    "chat.default": 3000,
    "chat.vip": 1000,
    "chat.admin": 0
  },
  "Components": {}
}
{
  "Name": "Local",
  "Commands": [
    "l",
    "local"
  ],
  "Format": "{chColor}[L] {luckperms_prefix} {player_username} {luckperms_suffix} &8> {chColor}{message}",
  "Distance": 60,
  "CrossWorld": false,
  "CapslockFilter": {
    "Enabled": true,
    "Percentage": 50,
    "MinLength": 5
  },
  "Cooldowns": {},
  "Components": {
    "chColor": {
      "Text": "{#555555}"
    }
  }
}

Clone this wiki locally