Giter Club home page Giter Club logo

automuteus's Introduction

GitHub release

Localize

Invite Link

AutoMuteUs

AutoMuteUs is a Discord Bot to harness Among Us game data, and automatically mute/unmute players during games!

Requires amonguscapture to capture and relay game data.

Have any questions, concerns, bug reports, or just want to chat? Join our discord at https://discord.gg/ZkqZSWF!

Click the "invite me" badge in the header to invite the bot to your server, or click the GIF on the left.

All artwork for the bot has been generously provided by Smiles!

⚠️ Requirements ⚠️

  1. You must run the Capture application on your Windows PC for the bot to work! Any Among Us games that don't have a user running the capture software will not have automuting capabilities!
  2. The Capture application currently only supports the Steam, Epic Games, itch.io, and Microsoft Store releases of the game, but does not support beta or cracked versions.

Quickstart and Demo (click the image):

Quickstart

Usage and Commands

To start a bot game in the current channel, type the following slash command in Discord after inviting the bot:

/new
# Starts a game, and allows users to react to emojis to link to their in-game players

The bot will send you a private reply with a link that is used to sync the capture software to your game. It will also have a link to download the latest version of the capture software, if you don't have it already.

If you want to view command usage or see the available options, type /help in your Discord channel.

Commands

Command Description Example
/help Print help info and command usage
/new Start a new game in the current text channel
/refresh Remake the bot's status message entirely, in case it ends up too far up in the chat.
/pause Pause the bot, and don't let it automute anyone until unpaused.
/end End the game entirely, and stop tracking players. Unmutes all and resets state
/link Manually link a discord user to their in-game color /link @Soup cyan
/unlink Manually unlink a player /unlink @Soup
/settings View and change settings for the bot, such as the command prefix or mute behavior
/privacy View privacy and data collection information about the bot
/info View general info about the Bot
/map View an image of an in-game map in the text channel. Provide the name of the map, and if you want the detailed version /map skeld true
/stats View detailed stats about Among Us games played on the current server, or by a specific player /stats user view @Soup
/premium View information about AutoMuteUs Premium, and the current premium status of your server

Privacy

You can view privacy and data collection details for the Official Bot here.

Localization

AutoMuteUs now uses CrowdIn for Localization and translations (thanks @MatadorProBr)!

Help us translate the bot here:

Crowdin

To prepare any new strings for translation, first install goi18n v2.1.1 using the following command:

go install -v github.com/nicksnyder/go-i18n/v2/[email protected]

Then run the following command anytime new strings or translations are added:

goi18n extract -outdir locales

Self-Hosting

Self-hosting requires robust knowledge and troubleshooting capability for Docker/Docker-compose, unRAID, Heroku, and/or any other networking and routing config specific to your hosting solution.

As such, we recommend that the majority of users take advantage of our Verified bot. The link to invite our bot can be found here:

Invite Link

If you are certain that you would prefer to self-host the bot, please follow any of the instructions on automuteus/deploy.

Developing

Please refer to the instructions on automuteus/deploy.

Similar Projects

  • Imposter: Similar bot that uses private Discord channels instead of mute/deafen. Also uses a dummy player joining the game and "spectating" to get game information; no capture needed (although loses the 10th player slot).

  • AmongUsBot: Without their original Python program with a lot of the OCR/Discord functionality, I never would have even thought of this idea! Not currently maintained

  • amongcord: A great program for tracking player status and auto mute/unmute in Among Us. Their project works like a traditional Discord bot; very easy installation!

  • Silence Among Us: Another bot quite similar to this one, which also uses AmongUsCapture. Now in early-access with a publicly-hosted instance!

automuteus's People

Contributors

