Skip to content

Automated temporary voice access for new users #3350

Description

@Mindful-Developer

Mautovoice (moderated auto-voice) would let new users bypass the voice gate by granting temporary permissions to un-gated users when a supervising moderator is present in a public voice channel. This will hopefully cut down on spamming and provide a better experience for people wanting to chat on the server.

How it should work:

  • System activates when a moderator-role member (not mod-team) joins a public voice channel and is not deafened.
  • Bot automatically grants temporary speaking permissions to un-gated users in that channel.
  • Users with active timeouts or those who join the server after the moderator has entered the channel will not receive permissions.
  • Permissions automatically revert when the last active, non-deafened moderator leaves or deafens. The standard voice gate reactivates.
  • Users receive in-chat notifications about temporary permissions. The bot moves them to an AFK channel and back to apply changes without manual re-connection. This also happens when the permissions are revoked.
  • Moderators can use !mautovoice to permanently toggle their system activation preference. This preference will be persisted across bot reboots.

For voice raids, moderators can quickly deactivate the system by using !mautovoice

Activity

  1. added
    a: moderationRelated to community moderation functionality: (moderation, defcon, verification)
    t: enhancementChanges or improvements to existing features
    on Jul 23, 2025
  2. added
    status: approvedThe issue has received a core developer's approval
    on Jul 23, 2025
  3. DragonSenseiGuy commented on Oct 11, 2025

    @DragonSenseiGuy
    Contributor

    This is my understanding.
    Use the on_voice_state_update event
    Check if:
    -The member has the moderator role (but not “mod-team”).
    -The channel is public (not private or stage).
    -The moderator is not deafened.

    Grant temporary permissions using await channel.set_permissions(member, speak=True)
    or grant a temporary “speak” permission to a specific role like everyone

    And then check if the person has any active infacs(i don't know how to do this but I think member.communication_disabled_until for the infacs and member.joined_at timestamp with the moderator joined timestamp for checking if they joined server after moderator)
    and then to move them to an afk channel:
    await member.move_to(afk_channel) or
    await member.move_to(original_channel)

    and the !mautovoice command would probably be in bot/ext/moderation

    I expect this to take around 100-200 lines?

  4. DragonSenseiGuy commented on Oct 11, 2025

    @DragonSenseiGuy
    Contributor

    btw I would be willing to take this up.

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

Metadata

Metadata

Labels

a: moderationRelated to community moderation functionality: (moderation, defcon, verification)p: 2 - normalNormal Prioritystatus: approvedThe issue has received a core developer's approvalt: enhancementChanges or improvements to existing features

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions