promotional bannermobile promotional banner

Werchat

A fully featured chat plugin including a chat channel system for Hytale servers. Organize player communication with customizable channels, private messaging, and moderation tools.
Screenshot 2026-01-14 163833.png

Screenshot 2026-01-14 163833.png

Screenshot 2026-02-20 223917.png

Screenshot 2026-02-20 223917.png

Screenshot 2026-02-20 223911.png

Screenshot 2026-02-20 223911.png

Screenshot 2026-01-13 230812.png

Screenshot 2026-01-13 230812.png

Screenshot 2026-02-20 223906.png

Screenshot 2026-02-20 223906.png

Screenshot 2026-02-20 223924.png

Screenshot 2026-02-20 223924.png

Description

Werchat

Latest Release License GitHub Stars

Channel-based chat system for Hytale servers. Multiple channels, quick-chat routing, private messaging, nicknames, and moderation — all in one plugin.

Discord

Features

Channel System — Multiple channels with custom colors, nicknames, distance-based and world-restricted delivery.

Quick Chat — Prefix symbols to route messages to any channel without switching. ! for Global, ~ for Trade.

Private Messaging/msg and /r with reply tracking, ignore lists, and offline detection.

Player Nicknames — Custom display names up to 20 characters with hex colors and two-color gradients.

Mention System@player highlighting with configurable color and bold formatting.

Moderation Tools — Per-channel ban, mute, moderators, word filter (censor/block modes), and chat cooldown.

Permission Integration — HyperPerms and LuckPerms prefix/suffix support with hex color codes.

PlaceholderAPI Integration — Supports external %...% placeholders in channel format text and includes a built-in %werchat_*% expansion.

Plugin API — Exposes a lightweight WerchatAPI for other plugins to query channels, manage membership/focus, and submit chat through Werchat's pipeline.

Message Colors — Independent message text colors and gradients, separate from nickname colors.

Persistent Storage — JSON-based data with dirty + debounced saves (20s) and a final flush on shutdown.

Quick Start

  1. Drop Werchat-1.1.9.jar in your mods/ folder
  2. Start your server — four default channels are created automatically
  3. Use /ch list to see channels, /ch join <channel> to join one
  4. Type !hello to quick-chat in Global or ~hello for Trade
/ch list                    # List all channels
/ch global                  # Switch to Global channel
/ch join trade              # Join the Trade channel
/msg Steve Hey!             # Send a private message
/ch playernick CoolName     # Set your nickname

Default Channels