almighty-alpaca avatar argash avatar assault1892 avatar automuteus-i18n avatar bin101 avatar contejus avatar denverquane avatar derseb90 avatar dferramosi avatar electrizz avatar gaykevin avatar giorgi-o avatar inaruslynx avatar kmontag42 avatar kurokobo avatar larisoncarvalho avatar mannaggacardarell avatar mintaka-orionis avatar moritzlerch avatar nzbr avatar oiyouyeahyou avatar renovate-bot avatar rishav394 avatar robinlaevaert avatar spherebread avatar stenlan avatar westonhowe98 avatar wolfhound905 avatar xtcry avatar zeeuwsgamertje avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

automuteus's Issues

emoji

on my discord all emojis are already displayed as 1 even no one has yet reacted on it after reacting on it it changes to 2 and again one and reg player but in in starting its till 1 i dont know its bug or not but am facing this issue since few days also updated to latest version which is just added few hours ago

also new update with latest amonguscapture.exe when i input code among us discord says
in error log
2020/09/25 12:29:30 Detected transition to Menu; not doing anything about it yet

Discord Portion

So the discord portion is saying "this websocket is not associated with any guilds" and "no in game player data was found matching that color!" Please Help.

Autotrack

Would be nice to automatically select a voice channel to autotrack if there is one with the same name as the text channel within (or maybe without? Some servers group these differently) the same group

image

HTTP 400 Bad request when muting

Looks like the Bot is having issues muting tracked players in a tracked lobby.

2020/09/15 19:28:51 HTTP 400 Bad Request, {"message": "Target user is not connected to voice.", "code": 40032}
2020/09/15 19:29:50 Issuing mute request to discord
2020/09/15 19:29:50 HTTP 400 Bad Request, {"message": "Target user is not connected to voice.", "code": 40032}
2020/09/15 19:29:50 Issuing mute request to discord
2020/09/15 19:29:50 HTTP 400 Bad Request, {"message": "Target user is not connected to voice.", "code": 40032}
2020/09/15 19:29:50 Issuing mute request to discord

[Suggestion] Music Bot support

I'd be nice to have a support for a dedicated music user. It would be a reverse of other users mute status. Unmuted during the game and muted at discussion time.

Game can't be started in channel

Whenever I use the command ".au start". The bot says it is not connected and in the console it is giving this error: HTTP 400 Bad Request, {"emoji_id": ["Value":" is not snowflake."]}
4e18ba65511ee8625b90ed270ac9349b
eb28e9698304a228b837dfe7101de936

OCR not scanning correct area during discussion

With default settings, running the executable with the "discuss" flag, I see the following:
Using .env-provided resolution: 1920x1080
Capture Settings:
Tesseract Path: ....
Fullscreen: True
Resolution: 1920x1080
Discussion Bounds: [537,97]-[1305,205]
ending Bounds: [326,108]-[1574,324]

OCR Results:
[who ts the imaoster? ~]

So right off the bat (and looking at the temp.png) it's only capturing the top bar of "Who is the imposter", which matches the discussion bounds with a height of 108 pixels. I just have no idea why it's only 108 pixels. My game is fullscreen at 1920x1080, and the screen resolution is the same.

No reactions

The bot doesn't add any reactions automatically.

I'm wondering if I have to do that manually, or if I'm doing something wrong.

Hosting bot online

Hey. This is brilliant bot. Thanks for the same. I was just going through some stuff and found that heroku lets you host a discord bot for free. Are you aware of the same? Maybe you can try it out? Sorry if this seems silly.

Thanks and Regards,

Recomendation

you should make it so that if everyone names themselves after their discord the bot will automatically see they are dead in the game and see the username is the same as one in the discord vc and keep them muted automatically

Bot repeat muting options

So it just came to mind that it would be great if you could add a command (that can be locked to a single role), that would be able to turn off the looping of the server mutes. Like you type in the command into discord and after that the bot only mutes people once and ignores it until further inputs. If the bot messes up once we just get stuck with no ability to speak currently.
For that part a force unmute would be great too. Not the current one but one that actually makes it stop muting people until a new input comes in (new round etc.)

