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

# VoiceMaster

> Create temporary voice channels which can be customized to your liking.

## Getting started

The first step to using **VoiceMaster** is to use the `voicemaster setup` command.

<Tip>
  The created channels can be moved and renamed to your liking.
</Tip>

<CodeGroup>
  ```typescript Syntax theme={null}
  .voicemaster setup
  ```

  ```typescript Example theme={null}
  .voicemaster setup
  ```
</CodeGroup>

<Frame>
  <img src="https://mintcdn.com/drown/1GYwXiV8JYE9DSia/images/Screenshot-2026-06-06-at-10.50.12-PM.png?fit=max&auto=format&n=1GYwXiV8JYE9DSia&q=85&s=4c2405af346d2cf4c678aa4ccfdd84b9" alt="Screenshot 2026 06 06 At 10 50 12 PM" width="1324" height="456" data-path="images/Screenshot-2026-06-06-at-10.50.12-PM.png" />
</Frame>

***

## What is the interface channel?

The `#interface` channel will contain an embed with buttons that allow members to customize their temporary voice channel. This channel should be locked to keep the embed message at the top of the channel.

<Frame>
  <img src="https://mintcdn.com/drown/1GYwXiV8JYE9DSia/images/Screenshot-2026-06-06-at-10.54.22-PM.png?fit=max&auto=format&n=1GYwXiV8JYE9DSia&q=85&s=fd2158c8c520f40614e8c76921166702" alt="Screenshot 2026 06 06 At 10 54 22 PM" width="1146" height="898" data-path="images/Screenshot-2026-06-06-at-10.54.22-PM.png" />
</Frame>

***

## What is the Join to Create channel?

The **Join to Create** channel is where members will join to create their temporary voice channel. This channel is required for the **VoiceMaster** system to work.

<Frame>
  <img src="https://mintcdn.com/drown/1GYwXiV8JYE9DSia/images/Screenshot-2026-06-06-at-10.55.07-PM.png?fit=max&auto=format&n=1GYwXiV8JYE9DSia&q=85&s=6218b6fce1bb415c1cb4874c342f7e25" alt="Screenshot 2026 06 06 At 10 55 07 PM" width="658" height="378" data-path="images/Screenshot-2026-06-06-at-10.55.07-PM.png" />
</Frame>

***

## Customizing new voice channels

You can customize what the temporary voice channels look like when they're created.

The following commands are subcommands of the `voicemaster default` command.

<AccordionGroup>
  <Accordion title="Redirecting voice channels">
    Redirect voice channels to a specific category.

    <CodeGroup>
      ```typescript Syntax theme={null}
      .voicemaster category (category)
      ```

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

  <Accordion title="Setting the default channel name">
    Set the default name for temporary voice channels when they are created.

    <Info>
      The name can use the `{user}`, `{user.name}` and `{user.display_name}` variables.
    </Info>

    <CodeGroup>
      ```typescript Syntax theme={null}
      .voicemaster default name (name)
      ```

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

  <Accordion title="Setting the default channel bitrate">
    Set the default bitrate for temporary voice channels.

    <Info>
      The bitrate must be between `8` and `384`.
    </Info>

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

      ```typescript Example theme={null}
      .voicemaster default bitrate 96
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Setting the default channel region">
    Set the default region for temporary voice channels.

    <Info>
      The region must be one of the following: `brazil`, `hongkong`, `india`, `japan`, `rotterdam`, `russia`, `singapore`, `south-korea`, `southafrica`, `sydney`, `us-central`, `us-east`, `us-south`, `us-west`
    </Info>

    <CodeGroup>
      ```typescript Syntax theme={null}
      .voicemaster default region (region)
      ```

      ```typescript Example theme={null}
      .voicemaster default region us-east
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

***

## Granting a role to members

You can assign a role that members receive when they join a temporary voice channel, which is automatically removed when they leave. This is helpful if you want your `#interface` channel to be visible only to members currently in a temporary voice channel.

<CodeGroup>
  ```typescript Syntax theme={null}
  .voicemaster join role (role)
  ```

  ```typescript Example theme={null}
  .voicemaster join role @VoiceMaster
  ```
</CodeGroup>

***

## Setting up the permissions

If you're interested in making your `#interface` channel only visible to members inside a temporary voice channel, you would need to set the permissions accordingly.

