Discord Bot to automute Among Us players at round transitions, in conjunction with https://github.com/automuteus/amonguscapture
MIT License
Bot releases are visible (Hide)
Published by denverquane about 4 years ago
When you start up the bot the first time, it will dump a default config in <guildid>_config.json
, which contains all the settings for your discord instance! Feel free to change your command prefix, delays, or even mute/deafen behavior in here (don't change the guildID).
changing defaultTrackedChannel, adminIDs, and permissionRoleIDs has NO EFFECT. Those are PLACEHOLDERS!
The format for the delays is a little complex; here is the format:
...
"delays": {
"DISCUSSION": {
"DISCUSSION": 0,
"LOBBY": 6,
"TASKS": 7
},
...
...
This specifies all the delays for DISCUSSION -> transitions, in seconds. So in the above example, there is a 6 second delay when going from DISCUSSION -> LOBBY, and a 7 second delay going from DISCUSSION -> TASKS
This config is only detected when restarting the bot. Making changes while the bot is currently running will have no effect
Published by denverquane about 4 years ago
This patch is mainly a stability/thread-safe refactor (no more crashes, and more consistent behavior across the board), but also should fix the behavior with erroneously marking a player as dead/alive when they shouldn't be. If you still see something similar still, SEND ME THE LOGS.
Other features:
.au new
, if that user is in a voice channel, that voice channel will be used as the tracked channel by defaultPublished by denverquane about 4 years ago
See title ya silly
Published by denverquane about 4 years ago
Added sync codes (no more guildID needed!), misc bug fixes, better help text, etc.
Logging to file by default, version # in logs automatically
Published by denverquane about 4 years ago
Also added new commands to .au help
Published by denverquane about 4 years ago
Adds .au end
to properly end the game (unmuting all players as necessary).
Added .au force <stage>
to force the bot to transition to the stage you desire, if it gets stuck in the wrong stage. For example, .au f task
or .au f d
(discuss). .au f lobby
as well.
Also added a cleaner embed message for the status, and implemented correct mute/deafen behavior for alive/ghosts
Published by denverquane about 4 years ago
Published by denverquane about 4 years ago
Should make debugging easier!
Published by denverquane about 4 years ago
Full-length commands weren't working (aka .au help
instead of .au h
). Also applies to the regions used in .au broadcast
; asia
, north
, or europe
Published by denverquane about 4 years ago
This should fix the rate limiting issue (finally? hopefully?). On a full server of 10 players, it will around 3+ seconds to mute/unmute all 10 players with these settings. I don't see a great way around this; this is an inherent limitation of Discord's API.
Added the variable to tweak the delay, however:
# how many milliseconds between mute commands (for multiple players) the bot should wait
# leave as default (300ms) unless you see players not being muted/unmuted fully, especially in large games of
# 7+ people. If playing with many players and inconsistent muting/unmuting is occurring, bump up to 350-400
DISCORD_API_MUTE_DELAY_MS = 300
Also included a change to detect final.env
, final.txt
, or even final.env.txt
as environment files
Published by denverquane about 4 years ago
Had a weird regression where the bot wouldn't automatically start tracking players when it started up. This should be fixed now!
Also added fields in the .env
for manually specifying the resolution if you have a problem with the resolution/monitor autodetection (rare):
# Only change if you are experiencing capture issues. The bot should autodetect the resolution of your primary display
# X_RESOLUTION = 1920
# Y_RESOLUTION = 1080
Published by denverquane about 4 years ago
This should address an issue people were reporting where players weren't correctly unmuted when the discussion phase begins (a weird race condition)
Published by denverquane about 4 years ago
Published by denverquane about 4 years ago
Better logging for troubleshooting issues, you can now mark players as alive with .au alive @player
or .au al @player
Published by denverquane about 4 years ago
Including an updater .exe with this release. Once you download the update.exe
, you can just run that executable to fetch the latest release of the amongusdiscord.exe
bot automatically, no need to re-download any .exe from the releases page again!
Also added the command to broadcast the room code and region to all players; using .au bcast <roomcode> <region>
or .au b
Example:
.au bcast abcd asia
or .au b abcd na
(accepts "asia", "europe", "north", or "as", "eu", and "na" for short)
Published by denverquane about 4 years ago
Now when starting the bot, it will automatically add all players to the tracking list (until filtered with .au track
)!
When a user disconnects, they will be removed from the tracking list
When players move in and out of the tracked channel, they will be muted/unmuted accordingly
Published by denverquane about 4 years ago
Added .au muteall
for cases where you need everyone muted, added GAME_START_DELAY
to sample.env (different delay from GAME_RESUME_DELAY
), and players you mark as dead will be automatically muted during the current discussion phase
Published by denverquane about 4 years ago
Adds a variable to the .env that allows you to select a different monitor than the default (which should be correct in most cases).
# Only change this value if you run multiple monitors and also encounter an issue
# 0 (the default) should be the primary display in a multi-monitor setup, but you may need
# to use values 0,1,2, etc if you have issues
# MONITOR = 0
EDIT: Hotfixed
Published by denverquane about 4 years ago
Resets all dead players properly when game ends
Editing the release to check the Discord webhook
Published by denverquane about 4 years ago
Added mute/unmute delays to config so they can be adjusted
# how many seconds before players are muted after the "Voting Results" text is displayed
GAME_RESUME_DELAY = 5
# how many seconds before players are unmuted after the "Who is the Imposter?" text is displayed
DISCUSS_START_DELAY = 2