How to set up an Among Us private server from scratch
Among Us doesn't ship an official dedicated server โ we run Impostor, the community-built open-source server. This guide covers deploying it, configuring appsettings.json, adding plugins for modded gamemodes, pointing player clients at your server with Reactor, and fixing the common errors.
First โ the Among Us server landscape
Unlike Minecraft or Rust, Among Us doesn't ship an official dedicated server binary. Innersloth runs their own matchmaking infrastructure for public lobbies. Private servers exist thanks to the community.
The two real options:
- Impostor (github.com/Impostor/Impostor) โ an open-source C# re-implementation of the Among Us server protocol. Active development, plugin API, supports modded gamemodes, larger-than-15-player lobbies, custom maps. This is what we deploy.
- AUProximity โ a proxy, not a full server. Adds proximity voice chat alongside normal Among Us lobbies. Different tool for a different job โ doesn't replace Impostor.
Do most Among Us groups need a private server? No โ public lobbies work fine for most playgroups. Impostor makes sense when you want: (a) custom modded gamemodes, (b) lobbies larger than 15 players, (c) guaranteed-empty lobbies for streamers / content creators, or (d) independence from Innersloth's regional matchmaking.
What you need first
- An active Among Us plan on Fatality โ see our Among Us hosting plans.
- Among Us on each player's PC (Steam, Epic, or itch.io โ the PC build; console/mobile clients can't easily point at custom servers).
- RAM: 2 GB is plenty for Impostor itself, even with plugins. Among Us is a very lightweight workload.
- A web host or ability to serve a small JSON file over HTTPS โ needed so players' modded clients can find your server (more on this below).
Deploy Impostor (1-click)
Our Among Us template pulls the latest Impostor release and runs it as a .NET service on the ports 22023 (UDP game) and 22024 (TCP matchmaking).
-
Pick the Among Us template at checkout
On our Among Us hosting page, the smallest plan handles most playgroups. Pick a location near where most of your players actually live โ latency matters a bit for the tight-window voting and report timing.
-
Wait for Impostor to start
Installation is quick (Impostor is a ~50 MB .NET binary). Console shows:
info: Impostor.Server.Net.Manager.ClientManager[0] Server version: 1.x.x info: Impostor.Server.Net.Manager.ClientManager[0] Listening on 0.0.0.0:22023You're live.
-
Note your IP + port
Your server's public IP shows in the panel's Settings โ Network tab. Combined with port
22023, that's what players will point their clients at.
Configure appsettings.json
Impostor's config is a JSON file in the server root:
appsettings.json
The defaults work, but most server owners tweak these:
{
"Server": {
"PublicIp": "0.0.0.0",
"PublicPort": 22023,
"ListenIp": "0.0.0.0",
"ListenPort": 22023
},
"HttpServer": {
"ListenIp": "0.0.0.0",
"ListenPort": 22024,
"Enabled": true
},
"AntiCheat": {
"Enabled": true,
"BanIpFromGame": false,
"Timeout": 5
},
"ServerRedirector": {
"Enabled": false,
"Locator": {
"Enabled": false
},
"Master": false,
"Nodes": [
{ "Ip": "127.0.0.1", "Port": 22023 }
]
},
"Debug": {
"GameRecorderEnabled": false,
"GameRecorderPath": "records"
},
"Logging": {
"LogLevel": {
"Default": "Information"
}
}
}
The knobs that actually matter for most servers:
Server.PublicIpโ set this to your server's public IP. Impostor uses this in the HTTP endpoint clients discover.0.0.0.0only works for local/LAN setups.Server.PublicPortโ leave at22023unless you have a specific reason to change it; our panel opens that exact port.HttpServer.Enabledโ keeptrue. This is the matchmaking endpoint (port22024TCP) clients hit before connecting to the game port.AntiCheat.Enabledโ keeptruefor public-ish servers. Tolerates most legitimate mods; catches obvious tampering.ServerRedirectorโ for multi-node setups. Single-server deployments don't need this; leaveEnabled: false.
Forgetting to set PublicIp is the #1 new-server issue. Clients can connect and list lobbies but fail to actually join games, because the matchmaking endpoint hands them back 0.0.0.0 as the game-server address. Set it to your real public IP and restart.
Adding plugins for modded gamemodes
Impostor supports a plugin API โ C# plugins dropped into the plugins/ directory load on server start. This is how you get custom gamemodes, larger-than-15-player lobbies, and custom roles.
Popular plugins
- Impostor.Plugins.Example โ the reference plugin from the Impostor repo. Handy template for writing your own.
- TownOfHost / TownOfUs ports โ unofficial server-side ports of the popular client-side mod. Adds custom roles like Mayor, Jester, Sheriff.
- Higher-player-count plugins โ there are community plugins that raise the hard cap above Among Us's stock 15. Specific plugin names change fast; check the Impostor community Discord for current recommendations.
- Custom map plugins โ experimental, since Innersloth adds / removes maps regularly (Fungle etc.). Use at your own risk; they break on every Among Us client update.
Installing a plugin
-
Download the plugin DLL
From the plugin's GitHub release page. You want the compiled
.dll, not source code. -
Upload to
plugins/SFTP to:
plugins/<PluginName>.dllSome plugins ship additional config files or folders โ drop those in the same
plugins/directory. -
Restart Impostor
Plugins load on startup. Console shows
Loaded plugin <name>for each successfully loaded plugin. Errors typically appear on the line immediately after the attempted load.
Plugins break on Among Us updates. When Innersloth pushes an Among Us client update, plugins compiled against the old protocol version can fail. Keep an eye on the Impostor Discord โ plugin authors usually update within days of a major Among Us patch.
Point player clients at your server
The Among Us client hits hardcoded Innersloth endpoints. To redirect it to your Impostor server, each player needs a client-side mod.
Option A โ Reactor (community mod loader)
Reactor (reactor.gg) is the de facto mod loader for Among Us. Installing it adds a Region Editor โ players can then add a custom region pointing at your server.
-
Each player installs Reactor
Follow the installer at reactor.gg. It patches the Among Us client on their PC.
-
Edit
regionInfo.jsonReactor creates a
regionInfo.jsonfile in the Among Us folder. Players add your server to the Regions array:{ "CurrentRegionIdx": 3, "Regions": [ { "$type": "StaticHttpRegionInfo", "Name": "My Server", "PingServer": "YOUR-SERVER-IP", "Servers": [ { "Name": "Main", "Ip": "YOUR-SERVER-IP", "Port": 22023 } ] } ] } -
Launch Among Us, switch to your region
The Region dropdown in the bottom-right of the main menu now shows "My Server". Players select it, and matchmaking + game traffic both go to your Impostor server.
Option B โ Self-hosted client-config JSON (for larger communities)
Distributing a region file to 50+ players by hand is painful. You can host a single regionInfo.json on any web server (GitHub Pages, your community site) and share the URL โ Reactor's newer versions can import a region list from a URL in one click.
Connect and test
-
Launch Among Us with Reactor installed
Start the game from Steam / Epic as normal; Reactor is a passive mod loader.
-
Select your custom region
Bottom-right of the main menu โ click the region picker โ pick your server's name.
-
Create or join a lobby
Create Game works exactly as on public servers โ lobby code appears, share it with friends, they join. If create-game fails, check the server console for errors.
-
Verify in server logs
The Impostor console shows each client connect:
info: Impostor.Server.Net.Client[0] Client <PlayerName> (id <n>, version <v>) is connecting
Common errors and fixes
Clients see "Could not connect" when trying to join a lobby
Almost always PublicIp in appsettings.json is wrong or missing. Set it to your real public IP (not 0.0.0.0, not 127.0.0.1), restart, retry.
"Server version mismatch" / client rejected
Impostor's build is older than the Among Us client's protocol. Update Impostor to the latest release โ the project ships updates within days of major Among Us patches. Panel โ Version to upgrade.
Region Editor in Reactor shows your server, but the game hangs on "Connecting"
Port 22023 UDP isn't reachable externally. Check that the panel lists it as open (our default), and that Server.ListenIp is 0.0.0.0 in appsettings.json (not a specific interface).
Plugin loaded but gamemode doesn't activate
Many Impostor plugins need both the server plugin and a matching client-side mod. Check the plugin's README for the client companion. Without the client half, the gamemode may silently fall back to vanilla rules.
"Too many connections" after running for a few days
Rare memory / socket leak in older Impostor builds. Schedule a daily restart in the panel (4 AM local time works for most playgroups). Upgrading Impostor usually resolves it.
My friends can't see my lobby code
Lobby codes are server-scoped โ someone entering a code in Region A can't find a lobby created in Region B. Make sure every player is on the same custom region before anyone creates a lobby.
Stuck on something specific? Email support with your server IP, your Impostor version, and the last 50 lines of the server console โ we'll usually have an answer within the hour.