
VoidChat+
A high-performance, lightweight local and global chat system for servers.
!VoidChat Banner
💬 VoidChat
Purpose-built communication for modern Minecraft communities.
VoidChat separates player communication into proximity-based local chat and a server-wide global channel, giving communities clearer conversations without unnecessary complexity.
!VoidChat Features
✨ Features
Everything needed to keep conversations organized without making server management difficult.
- Local chat with a configurable range or whole-world mode
- Global chat using
!message,/global <message>,/g <message>, or the main plugin command - Independent local and global cooldowns with separate bypass permissions
- Per-channel block requirements for local and global chat
- Persistent block progress and global-mute preference
- Anti-Swear detection resistant to colors, separators, accents, leetspeak, and common look-alike characters
- Correct enforcement of legacy and HEX chat colors
- Optional PlaceholderAPI support with protected internal placeholders
- Local Chat Spy, global-channel mute, chat clear, and server-wide chat toggle
- Compatible update selection based on Minecraft version and server engine
!VoidChat Workflow
⚙️ How It Works
VoidChat turns every message into a clear, predictable communication flow.
- A player sends a regular message or selects the global channel.
- VoidChat verifies channel permissions, cooldowns, chat status, and block requirements.
- The message is safely filtered and formatted using the selected local or global format.
- Delivery is scheduled correctly for eligible players and the server console.
🌐 Channel Behavior
- A regular message is delivered to players within the configured local range.
- Setting
local-chat-rangeto-1makes local chat reach the sender's entire current world. !message,/global <message>,/g <message>,/voidchat global <message>, and/vc global <message>use the global channel.- Without
voidchat.global, a message beginning with!remains a local message and keeps the!character. - Players with
voidchat.mutecan mute or unmute received global messages with/voidchat muteor/vc mute.
!VoidChat Commands
🛠️ Commands
/vc is an alias for /voidchat and works with every subcommand. /global and /g are standalone shortcuts for global chat.
| Command | Alias | Description | Permission |
|---|---|---|---|
/voidchat | /vc | Display the help menu | voidchat.help |
/voidchat help | /vc help | Display the help menu | voidchat.help |
/voidchat global <message> | /vc global <message>, /global <message>, /g <message>, !message | Send a server-wide message | voidchat.use and voidchat.global |
/voidchat mute | /vc mute | Mute or unmute received global messages | voidchat.mute |
/voidchat reload | /vc reload | Validate and reload config.yml | voidchat.reload |
/voidchat admin | /vc admin | Toggle Local Chat Spy | voidchat.spy |
/voidchat clear | /vc clear | Clear player chat | voidchat.clear |
/voidchat toggle | /vc toggle | Enable or disable chat globally | voidchat.toggle |
🔐 Permissions
| Permission | Default | Description |
|---|---|---|
voidchat.help | Everyone | Display the help menu with /voidchat or /voidchat help |
voidchat.use | Everyone | Use local and global chat; without it, the player cannot send chat messages |
voidchat.global | Everyone | Send global messages with !message, /global, /g, or the global subcommand |
voidchat.mute | Everyone | Mute or unmute received global chat with /voidchat mute |
voidchat.admin | OP | Grant every VoidChat permission listed in this table |
voidchat.reload | OP | Reload and validate config.yml with /voidchat reload |
voidchat.spy | OP | Monitor local messages regardless of distance or world with /voidchat admin |
voidchat.clear | OP | Clear chat for every player with /voidchat clear |
voidchat.toggle | OP | Globally enable or disable the ability to chat with /voidchat toggle |
voidchat.color | OP | Use legacy formatting such as &a and HEX colors such as ABEF |
voidchat.bypass | OP | Bypass the block requirement in local and global chat |
voidchat.localbypass | OP | Bypass the local-chat cooldown |
voidchat.globalbypass | OP | Bypass the global-chat cooldown |
voidchat.admin automatically grants every VoidChat permission listed above.
!VoidChat Configuration
⚡ Configuration
Control chat range, channel cooldowns, access requirements, filtering, formats, administrative bypass behavior, and every system message through config.yml.
The example below shows only a small part of
config.yml. The complete configuration includes all messages, help-menu lines, update settings, moderation responses, formatting options, and the full Anti-Swear list.
update-check: true
admin-bypass-chat-toggle: true
# Set either value to 0 to disable that cooldown
local-message-cooldown: 3
global-message-cooldown: 30
# Use -1 for the sender's entire current world
local-chat-range: 100.0
blocks-required: 10
chat-requirement-enabled: true
chat-requirement:
apply-to-local: true
apply-to-global: true
anti-swear:
banned-words:
- "badword1"
- "badword2"
global-format: "&a&lGLOBAL &r&8»&7 %player%: %message%"
local-format: "&e&lLOCAL &r&8»&7 %player%: %message%"
Configuration values are validated during startup and reload. Invalid or unsafe values are rejected instead of being silently applied.
!VoidChat Formatting and Integrations
🎨 Formatting & Integrations
Players with voidchat.color can use legacy & formatting and HEX colors written as &#RRGGBB. Formatting codes from players without that permission are removed.
When PlaceholderAPI is installed, its placeholders can be used inside local-format and global-format. VoidChat resolves the format before inserting the player's message, preventing chat text from invoking arbitrary PlaceholderAPI placeholders.
VoidChat uses %name% notation for its internal values:
%prefix%%player%%message%%blocks_required%%time_remaining%%version%%url%
PlaceholderAPI remains optional and VoidChat continues to work without it.
🧹 Anti-Swear Behavior
Filtering normalizes case and accents, ignores inserted separators and Minecraft color codes, and detects common substitutions such as 0/o, 4/a, and 5/s. Matched characters are censored while the original message layout and permitted formatting are retained.
!VoidChat Privacy and Data
🔒 Privacy & Data
| Feature | Description |
|---|---|
| bStats | Sends anonymous server and plugin usage statistics. It can be disabled in plugins/bStats/config.yml. |
| Update Checker | Reads the public version.json catalog when update-check is enabled. |
| PlaceholderAPI | Optional local integration used only when PlaceholderAPI is installed. |
| Local Storage | Stores UUIDs, last-known names, remaining block requirements, and global-mute preferences in plugins/VoidChat/data.yml. |
| Server Console | Local and global chat output is also delivered to the server console. |
Player settings and progress are stored locally in data.yml.
!VoidChat Support
💬 Support
Questions, bug reports, or feature requests? Join the official Discord server and we'll be happy to help.
Discord: https://discord.gg/jdWeSJbcKx
!VoidChat Footer
❤️ Thank You
Every message builds a community.
Thank you for making VoidChat a part of yours.
