Skip to main content

Permissions

VoiceHub uses two categories of permission nodes: player permissions (granted to everyone by default) and admin/config permissions (must be explicitly granted).


Player Permissions

These permissions are registered with default: true, meaning all players have them unless explicitly denied. Deny individual nodes to restrict specific features.

PermissionCommand / FeatureDefaultDescription
ks.voice.user.open/ksvoice opentrueOpen the channel browser UI
ks.voice.user.create/ksvoice createtrueCreate a voice channel
ks.voice.user.join/ksvoice jointrueJoin a voice channel
ks.voice.user.leave/ksvoice leavetrueLeave current channel
ks.voice.user.list/ksvoice listtrueList public channels
ks.voice.user.info/ksvoice infotrueView channel details
ks.voice.user.whisper/ksvoice whispertrueStart a whisper channel
ks.voice.user.invite/ksvoice invitetrueInvite a player to your channel
ks.voice.user.kick/ksvoice kicktrueKick a player from your channel
ks.voice.user.mute/ksvoice mutetrueMute a player in your channel
ks.voice.user.password/ksvoice passwordtrueSet/change channel password
ks.voice.user.moderate/ksvoice moderatetrueToggle moderated mode
ks.voice.user.request/ksvoice requesttrueRequest talk power
ks.voice.user.grant/ksvoice granttrueGrant talk power
ks.voice.user.revoke/ksvoice revoketrueRevoke talk power
tip

Player permissions default to true. You only need to touch these if you want to deny a specific feature to certain players or groups. For example, deny ks.voice.user.create to prevent a group from creating channels while still letting them join existing ones.


Admin Permissions

Admin permissions must be explicitly granted. They are not granted by default.

PermissionCommand / FeatureDefaultDescription
ks.voice.admin/ksvoice admin, /ksvoice proximityfalseRequired by the command system for admin subcommands
kyuubisoft.voicehub.adminAdmin panel, admin commandsfalseChecked at runtime for all admin operations (panel, list, create, delete, mute, forcejoin, proximity)
kyuubisoft.voicehub.create/ksvoice create (restricted mode)falseOnly checked when allowPlayerCreatedChannels is false in config
warning

Both ks.voice.admin and kyuubisoft.voicehub.admin are required for admin commands to work. The first is the command-level gate; the second is checked at runtime inside the command handler.


Configurable Permissions

The following permission nodes can be changed in config.json under the permissions section:

Config KeyDefault ValueDescription
adminPermissionkyuubisoft.voicehub.adminPermission checked for all admin operations
createPermissionkyuubisoft.voicehub.createPermission checked when allowPlayerCreatedChannels is false
{
"permissions": {
"adminPermission": "kyuubisoft.voicehub.admin",
"createPermission": "kyuubisoft.voicehub.create"
}
}

Channel-Level Permissions

Inside a voice channel, each member has a role that determines what they can do:

RoleActions
OwnerEdit channel settings, set password, toggle moderation, kick, mute, invite, grant/revoke talk power, delete channel
ModeratorKick, mute, invite, grant/revoke talk power
MemberRequest talk power, leave, use text chat (!vc)

Owners and moderators always have talk power in moderated channels.


Per-Channel Join Permissions

Admin-created channels can require a custom permission to join. This is set with the --perm flag:

/ksvoice admin create VIPLounge GROUP --perm myserver.vip.voice

Only players with myserver.vip.voice will be able to join that channel. This check applies in both the command and the UI.


Permission Flow Examples

Player creates and manages a channel

  1. ks.voice.user.create -- allows /ksvoice create
  2. If allowPlayerCreatedChannels is false, also needs kyuubisoft.voicehub.create
  3. Creator becomes channel Owner -- can kick, mute, set password, etc.

Admin manages server voice

  1. Needs ks.voice.admin + kyuubisoft.voicehub.admin
  2. Can open admin panel, force-delete channels, voice-ban players, adjust proximity settings
  3. Admins bypass password and invite-only restrictions when joining channels through the UI