A scalable Among Us server written in typescript and made using SkeldJS.
2.7K
Hindenburg is a completely customisable and scalable Among Us server, complete with advanced plugins and a sophisticated and configurable anti-cheat.
With unparalleled support for Reactor, it's perfect for developers and for private modded game servers.
It uses SkeldJS to interface with the Among Us protocol, as well as keeping state.
Check out the full documentation
Hindenburg has complete authority, and does much more than a glorified relay network. It interacts directly with games, making sure everything runs smoothly and gives lots of power to plugins.
Hindenburg is completely customisable with a simple json file, giving you full control.
Leveraging the power of SkeldJS, Hindenburg has full knowledge of running games, giving you the ability to write or easily install plugins to control the behaviour of the server.
Hindenburg also natively supports clients using Reactor, allowing plugins to communicate directly with mods, and giving you the ability to leverage the full potential of the Reactor protocol.
Hindenburg now supports Docker deployments on multiple architectures (amd64, arm64v8, armV7, armV6) and can run on your server or your RaspberryPi as well as other SBCs where docker is supported.
Docker deployments are new and support on Raspberry Pi may be limited to small servers depending on your model, if you have any issues please let us know.
The following is the command to do a basic deployment of Hindenburg
Minimal (no access to config or plugins):
docker run -d --name hindenburg \
-p 22023:22023/udp \
hindenburg/hindenburg:latest
Basic (with access to config and plugins):
docker run -d --name Hindenburg \
-p 22023:22023/udp \
-v <PathToConfigDir>:/HConfig \
-v <PathToPluginsDir>:/HPlugins \
hindenburg/hindenburg:latest
Once you run the container the first time it will create a config.json file in the directory you specified. The plugins directory will be populated after the first run as well.
**The server does have an interactive cli. instead of docker run -d you could run docker run -it in screen or tmux so you can put it in the background. Here is a link of how to use tmux TMux Tutorial **
If you choose to you may create a string of command line switches and feed it to your docker run statement as an environmental variable that will be used on startup by adding the following to your "docker run" statement
-e HINDENBURG_CLI_ARGS="<switches>"
docker run -d --name=Hindenburg \
-p 22023:22023 \
-e HINDENBURG_CLI_ARGS='--rooms.chatCommands false --logging.players.format ["id"]' \
hindenburg/hindenburg:latest
| Switch | Description | Default | Options |
|---|---|---|---|
--defaultLanguage | Default language to localise disconnect messages to. | en | Refer to Locales table below |
| AntiCheat Settings | Advanced options for HACS, Hindenburg's Anti-Cheat System. | ------------ | ------------ |
--anticheat.penalty.action | The action that should be applied on this user for breaking this rule. | disconnect | disconnect, ban, ignore |
--anticheat.penalty.strikes | The number of strikes that this user has before they are penalised. | 2 | any number |
--anticheat.penalty.banAfterXDisconnects | The number of general disconnects the player should have to have had for breaking this rule until they are banned. | 3 | any number |
--anticheat.penalty.banDuration | The length, in seconds, of how long to ban a player for breaking this rule. | 3600 | any number |
--anticheat.penalty.disconnectMessage | The message to give this player when disconnecting or banning this player. | "You have been banned for $duration." | any string, must be surrounded by quotes |
| Logging Settings | ------------ | ------------ | ------------ |
--logging.hideSensitiveInfo | Whether to hide sensitive information from logging, such as ip addresses. | false | true, false |
--logging.connections.format | Custom formatting for the extra information provided when logging client connections. (The part in parenthesis after their username.) | ["id","ip","ping","room"] | Must be in square brackets and each item in quotes. id, ip, ping, room, language |
--logging.rooms.format | Custom formatting for the extra information provided when rooms are logged. (The part in parenthesis after the game code.) | ["players","map"] | Must be in square brackets and each item in quotes. players, map, saah |
--logging.players.format | Custom formatting for the extra information provided when players are logged. (The part in parenthesis after the player's name.) | ["id","ping","ishost"] | Must be in square brackets and each item in quotes. id, ping, ishost |
| Reactor Settings | Options for Hindenburg's reactor integration. | ------------ | ------------ |
--reactor.blockClientSideOnly | Whether to block reactor RPCs from mods that are declared as being client-side-only. | true | true, false |
--reactor.allowExtraMods | Whether to allow extra mods aside from those in 'mods' which would still be used to enforce certain version of mods, and to require certain mods. | true | true, false |
--reactor.allowNormalClients | Whether to allow normal clients to connect. | true | true, false |
--reactor.requireHostMods | Whether or not to require joining clients to have the same mods as the host. | true | true, false |
| Reactor Mod Controls | the ["<modname>"] Must be spefied in square brackets and quotes in the cli arg | ------------ | ------------ |
--reactor.mods.["<modname>"].optional | Whether this mod is optional, and clients can connect without it. | Not Set | true, false |
--reactor.mods.["<modname>"].banned | Whether clients with this mod cannot connect. | Not Set | true, false |
--reactor.mods.["<modname>"].version | Enforce a specific version glob for this mod. | Not Set | true, false |
--reactor.mods.["<modname>"].doNetworking | Whether to broadcast messages sent by this mod. | Not Set | true, false |
| Room Settings | ------------ | ------------ | ------------ |
--rooms.chatCommands | Allow use of chat commands | true | true, false |
--rooms.gameCodes | The type of game code to generate for rooms, "v1\ for a 4-letter code and "v2" for a 6-letter code. | v2 | v1, v2 |
--rooms.plugins.loadDirectory | Whether to load all plugins in the plugin directory. | true | true, false |
--rooms.serverAsHost | Whether the server should act as the host of the room. | false | true, false |
--rooms.serverPlayer.name | The name of the player for a message sent by the server in game chat | <color=yellow>[Server]</color> | Any string. can be surrounded by <color=colorname>name</color> tags |
--rooms.serverPlayer.color | The color of the player for a message sent by the server in game chat | Yellow | Refer to ServerPlayer table |
--rooms.serverPlayer.hat | The hat of the player for a message sent by the server in game chat | None | Refer to ServerPlayer table |
--rooms.serverPlayer.skin | The skin of the player for a message sent by the server in game chat | None | Refer to ServerPlayer table |
--rooms.createTimeout | The timeout in seconds to wait for a player joins before considering the room empty and destroying it. | 10 | Any Number |
| Locale | Language |
|---|---|
| en | English |
| es_US | Spanish (United States) |
| pt_BR | Portuguese (Brazil) |
| pt | Portuguese |
| ko | Korean |
| ru | Russian |
| nl | Dutch |
| fil | Filipino |
| fr | French |
| de | German |
| it | Italian |
| ja | Japanese |
| es_ES | Spanish (Spain) |
| zh | Chinese |
| ga | Irish |
| Colors | Skins | Hats | Hats | Hats |
|---|---|---|---|---|
| Red | None | None | TenGallonHat | BirdNest |
| Blue | Astronaut | Astronaut | ThirdEye | BlackBelt |
| Green | Captain | BaseballCap | ToiletPaper | CautionSign |
| Pink | Mechanic | BrainSlug | ToppatClanLeader | ChefHat |
| Orange | Military | BushHat | BlackFedora | CopHat |
| Yellow | Police | CaptainHat | SkiGoggles | DoRag |
| Black | Scientist | DoubleTopHat | HearingProtection | DumSticker |
| White | SuitBlack | Flowerpot | HazmatMask | Fez |
| Purple | SuitWhite | Goggles | FaceMask | GeneralHat |
| Brown | WallGuard | HardHat | SecurityHatGlasses | PompadourHair |
| Cyan | Hazmat | MilitaryHat | SafariHat | HunterHat |
| LightGreen | SecurityGuard | PaperHat | Banana | JungleHat |
| Maroon | Tarmac | PartyHat | Beanie | MiniCrewmate |
| Rose | Miner | PoliceHat | BearEars | NinjaMask |
| Banana | Winter | Stethoscope | Cheese | RamHorns |
| Gray | Archaeologist | TopHat | Cherry | MiniCrewmateSnowman |
| Tan | Prisoner | TowelWizard | Egg | GeoffKeighleyMask |
| Sunset | CCC | Ushanka | GreenFedora | DavePandaCap |
| ------------ | RightHandManReborn | Viking | Flamingo | EllieRoseHair |
| ------------ | ------------ | WallGuardCap | Flower | SvenSvenssonHat |
| ------------ | ------------ | Snowman | KnightHelmet | BurtCurtisHat |
| ------------ | ------------ | ReindeerAntlers | Plant | EllryMohawk |
| ------------ | ------------ | ChristmasLights | BatEyes | ThomasChestershireMonocles |
| ------------ | ------------ | SantaHat | BatWings | Wizardhat |
| ------------ | ------------ | ChristmasTree | Horns | FrederickMuensterHat |
| ------------ | ------------ | ChristmasPresent | Mohawk | MrMacbethhat |
| ------------ | ------------ | CandyCanes | Pumpkin | ToppatHenryStickminHat |
| ------------ | ------------ | ElfHat | ScaryPaperBag | ToppatEllieRoseHat |
| ------------ | ------------ | NewYears2018 | WitchHat | GeoffreyPlumbHat |
| ------------ | ------------ | WhiteHat | WolfEars | AngryEyebrows |
| ------------ | ------------ | Crown | PirateHat | ChocolateIceCream |
| ------------ | ------------ | Eyebrows | PlagueDoctor | HeartPin |
| ------------ | ------------ | Halo | Machete | Ponytail |
| ------------ | ------------ | HeroCap | HockeyMask | RubberGlove |
| ------------ | ------------ | PipCap | MinerHelmet | UnicornHat |
| ------------ | ------------ | Plunger | WinterCap | Zipper |
| ------------ | ------------ | ScubaMask | ArchaeologistHat | RightHandManHat |
| ------------ | ------------ | HenryStickmin | Antenna | ------------ |
| ------------ | ------------ | StrawHat | Balloon | ------------ |
For issues regarding bugs that you encounter while using Hindenburg, please create an issue on the github issues page.
For help setting Hindenburg up, writing plugins or just general questions, please check out the Discord server
Hindenburg is licensed under the GNU General Public License v3.0, meaning I am not responsible for anything you do with this library.
Content type
Image
Digest
Size
210.1 MB
Last updated
about 4 years ago
docker pull hindenburg/hindenburg