VoiceHub — Voice Channel System
Voice channels for Hytale — create, join, and manage voice groups directly in-game
Voice channels for Hytale — create, join, and manage voice groups directly in-game
▸ What is VoiceHub?
A complete voice channel system built on Hytale's Update 4 Voice API. Players can create voice channels, join groups, whisper privately, and communicate.
VoiceHub gives you full control over who hears whom — with channel isolation, talk power, password protection, custom hearing ranges, and a voice ban system.
Works standalone — no other plugins required. Optionally integrates with KyuubiSoft Core for player avatars in the UI.
▸ Channel Types
Group
- All members hear each other regardless of distance
- Perfect for parties, clans, guilds, or friend groups
- No range limit — works across the entire world
Moderated
- Only players with talk power can speak
- Members can request talk power with a reason
- Owner/Mods grant or revoke talk power via UI buttons
- Perfect for meetings, events, tutorials, and town halls
Whisper
- Private 1-on-1 voice conversation
- Max 2 players
- Start with /ksvoice whisper <player>
Global
- Server-wide voice channel
- Everyone in the channel hears everyone
- Great for announcements and events
Proximity
- Default — distance-based hearing
- Only nearby players hear you (configurable range)
- Players start here automatically on join
▸ Voice Isolation
VoiceHub provides complete voice isolation between channels:
- Players in different channels cannot hear each other
- Channel members are isolated from proximity voice
- Powered by a custom VoiceRouter hook that manipulates Hytale's internal routing tables
- No lag, no delay — works at the engine level
▸ Channel Customization
- Password protection — SHA-256 hashed, enter via UI or command
- Invite-only mode — only invited players can join
- Custom range — set hearing distance per channel (0 = unlimited, 64 = 64 blocks, etc.)
- Description — visible in channel detail panel
- Max members — configurable limit per channel
- Channel type — changeable after creation (Group, Moderated, Proximity)
- Persistent channels — survive server restarts with member lists
▸ Talk Power System
For moderated channels — full TeamSpeak-style talk power:
- Members request talk power with an optional reason
- Owner/Mods see requests and grant/revoke via UI buttons
- Owner and Moderators always have talk power
- Visual indicators: ♪ = has talk power, O = Owner, M = Moderator
- Both TP button and Kick button per member
▸ Player UI
Two-panel layout (inspired by the Bank mod's design):
Left Panel — Channel Browser
- Channels tab — browse all channels, click for details, join button
- Create tab — name, description, type dropdown with explanations, password
- Channel flags: [PW] Password, [MOD] Moderated, [INV] Invite-Only
- Password entry field in channel detail
- Pagination for large channel lists
Right Panel — My Channel
- Channel info: name, type, owner, member count, range
- Scrollable member list with HyVatar player avatars
- Per-member: Kick button + Talk Power button (moderated channels)
- Request Talk Power section with reason field (for regular members)
- Owner Settings: edit name, description, type, max members, password, range
- Cross-world indicator: members in other worlds shown with ✖ marker
- Statistics: "⚠ 2 of 4 players in other worlds (no voice)"
- Leave button
▸ Text Chat
Type !vc <message> to send a text message to your voice channel:
- Appears as [VoiceChat] PlayerName: message
- Only visible to channel members
- Works cross-world (text has no world limitation)
- Original chat message is cancelled for others
▸ Admin Panel
Open with /ksvoice admin panel:
Channels Tab
- Dashboard — active channels, voice users, online players, voice status, banned count
- Proximity settings — range + volume adjustable live without restart
- Channel list — click for detail, delete button per channel
- Channel detail (right panel) — full info, member list, Admin Join button
- Admin join bypasses password and invite-only restrictions
Blacklist Tab
- Voice ban — enter player name + duration in minutes
- Banned players: cannot join channels, cannot speak, automatically kicked
- Banned list — shows all bans with remaining time + Unban button
- Bans expire automatically
- Players see remaining ban time when trying to join
▸ Commands
Player Commands
- /ksvoice open — open channel browser UI
- /ksvoice create <name> [type] [password] — create a channel
- /ksvoice join <channel> [password] — join a channel
- /ksvoice leave — leave (returns to proximity)
- /ksvoice list — list channels
- /ksvoice whisper <player> — start whisper
- /ksvoice invite <player> — invite to your channel
- /ksvoice request — request talk power
- /ksvoice moderate — toggle moderated mode
- !vc <message> — text chat to channel
Admin Commands
- /ksvoice admin panel — admin UI
- /ksvoice admin create <name> <type> [--perm <p>] [--pass <p>] — create perm channel
- /ksvoice admin delete <channel> — force delete
- /ksvoice admin forcejoin <player> <channel> — force join
- /ksvoice proximity range <blocks> — set proximity range
▸ API for Developers
36 API endpoints for cross-mod integration:
- Create, delete, list channels programmatically
- Join/leave players, manage permissions
- Talk power: grant, revoke, request
- Proximity settings: range, volume
- Statistics: speaking state, active channels, total users
- Event listeners: channel join/leave callbacks
VoiceHubAPI api = VoiceHubAPI.getInstance();
// Create a party channel for a dungeon
VoiceChannel ch = api.createChannel("Dungeon Party", ChannelType.GROUP, leaderUuid);
api.joinChannel(player1, ch.getId(), null);
api.joinChannel(player2, ch.getId(), null);
// After dungeon — cleanup
api.deleteChannel(ch.getId());
▸ Default Channels
Configure default channels in config.json — created automatically, cannot be deleted:
- Proximity — distance-based default channel (all players start here)
- Global — server-wide voice channel
- Add as many as you want — each with name, description, and type
▸ Safety & Quality
- Auto-rejoin — players automatically rejoin their last channel on reconnect
- Channel cleanup — empty non-persistent channels auto-delete after 30 minutes
- Delete protection — default channels cannot be deleted
- Member migration — when a channel is deleted, all members are moved to default
- Cross-world warning — chat notification when channel members are in different worlds
- Input validation — channel names sanitized, config values validated
- Blacklist enforcement — banned players are muted at the voice routing level
- Showcase-ready — NPC opener, write guards on admin actions
▸ Technical Details
- Standalone — no dependencies required
- Optional: KyuubiSoft Core (player avatars via HyVatar)
- Voice routing — custom VoiceRouterHook replaces Hytale's VoiceRouter via reflection
- Isolation — worldPlayerSets manipulation for listener filtering
- Custom range — maxHearingDistance modified via reflection on VoiceModuleConfig (no log spam)
- Database — SQLite with WAL mode for channels, members, permissions, settings
- Localization — English + German included
- Java 25+ compatible
- Hytale Update 4 required for voice features
▸ Requirements
- Hytale Server (Update 4+)
- Java 25+
- No other plugins required
Made by KyuubiSoft
