Docs/Plugins

Companion channels plugin

Join-to-create temporary voice rooms. Pick hub channels in the dashboard, choose a setup type, and owners manage their rooms from an in-channel panel or /companion commands.

Inspired by VoiceMaster join-to-create: default, sequential, predefined, clone, and dynamic rooms, plus lock, ghost, claim, permit, text channels, and the rest of the owner controls.

Setup is dashboard only. There is no /companion create hub command.

#Configuration

yaml
plugins:
  companion_channels:
    enabled: true
    config:
      setups:
        - enabled: true
          name: Gaming
          hub_channel_id: "123"
          type: predefined
          name_template: "{user_display}'s {animals}"
          user_limit: 5
          bitrate: 0
          category_id: ""
          permission_source: category
          editable: true
          auto_text: false
          default_lock: false
          default_ghost: false
          default_nsfw: false
          default_status: ""
          region: ""
          dynamic_ready: 3
      features:
        name: true
        lock: true
        interface: true
        nsfw: false
      log_channel_id: ""
      lfm_channel_id: ""
      staff_role_id: ""

#Setup types

TypeBehaviour
defaultNamed from the template. Owners can rename and set a limit if those features are on.
sequential{name_template} 1, 2, 3… via {seq}
predefinedTemplate variables: {user_display}, {username}, {seq}, {animals}, {colors}, {trees}
cloneCopies the hub's name, user limit, bitrate, and region
dynamicKeeps dynamic_ready empty rooms ahead of time. Joining the hub claims one.

#Feature toggles

Owner controls you can allow or block server-wide: name, limit, status, lock, claim, reject, permit, ghost, lfm, text, bitrate, transfer, nsfw, interface, interface ping, manage channel, move member, autotext, region.

Staff with staff_role_id can always manage any room.

#Commands

/companion works in a temporary room (or while you are in one):

CommandDescription
/companion nameRename
/companion limitUser limit (0 = unlimited)
/companion lock / unlockBlock or allow new joins
/companion ghost / unghostHide or show in the channel list
/companion claimTake ownership if the owner left
/companion permit / rejectAllow or block a user/role
/companion transferGive ownership to someone else
/companion statusVoice channel status
/companion bitrateAudio quality
/companion regionVoice region
/companion nsfwNSFW flag
/companion textLinked private text channel
/companion lfmPost in the Looking for Members channel

#Requirements

  • Manage Channels, Move Members, Connect, Send Messages. Status needs Set Voice Channel Status. LFM posts need Create Instant Invite.
  • Empty rooms are deleted when the last person leaves. Dynamic rooms reset into the ready pool instead when possible.
  • If someone already owns a room, joining a hub moves them back to it.