Faster win detection

I assume that it is possible to detect a crewmates win by detecting the "Confirm Ejects" text.

When it says "0 Impostors Remains", it can be considered as a crewmates win - game over.

At this point the bot should already think meeting is over (cause we had the results) and try to mute all. This case should stop to mutes and unmute all.

[improvement] Dead (voice) chat?

Would it be possible to have the bot move the dead players to a "dead chat" channel?
The idea would be that the dead person is moved after the discussion on the round of the player's death.
Then all dead players would be brought back into the "general" chat (but muted) during the discussion, and back to the "dead" channel (unmuted) for some fellow ghost banter.

Things that would be needed:

  • Add a second channel bot assignment to "dead chat"
  • Permission granted to move players back and forth
  • Keep the currently dead player in "general" channel until after the discussion on the round of their death

Linking via in-game chat

We'd love to be able to remove the reactions from the lobby message, they eat up a lot of requests and are still a bit cumbersome for players on mobile.

Now that the capture client is able to emit events for chat messages, we should generate a link number for each player. When a player puts that number into the in-game chat, we link their AU Data like before.

The link codes can probably just be 1-10 or 0-9. In the discord lobby message we put the tracked member's names along with their code. A single digit code should be easy enough to relay via voice for people on mobile who can't app switch.

Example

LOBBY MESSAGE

Linked Players:
@Soup	:aured:
Link Codes:
~@Soup 	1~
@Kyle 	2
...

Add a config file?

I think it would be nice to customize a few things via a config file. Some of these would be:

  • prefix [prefix] whatever prefix to call the bot commands you would prefer
  • permissions [all/owner/admin] would be "all","owner" and "admin". would basically change who can actually use the bot.
  • custom emojis [true/false] a true/false setting that would if true, add the custom emojis. if false, use default emojis
  • defaults [a,b] Would have multiple values. "a" is default region, "b" is default voice channel.
  • mute [instantly/discussion] Allows you to set when players are muted when dead. You can make them mute once discussion when everyone is aware they died, or have them mute on death, to prevent people giving it away.
  • status [text] Set the status of the bot.

Amongusdiscord.exe crashing

The amongusdiscord.exe part of the bot seems to crash. It crashes more frequently when muting/unmuting players at the beginning of the round, however has happened in the middle many times.

I tried about 8 times but was unsuccessful in completing a whole game without it crashing.

I trialed the bot several times with just myself and an alt account and it worked fine. however once playing with 8 people in the discord it crahes.

The final log messages before crashing was:
HTTP 404 Not Found, {"message": "Unknown Message", "code": 10008}

I was using version 2.0.3 but did encounter the same problem in the couple of times I tested 2.0.4

Thanks

State doesn't transition from discussion to tasks

When trying your bot out, i noticed that while in game, the current state does not change to tasks after a discussion ends.

I used the 2.0 Prerelease but have the same problem when building the current master branch of AmongUsCapture from source

It seems that the meetingHudState doesn't get updated properly, it stays < 4

Request: "Silent" bot mode

This bot is great, thank you!

I haven't had any trouble with it, so it would be nice to run it without having it send game messages in Discord. I don't want our text channel to be filled with bot messages.

Could you add the option to have the bot not send messages related to the game?

I do want the bot to be able to receive commands in a text channel, and reply that it understood the command. I just don't want it messaging every time it mutes and unmutes players.

Waiting for game...

Anyone else have this issue? Just says waiting no matter if I launch game first or before loading the app. Sometimes it'll detect then get stuck in waiting for discussion or game to end but doesn't do anything or recognize the game has started or discussion ended.

Configurable bot command prefix

Several users have requested the ability to configure the bot's command prefix (default .au).

We can adapt an implementation from resources like this

Suggestion

I just wanted to throw this out there as an option for making the bot more autonomous and not needing to be run on a players computer. The problem with this is having to share a bot token with other users who might use that maliciously. Which limits the amount of people in a server being able to use the bot.

