> ## Documentation Index
> Fetch the complete documentation index at: https://docs.confine.app/llms.txt
> Use this file to discover all available pages before exploring further.

# VoiceMaster

> Create temporary voice channels instantly in your server.

## Getting started

To turn on VoiceMaster, run `,voicemaster setup` once — this builds everything confine needs automatically.

<Frame>
  <img src="https://mintcdn.com/confine/2973i9UGCY1FmSy5/images/Screenshot-2026-08-17-123347.png?fit=max&auto=format&n=2973i9UGCY1FmSy5&q=85&s=735fac1a07e5820e39f34af9aff8e9e9" alt="Screenshot 2026 08 17 123347" width="175" height="109" data-path="images/Screenshot-2026-08-17-123347.png" />
</Frame>

<Tip>
  Feel free to rename or relocate the channels it creates afterward — nothing will break.
</Tip>

### The `#interface` channel

This channel holds a single embed with buttons members use to manage their own temporary channel — renaming it, locking it, setting limits, and more.

<Frame>
  <img src="https://mintcdn.com/confine/2973i9UGCY1FmSy5/images/Screenshot-2026-08-17-123243.png?fit=max&auto=format&n=2973i9UGCY1FmSy5&q=85&s=4a51efb2f208ddd26c07f4a8c2857edb" alt="Screenshot 2026 08 17 123243" width="410" height="417" data-path="images/Screenshot-2026-08-17-123243.png" />
</Frame>

### The Join to Create channel

This is the channel members sit in to trigger a brand new voice channel just for them. Without it, VoiceMaster has nothing to hook into — it's a required piece, not optional.

## Setting defaults for new channels

Every temporary channel VoiceMaster creates can follow a template you define. These all live under `,voicemaster default`.

<AccordionGroup>
  <Accordion title="Choosing a category">
    Send new temporary channels into a specific category instead of wherever they'd land by default.

    <CodeGroup>
      ```javascript Syntax theme={null}
      ,voicemaster category (category)
      ```

      ```javascript Example theme={null}
      ,voicemaster category Voice Channels
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Default channel name">
    <Info>
      Works with  `{user.name}` and `{user.display_name}` variables.
    </Info>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ,voicemaster default name (name)
      ```

      ```javascript Example theme={null}
      ,voicemaster default name {user.display_name}'s vc
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Default bitrate">
    <Info>
      Must fall somewhere between `8` and `384`.
    </Info>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ,voicemaster default bitrate (kbps)
      ```

      ```javascript Example theme={null}
      ,voicemaster default bitrate 384
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Default voice region">
    <Info>
      Pick one of: <br />`brazil`, `hongkong`, `india`, `japan`, `rotterdam`, `russia`, `singapore`, `south-korea`, `southafrica`, `sydney`, `us-central`, `us-east`, `us-south`, `us-west`
    </Info>

    <CodeGroup>
      ```javascript Syntax theme={null}
      ,voicemaster default region (region)
      ```

      ```javascript Example theme={null}
      ,voicemaster default region russia
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

### Locking down the interface channel

To make `#interface` only visible while someone's in a temp channel, deny **View Channel** for `@everyone`, then allow it for the role you just set up above.

## Commands members use inside their channel

These all run directly in `#interface` once someone owns a temporary channel.

### Renaming

<Info>
  Limited to once every **10 minutes**.
</Info>

<CodeGroup>
  ```javascript Syntax theme={null}
  ,voicemaster rename (name)
  ```

  ```javascript Example theme={null}
  ,voicemaster rename ethan's vc
  ```
</CodeGroup>

### Capping member count

<CodeGroup>
  ```javascript Syntax theme={null}
  ,voicemaster limit (number)
  ```

  ```javascript Example theme={null}
  ,voicemaster limit 5
  ```
</CodeGroup>

### Locking and hiding the channel

* `,voicemaster lock` — blocks new members from joining
* `,voicemaster unlock` — opens it back up
* `,voicemaster ghost` — removes the channel from the visible list
* `,voicemaster unghost` — makes it visible again

#### Letting specific people in

<CodeGroup>
  ```javascript Syntax theme={null}
  ,voicemaster permit (member or role)
  ```

  ```javascript Example theme={null}
  ,voicemaster permit @financely
  ```
</CodeGroup>

### Giving members in your channel a role

<Info>
  Requires `ManageRoles` permission to run.
</Info>

<CodeGroup>
  ```javascript Syntax theme={null}
  ,voicemaster role (role)
  ```

  ```javascript Example theme={null}
  ,voicemaster role @Listening Party
  ```
</CodeGroup>

## Ownership & extras

<AccordionGroup>
  <Accordion title="Music-only mode">
    Run `,voicemaster music` to mute everyone's mic in the channel — useful for listening parties where talking isn't the point.
  </Accordion>

  <Accordion title="Handing off ownership">
    <CodeGroup>
      ```javascript Syntax theme={null}
      ,voicemaster transfer (member)
      ```

      ```javascript Example theme={null}
      ,voicemaster transfer @financely
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Claiming an empty channel">
    If the current owner leaves without transferring it, run `,voicemaster claim` to take it over yourself.
  </Accordion>
</AccordionGroup>
