Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatControl

Version Downloads License Java Platform

Advanced chat management and control plugin for Paper 1.21.x - 26.2

Chat toggle, message filtering, slowmode, optional private messaging, anti-spam, multi-language, and full PlaceholderAPI + LuckPerms integration

Formerly known as vChatUtils


Features

  • Chat Toggle, Enable/disable chat globally with broadcast notifications
  • Message Hiding, Hide join/leave messages and advancement announcements
  • Chat Filter, Regex-based word and link filtering with configurable patterns
  • Allowed Characters, Whitelist-based character filter to block homoglyph/unicode bypass attempts
  • Anti-Spam, Repeated and similar message detection with configurable thresholds
  • Caps Filter, Block messages with excessive uppercase letters (configurable ratio)
  • Max Line Length, Hard character limit per message (configurable)
  • Slowmode, Cooldown between messages with configurable delay
  • Bypass System, Granular permissions for each restriction (slowmode, filter, caps, etc.)
  • Private Messaging, Full /msg, /reply, /togglepm, /socialspy system (disabled by default — conflicts with EssentialsX; enable with PM: true in config.yml)
  • Chat Formatting, Configurable format with MiniMessage, supports {prefix} {suffix} {username} {message}
  • PlaceholderAPI, Full integration — resolve any %placeholder% in chat format and messages
  • Multi-Language, English, Polish, German, French, Spanish built-in
  • LuckPerms, Prefix/suffix formatting, group-level bypass checks

Commands

Command Description Permission
/chatcontrol Show plugin info (version, author, links) Everyone
/chatcontrol clear [player] Clear chat (global or specific player) chatcontrol.admin
/chatcontrol on Enable chat chatcontrol.admin
/chatcontrol off Disable chat chatcontrol.admin
/chatcontrol status Show plugin status chatcontrol.admin
/chatcontrol reload Reload configuration chatcontrol.admin
/msg <player> <message> Send private message Everyone
/r <message> Reply to last private message Everyone
/togglepm Toggle receiving private messages Everyone
/socialspy Toggle viewing all private messages chatcontrol.admin

Alias: /cc = /chatcontrol (configurable via short-alias in config.yml)

Private messaging commands (/msg, /r, /togglepm, /socialspy, /ignore, /unignore, /ignorelist) are disabled by default because they conflict with other private-messaging plugins like EssentialsX. Set PM: true in config.yml to enable them (requires restart).


Permissions

Permission Description Default
chatcontrol.admin Access to all admin commands and social spy op
chatcontrol.bypass Bypass all chat restrictions op
chatcontrol.bypass.chatdisabled Bypass disabled chat op
chatcontrol.bypass.slowmode Bypass chat slowmode/cooldown op
chatcontrol.bypass.maxlength Bypass max line length limit op
chatcontrol.bypass.caps Bypass caps filter op
chatcontrol.bypass.filter Bypass word/regex filter op
chatcontrol.bypass.allowedchars Bypass allowed characters filter op
chatcontrol.bypass.antispam Bypass anti-spam detection op
chatcontrol.color Use basic color codes (&0-&f) and formatting (&l, &o, &n, &m) in chat false
chatcontrol.color.rgb Use hex color codes (&x, color:#...) in chat false
chatcontrol.format.gradient Use gradients, rainbows, and transitions in chat false
chatcontrol.format.magic Use obfuscated/magic text in chat false

Configuration

View config.yml
# ============================================
# ChatControl Configuration
# ============================================

# language: "en", "pl", "de", "fr", "es"
language: "en"

prefix: "<dark_gray>[<red>ChatControl<dark_gray>] "
chat-enabled: true

# Private Messaging: false = /msg, /r, /togglepm, /socialspy, /ignore, /unignore, /ignorelist
# are left to other plugins like EssentialsX; true = ChatControl owns them (requires restart)
PM: false
hide-join-messages: false
hide-leave-messages: false
hide-advancements: false

enable-chat-slowmode: true
chat-slowmode: 3

# Anti-Spam: repeated/similar message detection
enable-anti-spam: true
anti-spam-repeat-threshold: 3
anti-spam-similarity-threshold: 0.8

# Caps filter: blocks >70% uppercase, min 5 chars
enable-caps-filter: true
caps-filter-threshold: 0.7
caps-filter-min-length: 5

# Max line length: blocks messages >256 chars
enable-max-line-length: true
max-line-length: 256

# Regex chat filter with evasion-proof patterns
enable-chat-filter: true
chat-filter:
  - "(?i)f+[\\W_]*u+[\\W_]*c+[\\W_]*k+"
  ...

# Character whitelist (blocks unicode homoglyphs)
enable-allowed-characters: true
allowed-characters-regex: "^[a-zA-Z0-9\\s\\-_/\\\\.,!?;:'\"()\\[\\]{}@#$%^&*+=<>~`]+$"

# Chat format with MiniMessage
enable-chat-format: true
chat-format: "{prefix}{suffix}<white>{username}</white> <dark_gray>\u00bb</dark_gray> <white>{message}</white>"

# Integrations
luckperms-integration: true
# PlaceholderAPI auto-detected (no toggle needed)

PlaceholderAPI

ChatControl provides its own expansion: %chatcontrol_*%

Placeholder Description
%chatcontrol_prefix% The configured plugin prefix
%chatcontrol_version% Plugin version
%chatcontrol_chat_enabled% Whether chat is enabled (true/false)

Any PlaceholderAPI placeholder (%player_name%, %vault_prefix%, etc.) works in chat format and lang messages.



Links


License

This project is licensed under the PolyForm Noncommercial License 1.0.0.


Made with by vProLabs

Releases

Packages

Contributors

Languages