Idea 1
Instead of having the player run it on there PC just have them live stream instead. Have the bot search a specific voice channel for players live. When it finds a player live (or maybe make it a command to like .au startgame or something) it looks at there live stream to watch the among us game and uses that data to auto-mute/unmute.

Idea 2
Make a client side bot and server side bot. Server side bot is always running. Player runs client side bot and it connects to server side of the bot that is running on the discord servers and it transfers that data of the screen captured to the bot running on the server side which does all the actions.

I am not a dev and honestly have no idea if these things are super difficult to do or not. I just thought I would make the suggestion from a user who likes the idea of the bot but has a problem where its only used when I am online because I dont want to give out a bot token to random people in my community.

Reset command

It's working nice, I like it!

Would be nice to have an .au reset command that resets everything (Especially the mutes) because if I take down the processes mid game the voice channels stay muted until I restart everything and trigger some event like getting in a lobby, this way if the server crashed, I can restart it and reset.

Or better yet, the bot should make sure to reset everything on shutdown (unmuting channels) and on startup

Add security to connecting to a server

Add a command that will provide the user a key to be used when connecting the capture software to the discord bot. I currently submitted a pull request in the capture software to allow the user to change the host it can connect to, with this anyone can connect to the bot and control whatever game they like. If a key is provided for a new game instance and only using that key can the game instance be controlled, the security issue is avoided when connecting to the discord bot server is opened to any globally routable address

amongusdiscord.exe flashes and closes

If you install Tesseract in anywhere other then default path you get this error

Screenshot 2020-09-14 135746

for instance, I installed tesseract in my D: drive and changed the tesseract path in final.env to my new path and still did not work. just give people a heads up you have to install tesseract in the default location

Configurable Among Us Path file

Could the config file given to us (final.env) include where the bot detects the game? My steam configuration is a bit fucky so it doesn't appear.

Docker container does not start

version: '3.3'
services:
  bot:
    image: denverquane/amongusdiscord
    ports:
      - 8123:8123
    environment:
      - DISCORD_BOT_TOKEN=<my token>
    restart: unless-stopped
Program exited with the following error:
error loading environment file; you need a file named final.env, final.txt, or final.env.txt
This window will automatically terminate in 30 seconds

To solve the issue in my case I did this

version: '3.3'
services:
  bot:
    image: denverquane/amongusdiscord
    ports:
      - 8123:8123
    environment:
      - DISCORD_BOT_TOKEN=<my token>
    volumes:
      - type: bind
        source: ./final.txt
        target: /go/src/app/final.txt
    restart: unless-stopped

final.txt contains DISCORD_BOT_TOKEN=<my token>

Players who are not dead are marked dead

I'm having a problem where players who are not dead, are marked dead and can't talk during emergency calls because of this. It happened to me at least once when I was imposter myself and second time for another player. Is there a way I can give more details about this? I had to stop using the bot because of this.

Bot Crashes After Game Begins

As the bot begins the muting process, the program/script crashes mid process. Restarting the program crashes if the game is still in progress

Doesnt register discussion on mobile

I got this working on mobile but when there is a discussios it just keeps saying "Waiting for Discussion or Game Over...", game start and end work correctly tho.

Docker and capture issue?

I've got the docker server running fine via AWS. When doing .au new ABCD eu it provides a connect code.

When I type the code into the newest standalone amonguscapture .exe nothing happens at all. Not sure if this is expected behaviour? When I try it completely locally it works fine first time with no issues.

discord or bot?

the bot works BUT it only mutes SOME people. no one has any roles and they are in the same channel so i have no idea why this is happening

Listen to direct messages

Barring some mechanism for the bot to auto-detect dead players (which would be fantastic!), it'd be great if the bot could accept commands via direct message in addition to the text channel. That way, players could privately mark themselves as dead when they die.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.