You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Automated temporary voice access for new users #3350
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
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
Activity
DragonSenseiGuy commentedon Oct 11, 2025
This is my understanding.
Use the
on_voice_state_updateeventCheck if:
-The member has the
moderatorrole (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
everyoneAnd then check if the person has any active infacs(i don't know how to do this but I think
member.communication_disabled_untilfor the infacs andmember.joined_attimestamp 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)orawait member.move_to(original_channel)and the
!mautovoicecommand would probably be inbot/ext/moderationI expect this to take around 100-200 lines?
DragonSenseiGuy commentedon Oct 11, 2025
btw I would be willing to take this up.