🎙️ VoiceServer – Powerful Group Management for Simple Voice Chat
VoiceServer is a lightweight yet advanced plugin for managing Simple Voice Chat groups with intuitive commands, full tab completion, and real-time control for events, teams, and dynamic player structures.
Fully compatible with Folia, Paper, Spigot, and Bukkit, supporting Minecraft versions from 1.8.8 up to 26.2.
Open Source: https://github.com/Jakomi1/VoiceServer
🚀 Key Features
- List all voice chat groups – Shows all active groups.
- Create groups – Supports persistent and non-persistent groups, with optional password protection for persistent groups.
-
Join players to groups –
joinsupports selectors like@a,@s,@r, and@p. -
Remove players from groups –
kickremoves players from their current group without needing a group argument. - Safely delete groups – Non-persistent groups are removed automatically when empty; persistent groups stay until deleted manually.
-
Default group assignment – Players can be placed automatically into a
predefined group on join with
/vcgroup default <groupname> [persistent]. -
Command aliases – Short aliases are available for faster workflow:
/vcpermission→/voicepermission/vcserver→/voiceserver/vcgroup→/voicegroup
-
Access control – Group management commands are protected by
voicechat.group.manage. - Full tab completion – Supports commands, players, selectors, group names, and quoted arguments with Folia-safe tab completion.
- Persistent groups – Ideal for staff, admin, or permanent team channels.
-
Persistence across restarts (optional) – The config option
persistent-groups-should-survive-restartlets persistent groups survive restarts or reloads (default:false). -
Create empty groups – Use
@nullwith/vcgroup createto create a group without players. -
Group info –
/vcgroup infoshows type, persistence, lock status, and members. -
Voice permission management – Per-player permissions via
/vcpermissionforlisten,speak, andgroup. - Debug logging and stable error handling – Improved debugging and robust handling for safer operation.
- Folia-supported scheduler – Built with Folia-safe scheduling support. (1.4.12: reduced permission-attachment warnings)
🧭 Commands
Voice groups
/vcgroup list
Lists all voice chat groups and marks password-protected groups with [locked].
/vcgroup create <player|@a|@s|@r|@p|@null> <type> "<group_name>" [persistent|not-persistent] ["password"]
Creates a new group. Using @null creates an empty group.
/vcgroup join <player|@a|@s|@r|@p> "<group_name>"
Moves players into an existing group.
/vcgroup kick <player|@a|@s|@r|@p>
Removes players from their current group.
/vcgroup remove "<group_name>"
Deletes a voice group and removes all members.
/vcgroup info "<group_name>"
Shows detailed information about a group.
/vcgroup default <groupname> [persistent]
Sets the default group players are automatically placed into when joining.
Voice permissions
/vcpermission give <player> <listen|speak|group>
Grants a voice permission and applies it live.
/vcpermission remove <player> <listen|speak|group>
Revokes a voice permission and updates the player instantly.
/vcpermission default <listen|speak|group> <true|false>
Sets global default values (defaults are true).
/vcpermission reset
Resets the entire permission system to factory defaults.
⚙️ Configuration
No setup required. Install VoiceServer alongside Simple Voice Chat and start using it immediately.
All permission data and persistent group settings are stored in config.yml.
The plugin automatically migrates old keys and keeps the config structure stable.
⚠ Requirements
- Minecraft: 1.8.8 – 26.2
- Server: Folia, Paper, Spigot, Bukkit
- Dependency: Simple Voice Chat (Mod + API)
💡 Example Use Cases
- Create dynamic voice groups for events, PvP, or minigames.
- Maintain permanent staff or admin voice channels.
- Use password-protected private groups without exposing passwords.
- Control who may listen, speak, or join groups on a per-player basis.
🧑💻 Developer Notes
- Developed by Jakomi1.
- Fully open source and community-friendly.
- Folia-safe scheduling, selectors, and tab completion.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 | ||||
| 14h ago | 1 |
<li>fixed "Failed to remove permission attachment" warning on permission reload/join</li>
<li>improved attachment cleanup to avoid removing attachments from different player instances</li>
</ul>
<li>removed unused code</li>
</ul>
<li>fixed message bug</li>
</ul>
<li>fixed some bugs</li>
<li>removed unused code</li>
</ul>
- fixed critical plugin-load bug
- changed package names to universal design
- added fastStats support
- removed unused code
- fixed auto publisher code
- fixed bStats bug (wrong pluginId)
- fixed auto publisher code
- fixed some bugs
- added auto publisher
- removed more unused code
<ul>
<li>Added command aliases:
<ul>
<li><code>/vcpermission</code> → <code>/voicepermission</code></li>
<li><code>/vcserver</code> → <code>/voiceserver</code></li>
<li><code>/vcgroup</code> → <code>/voicegroup</code></li>
</ul>
</li>
<li>Added <code>/vcgroup default <groupname> [persistent]</code><br>
Sets the default group that players are automatically placed into when joining.
</li>
<li>Added an universal Scheduler</li>
</ul>
<ul>
<li>Compatibility support for <code>26.1.X</code> added.</li>
</ul>
<h3>🛠️ Changed / Fixed</h3>
<ul>
<li>Debug bug fixed.</li>
</ul>
<ul>
<li>Option <code>persistent-groups-should-survive-restart</code> added in <code>config.yml</code> to allow groups to persist across restarts or reloads (default = <code>false</code>).</li>
<li>New <code>@null</code> parameter for <code>/vcgroup create <player></code> allows creating a group with no players initially.</li>
<li>VoiceServer code is now <a href="https://github.com/Jakomi1/VoiceServer" target="_blank">open source on GitHub</a>.</li>
</ul>
<h3>🛠️ Changed / Fixed</h3>
<ul>
<li><code>/vcpermission</code> command fully fixed to work correctly for all players.</li>
<li>Compatibility fixes for <code>Bukkit</code>, <code>Spigot</code>, <code>Paper</code>, and <code>Folia</code> up to version 1.8.8.</li>
</ul>
<ul>
<li>Hotfix for full compatibility with <strong>Spigot</strong>, <strong>Bukkit</strong>, and <strong>Arclight Neoforge</strong>.</li>
</ul>
<ul>
<li><code>/vcgroup</code> command improvements:
<ul>
<li>Support for group persistence: When creating, you can now specify <code>persistent</code> or <code>not-persistent</code>. Persistent groups remain even after everyone leaves; non-persistent groups are automatically deleted when empty.</li>
<li>New <code>join</code> subcommand replaces <code>add</code> for moving or adding players to existing groups.</li>
<li>Password protection is now optionally available for persistent groups. Only persistent groups can have a password.</li>
<li>Group list in chat: All groups are now shown as clickable chat components with "Click to join" hover text, triggering the <code>/vcgroup join ...</code> command when clicked.</li>
<li>Tab completion supports persistence options and always displays group names in quotes (<code>"<group name>"</code>).</li>
</ul>
</li>
<li>Groups with a password are now displayed as <code>[locked]</code> in the list; the password itself remains hidden.</li>
</ul>
<h3>🛠️ Changed</h3>
<ul>
<li>Argument parsing for group name and password fully switched to quoted format: <code>"<group name>"</code>, <code>"<password>"</code>.</li>
<li>Tab completion refined contextually, especially for <code>create</code>, <code>join</code>, and persistence options.</li>
<li>Automatic group removal: Only non-persistent groups are now deleted when empty. Persistent groups remain permanently.</li>
<li>Only relevant groups are suggested in argument slots (always correctly quoted).</li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Consistent removal of group passwords when the group is deleted.</li>
<li>All subcommands now handle quoted arguments robustly, with clear error handling for malformed input.</li>
<li>Missing click events and status display for password-protected groups in the list are now fixed.</li>
<li>Group switching actions (such as join/kick) now correctly consider persistence, so temporary groups disappear as expected.</li>
</ul>
<ul>
<li><code>/vcgroup</code> command improvements:
<ul>
<li><code>list</code> command upgraded for better display and functionality.</li>
<li><code>remove <group_name></code> and <code>kick <player> <group_name></code> now work correctly and reliably.</li>
<li>Groups are now fully and cleanly removed, including kicking all players from removed groups automatically.</li>
</ul>
</li>
<li>Improved argument parsing for group names with spaces and quotes.</li>
<li>Tab completion suggestions now better support group names, player selectors (<code>@a</code>, <code>@s</code>), and player names.</li>
</ul>
<h3>🛠️ Changed</h3>
<ul>
<li>Better handling of group removal and player kicks on group deletion.</li>
<li>Improved command feedback with clearer success and error messages.</li>
<li>Unified permission check to <code>voicechat.group.manage</code> for all group management commands.</li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li><code>remove</code> and <code>kick</code> commands now fully functional without issues.</li>
<li>Group list updates after changes now happen reliably.</li>
</ul>
<ul>
<li><strong>Group names with spaces</strong> are now supported using quotes.<br>
Example: <code>/vc-group create Player "My Group Name"</code></li>
<li><strong>Advanced argument parsing</strong> to handle group names and optional passwords reliably, even when names contain spaces.</li>
</ul>
<h3>🛠️ Changed</h3>
<ul>
<li><strong>Unified permission:</strong> Replaced multiple permissions with a single one: <code>voicechat.group.manage</code>.</li>
<li><strong>Enhanced tab completion:</strong> Group names with spaces are automatically wrapped in quotes when suggested.</li>
<li><strong>Improved command usage hints</strong> and clearer error messages for all subcommands.</li>
<li><strong>Automatic player removal</strong> from voice groups when a group is deleted.</li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Incorrect usage hints that previously showed <code>[...]</code> instead of <code><...></code>.</li>
<li>Removed a duplicate import of <code>Collectors</code>.</li>
</ul>
<ul>
<li>
Internal improvements to <code>/vc-group remove <group_name></code>:
<ul>
<li>Reworked the command’s logic to cleanly separate argument parsing from execution logic.</li>
<li>Improved maintainability and code readability.</li>
<li>Prepared for potential future extensions and internal reuse.</li>
</ul>
</li>
</ul>
<p><em>Note: This update does not alter the command's external behavior, but significantly improves the underlying structure.</em></p>
<ul>
<li><code>/vc-group</code> command to manage voice chat groups:
<ul>
<li><code>list</code> – View all current voice chat groups.</li>
<li><code>create <player|@a|@s> <group_name> [password]</code> – Create a group and assign players.</li>
<li><code>add <player|@a|@s> <group_name></code> – Add players to an existing group.</li>
<li><code>kick <player> <group_name></code> – Remove players from a group.</li>
<li><code>remove <group_name></code> – Delete a voice chat group.</li>
</ul>
</li>
<li>Support for selectors:
<ul>
<li><code>@a</code> – all players</li>
<li><code>@s</code> – the command sender</li>
</ul>
</li>
<li>Password-protected groups (optional).</li>
</ul>
<h3>🛠️ Changed</h3>
<ul>
<li>Group names are now displayed with <code>[locked]</code> if password-protected.</li>
<li>Improved feedback messages with color formatting and tags.</li>
<li>Command tab-completion for subcommands, players, and group names.</li>
</ul>
<h3>🔐 Permissions</h3>
<ul>
<li><code>voicechat.group.list</code> – Required to list, add, kick, or remove.</li>
<li><code>voicechat.group.create</code> – Required to create new groups.</li>
</ul>
<ul>
<li>Integrated with <strong>Simple Voice Chat API</strong> by <a href="https://www.curseforge.com/minecraft/mc-mods/simple-voice-chat" target="_blank" rel="noopener noreferrer">henkelmax</a>.</li>
<li>Voice chat group management using the <code>/vc-group</code> command:
<ul>
<li><code>/vc-group list</code> – List all existing voice chat groups.</li>
<li><code>/vc-group add <player> <group></code> – Add a player to a voice chat group.</li>
<li><code>/vc-group kick <player> <group></code> – Remove a player from a voice chat group.</li>
<li><code>/vc-group remove <group></code> – Delete a voice chat group.</li>
</ul>
</li>
<li>Tab completion for all subcommands, player names, and group names.</li>
<li>Basic permission support:
<ul>
<li><code>voicechat.group.list</code> – Required to view and manage groups.</li>
</ul>
</li>
<li>Debug logging to assist with troubleshooting and development.</li>
</ul>
<h3>🐞 Fixes</h3>
<ul>
<li>None – this is the initial version.</li>
</ul>
<h3>⚠️ Known Issues</h3>
<ul>
<li>None known at the time of release.</li>
</ul>
<h3>👨💻 Developer Notes</h3>
<ul>
<li>Developed by <strong>Jakomi1</strong>.</li>
<li>Designed to be lightweight and efficient.</li>
<li>Optimized for <strong>Paper 1.21.4</strong> servers.</li>
</ul>