Set up self-hosting
This guide installs DiscordMute on your own PC: BepInEx, the plugin and your own Discord bot. Everything runs locally. Apart from Discord itself, the only outbound requests are the telemetry (on by default, can be turned off) and the update check.
Install BepInEx
DiscordMute requires BepInEx.
- If you already use another Among Us mod that ships with BepInEx, you can usually skip this step.
- Otherwise, download the 64-bit BepInEx build. Among Us is a 64-bit game on Epic Games and the Microsoft Store, and the current Steam version is 64-bit too, so all of them use the same file:
- Steam / Epic Games / Microsoft Store:
BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.735+5fef357.zip
- Steam / Epic Games / Microsoft Store:
- itch.io builds are still 32-bit and are not supported.
- Extract it into your Among Us folder first. If you used an older 32-bit (x86) BepInEx before the Steam update, replace it with this build.
If the Steam version does not start or cannot connect to Steam correctly, make sure Steam is open. Also check that your Among Us folder contains a file named steam_appid.txt with this content:
945360
Install the DiscordMute plugin
- Open your Among Us folder.
- Go to
BepInEx/plugins. - Copy
DiscordMute.dllinto that folder. - Start Among Us once.
- Close Among Us again.
After the first launch, DiscordMute creates its own config folder inside BepInEx.
Example path:
C:\Steam\steamapps\common\Among Us-Modded\BepInEx\DiscordMute
Open config.json in that folder and configure it.
Plugin config
Every key is explained in plugin configuration. The ones you must set are ip, secret and exe.
Example:
{
"ip": "localhost",
"botPort": 7264,
"secret": "replace-this-with-your-own-secret",
"exe": "C:\\Path\\To\\DiscordBot\\start.bat",
"bridgeLogsToBotConsole": false
}
\\) or forward slashes (/) in the exe path. A single backslash breaks the config file. The plugin then silently falls back to its defaults (including the secret change-me) and the bot rejects the connection, even if your secrets are identical.| Correct | Wrong |
|---|---|
"C:\\Users\\Me\\DiscordBot\\start.bat" | "C:\Users\Me\DiscordBot\start.bat" |
"C:/Users/Me/DiscordBot/start.bat" |
BepInEx/LogOutput.log for Failed to read plugin config.Discord bot setup
- Open the
DiscordBotfolder from the downloaded ZIP. - Rename
config.example.jsontoconfig.json. - Create a Discord application and bot in the Discord Developer Portal.
- Under Bot, turn on Server Members Intent. It is the only privileged intent DiscordMute needs. Without it the bot stops right after starting.
- Under OAuth2, URL Generator, pick the scopes
botandapplications.commandsand the permissions from the setup panel page (permission integer146877440). Open the generated URL to add the bot to your server. - Fill in the bot config.
Bot config
Every key is explained in bot configuration. The ones you must set are token, clientId, guildId and secret.
Example:
{
"token": "YOUR_BOT_TOKEN",
"clientId": "YOUR_CLIENT_ID",
"guildId": "YOUR_GUILD_ID",
"channelIds": [],
"secret": "replace-this-with-your-own-secret",
"botIp": "localhost",
"botPort": 7264,
"databaseDialect": "sqlite"
}
First start
Once both configs are set up:
- Start Among Us.
- Create a lobby as host (online or LAN, not Freeplay). The plugin does nothing when you are not the host.
- The Discord bot should start automatically through the
exepath configured in the plugin. - Link your account with
/link self(see commands) and join a Discord voice channel.
DiscordMute mutes the voice channel the lobby host is sitting in, so the host must be linked. If the host can't be resolved, the bot falls back to the channels in channelIds. The bot keeps a record of the players it muted and unmutes them again after a crash or restart. It only lifts mutes it applied itself and leaves mutes that were already in place alone.
/testconnection in Discord to check that the bot can reach the plugin.