* Create a role named **VoiceMaster** (or whatever you prefer) and set it with `.voicemaster join role @VoiceMaster`
* In your `#interface` channel settings, deny **View Channel** for `@everyone`
* In your `#interface` channel settings, allow **View Channel** for the **VoiceMaster** role

Members will automatically receive the **VoiceMaster** role when they join a temp VC and lose it when they leave, so only active VC members will see the interface channel.

***

## Customizing the interface

You can set a custom embed for your `#interface` channel using the `voicemaster sendinterface` command with an embed script.

<Info>
  You can use the following variables in your script, each one will be substituted with its corresponding button icon: `{lock}`, `{unlock}`, `{hide}`, `{reveal}`, `{claim}`, `{increase}`, `{decrease}`, `{information}`
</Info>

Running the command without a script will simply resend the current interface (useful if the channel gets cluttered).

<CodeGroup>
  ```typescript Syntax theme={null}
  .voicemaster sendinterface
  ```

  ```typescript Example theme={null}
  .voicemaster sendinterface
  .voicemaster interface {embed}{color: #3d7292}$v{title: {guild.name} VoiceMaster}$v{description: This is an example of a customizable interface for drown}$v{thumbnail: {guild.icon}}
  ```
</CodeGroup>

<Frame>
  <img src="https://mintcdn.com/drown/1GYwXiV8JYE9DSia/images/Screenshot-2026-06-06-at-11.02.33-PM.png?fit=max&auto=format&n=1GYwXiV8JYE9DSia&q=85&s=27ce2026ab53c6e4d6a5dbe8fbfd1936" alt="Screenshot 2026 06 06 At 11 02 33 PM" width="1184" height="486" data-path="images/Screenshot-2026-06-06-at-11.02.33-PM.png" />
</Frame>

***

## Customizing your voice channel

The following commands can be done via the `#interface` channel buttons or as direct commands.

### Renaming your voice channel

You can use the `voicemaster rename` command to change the name of your voice channel.

<Info>
  This command can only be used **once every 10 minutes** due to Discord's channel rename rate limit.
</Info>

<CodeGroup>
  ```typescript Syntax theme={null}
  .voicemaster rename (name)
  ```

  ```typescript Example theme={null}
  .voicemaster rename late night vibes
  ```
</CodeGroup>

### Limiting the number of members

You can use the `voicemaster limit` command to set a limit on the number of members that can join your voice channel.

<CodeGroup>
  ```typescript Syntax theme={null}
  .voicemaster limit (number)
  ```

  ```typescript Example theme={null}
  .voicemaster limit 5
  ```
</CodeGroup>

### Making your voice channel private

You can lock and hide your voice channel with the following commands.

* `voicemaster lock` — Prevents anyone from joining the voice channel
* `voicemaster unlock` — Allows anyone to join the voice channel
* `voicemaster ghost` — Hides the voice channel from the channel list
* `voicemaster unghost` — Reveals the voice channel in the channel list

### Permitting members to join

You can use the `voicemaster permit` command to allow specific members or roles to join your voice channel.

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

  ```typescript Example theme={null}
  .voicemaster permit @h.azard
  .voicemaster permit @Friends
  ```
</CodeGroup>

### Granting a role to members in your voice channel

You can use the `voicemaster role` command to set a role that members will receive when they join your voice channel.

<Info>
  You must have the **Manage Roles** permission to use this command.
</Info>

<CodeGroup>
  ```typescript Syntax theme={null}
  .voicemaster role (role)
  ```

  ```typescript Example theme={null}
  .voicemaster role @In VC
  ```
</CodeGroup>

## Related commands

<AccordionGroup>
  <Accordion title="Claiming ownership">
    If the owner of a voice channel leaves, you can use the `voicemaster claim` command to take ownership of the voice channel.

    <CodeGroup>
      ```typescript Syntax theme={null}
      .voicemaster claim
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Transferring ownership">
    You can use the `voicemaster transfer` command to transfer ownership of a voice channel to another member.

    <CodeGroup>
      ```typescript Syntax theme={null}
      .voicemaster transfer (member)
      ```

      ```typescript Example theme={null}
      .voicemaster transfer @h.azard
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="Setting the channel as a music channel">
    You can use the `voicemaster music` command which will prevent members from speaking in the voice channel, making it music-only.

    <CodeGroup>
      ```typescript Syntax theme={null}
      .voicemaster music (on or off)
      ```

      ```typescript Example theme={null}
      .voicemaster music on
      .voicemaster music off
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>