Channel Nick Color Range Auto-Join Quick-Chat Symbol
Global Global White (#ffffff) Unlimited Yes !
Local Local Gray (#808080) 100 blocks Yes
Trade Trade Gold (#ffd700) Unlimited Yes ~
Support Support Green (#00ff00) Unlimited Yes

Commands

Player Commands

Command Aliases Description
/ch list /ch l List all channels
/ch join &amp;lt;channel&amp;gt; [password] /ch j Join a channel
/ch leave &amp;lt;channel&amp;gt; Leave a channel
/ch &amp;lt;channel&amp;gt; Switch active channel
/ch who &amp;lt;channel&amp;gt; /ch w View channel members
/ch info &amp;lt;channel&amp;gt; View channel details
/ch create &amp;lt;name&amp;gt; [nick] Create a new channel
/ch playernick &amp;lt;name&amp;gt; [#color] [#gradient] /ch pnick, /ch nickname Set your nickname
/ch msgcolor &amp;lt;#color&amp;gt; [#gradient] /ch chatcolor Set your message color
/ch help /ch ? Show command help

Messaging Commands

Command Aliases Description
/msg &amp;lt;player&amp;gt; &amp;lt;message&amp;gt; /whisper, /w, /tell, /pm Send a private message
/r &amp;lt;message&amp;gt; /reply Reply to last PM
/ignore &amp;lt;player&amp;gt; Toggle ignore on a player
/ignorelist List ignored players

Admin / Moderator Commands

Command Aliases Description
/ch color &amp;lt;channel&amp;gt; &amp;lt;#hex&amp;gt; [#hex] Set channel tag color (and optional message color)
/ch nick &amp;lt;channel&amp;gt; &amp;lt;nick&amp;gt; Set channel shortcut name
/ch rename &amp;lt;channel&amp;gt; &amp;lt;newname&amp;gt; Rename a channel
/ch password &amp;lt;channel&amp;gt; [password] /ch pass Set or clear channel password
/ch distance &amp;lt;channel&amp;gt; &amp;lt;blocks&amp;gt; /ch range Set range (0 = unlimited)
/ch world &amp;lt;channel&amp;gt; add|remove &amp;lt;world&amp;gt; Restrict channel to worlds
/ch mod &amp;lt;channel&amp;gt; &amp;lt;player&amp;gt; /ch moderator Add a channel moderator
/ch unmod &amp;lt;channel&amp;gt; &amp;lt;player&amp;gt; Remove a channel moderator
/ch ban &amp;lt;channel&amp;gt; &amp;lt;player&amp;gt; Ban a player from a channel
/ch unban &amp;lt;channel&amp;gt; &amp;lt;player&amp;gt; Unban a player
/ch mute &amp;lt;channel&amp;gt; &amp;lt;player&amp;gt; Mute a player in a channel
/ch unmute &amp;lt;channel&amp;gt; &amp;lt;player&amp;gt; Unmute a player
/ch remove &amp;lt;channel&amp;gt; /ch delete, /ch del Delete a channel
/ch reload Reload Werchat config and channel data from disk

Channel moderators can use admin commands on their own channels without needing global permission nodes.

 All Permissions  Permission Description
werchat.* All Werchat permissions (wildcard)
werchat.list List channels
werchat.join Join channels
werchat.leave Leave channels
werchat.create Create channels
werchat.who View channel members
werchat.info View channel info
werchat.switch Switch active channel
werchat.color Set channel colors
werchat.nick Set channel nick
werchat.password Set channel password
werchat.rename Rename channels
werchat.remove Delete channels
werchat.mod Manage channel moderators
werchat.distance Set channel range
werchat.ban Ban/unban from channels
werchat.mute Mute/unmute in channels
werchat.world Set world restrictions
werchat.reload Reload Werchat config/channel data
werchat.msg Send private messages
werchat.ignore Ignore players
werchat.quickchat Use quick-chat symbols
werchat.playernick Set own nickname
werchat.playernick.others Set other players' nicknames
werchat.nickcolor Set nickname color/gradient
werchat.msgcolor Set own message color
werchat.msgcolor.others Set other players' message color
werchat.cooldown.bypass Bypass chat cooldown

Players with werchat.* or * also bypass cooldowns and the word filter.

Per-channel permission nodes:

  • werchat.channel.<channel>.join
  • werchat.channel.<channel>.speak
  • werchat.channel.<channel>.read (primary receive/read node)

These nodes are enforced in normal /ch + chat flow only when channelPermissions.enforce is enabled.  

Configuration

Config file: mods/com.werchat_Werchat/config.json

 View full config 

{
  "defaultChannelName": "Global",
  "autoJoinDefault": true,
  "showJoinLeaveMessages": true,
  "allowPrivateMessages": true,
  "channelPermissions": {
    "enforce": false
  },
  "banMessage": "You have been banned from {channel}",
  "muteMessage": "You have been muted in {channel}",
  "wordFilter": {
    "enabled": false,
    "mode": "censor",
    "replacement": "***",
    "notifyPlayer": true,
    "warningMessage": "Your message contained inappropriate language.",
    "words": ["..."]
  },
  "cooldown": {
    "enabled": false,
    "seconds": 3,
    "message": "Please wait {seconds}s before sending another message.",
    "bypassPermission": "werchat.cooldown.bypass"
  },
  "mentions": {
    "enabled": true,
    "color": "#FFFF55"
  },
  "ignoreChatCancellations": false
}
Key Default Description
defaultChannelName "Global" Default channel players are placed in
autoJoinDefault true Auto-join default channel on connect
showJoinLeaveMessages true Broadcast join/leave messages to channels
allowPrivateMessages true Whether /msg is enabled
channelPermissions.enforce false Enforce per-channel join/speak/read nodes in normal /ch + chat flow
banMessage "You have been banned from {channel}" Message shown to banned players
muteMessage "You have been muted in {channel}" Message shown to muted players
wordFilter.enabled false Enable the word filter
wordFilter.mode "censor" censor replaces bad words, block rejects the message
wordFilter.replacement "***" Replacement string in censor mode
wordFilter.notifyPlayer true Warn the player when filtered
wordFilter.warningMessage "Your message contained..." Warning message text
wordFilter.words (default list) Words to filter (case-insensitive)
cooldown.enabled false Enable chat cooldown
cooldown.seconds 3 Seconds between messages
cooldown.message "Please wait {seconds}s..." Cooldown message
cooldown.bypassPermission "werchat.cooldown.bypass" Permission to bypass cooldown
mentions.enabled true Enable @mention highlighting
mentions.color "#FFFF55" Hex color for mention highlights
ignoreChatCancellations false Process chat even if cancelled by other plugins

When channelPermissions.enforce is enabled:

  • join checks run in /ch join and /ch <channel> auto-join.
  • speak checks run before sending messages.
  • read checks run for sender selection and per-recipient delivery.
  • Password checks still apply; permission nodes never bypass channel passwords.  

Channel Format Placeholders

Custom channel message formats support these placeholders:

Placeholder Description
{name} Full channel name
{nick} Channel nick/abbreviation
{color} Channel color code
{sender} Player display name
{msg} Message content
{prefix} Player's permission prefix (HyperPerms/LuckPerms)
{suffix} Player's permission suffix (HyperPerms/LuckPerms)

Default format: {nick} {sender}: {msg}

Format literals also support PlaceholderAPI placeholders when PlaceholderAPI is installed.

Werchat also registers a built-in PlaceholderAPI expansion with identifier werchat. You can find all possible ones in the Github ReadMe

Links


Part of the HyperSystems suite: HyperPerms | HyperHomes | HyperFactions | Werchat

The Werchat Team

profile avatar
Owner
  • 1
    Projects
  • 1.4K
    Downloads
Donate