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

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