Skip to content

Plugin Idea: Voice Channel Text Binds — auto-create linked text channels #32

Description

@DeadIndian

Plugin Idea: Voice Channel Text Binds — auto-create linked text channels

Auto-create text channels linked to voice channels — when a user joins a voice channel, a temporary text channel is created for that voice session. Members in the voice see and can type in it. The text channel auto-deletes when the voice channel empties.

Why

Many gaming and community servers use this pattern — it keeps voice-related chat organized and separate from main chat. Popularized by community servers and the "Text in Voice" Discord experiment.

Spec

How It Works:

  1. Server admin designates a category or specific voice channels for "text binding"
  2. When a user joins a bound voice channel, a text channel is auto-created: #vc-name or #🔊-vc-name
  3. Only members in the voice channel can see/type in it (or optionally, everyone can read)
  4. When the last person leaves VC, the text channel is deleted (with optional delay)
  5. Bot posts a "Voice chat started — #{channel}" message as the first message

Commands (Admin):

  • /voice-text bind <voice-channel> [text-channel-name] — Bind a voice channel
  • /voice-text unbind <voice-channel> — Remove binding
  • /voice-text list — List bindings
  • /voice-text config category <category> — Category to create text channels in
  • /voice-text config delete-delay <minutes> — Delay before deleting empty channels (default: 1)
  • /voice-text config visibility [all|voice-only] — Who can see the text channel
  • /voice-text toggle — Enable/disable plugin

Features:

  • Auto-Permissions — Text channel permissions auto-set so only voice members can view
  • Naming Templates — Configurable: voice-{name}, vc-{name}, {name}-chat
  • Persistent Channels — Option to keep text channel after VC empties (for continued discussion)
  • Max Channels — Configurable hard cap (default: 10 active at a time)
  • Channel History — Option to save transcript when deleted
  • Integration with TempVoice — Auto-bind to temp voice channels created by TempVoice plugin

Model:

// Bindings
{
  guildId: String,
  voiceChannelId: String,
  textChannelName: String,    // template
  createdAt: Date
}

// Active sessions
{
  guildId: String,
  voiceChannelId: String,
  textChannelId: String,
  createdAt: Date,
  lastActiveAt: Date
}

Acceptance Criteria

  • Voice channel join triggers text channel creation
  • Permissions set correctly (only voice members can see/type)
  • Auto-delete when voice channel empties
  • Configurable naming and category
  • Works with TempVoice plugin for dynamic channels
  • Max channel limit enforcement

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    new-pluginIdea for a brand new plugin (no repo exists yet)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions