Options
All
  • Public
  • Public/Protected
  • All
Menu

SkeldJS

Skeld JS

Skeld JS

codecov license Lint and Test Build Docs

If you're looking for an Among Us server, check out my other project, Hindenburg

SkeldJS is a JavaScript implementation of the Among Us protocol and game, written in TypeScript.

Quick Start

See the Packages section for more installation information.

Features

🕵️‍♀️ Unopinionated

SkeldJS is completely unopinionated about the structure or use-case of your program, and can be used to develop clients or servers with no preference to either.

🔌 Extensible

With the power of a heavily event-based design, SkeldJS gives you the ability to extend or modify just about every aspect of its behaviour, even allowing you to create custom objects or roles.

🧩 Complete

SkeldJS is a complete implementation of everything in Among Us, and is designed to remain as close as possible to how the game actually functions, meaning you are never out of sync with the official clients, or missing out on important features.

⚡ Fast

SkeldJS uses lots of caching techniques and does no more work than absolutely necessary to remain as close as possible to the game.

Written in TypeScript

SkeldJS is written in TypeScript, not only meaning that there is a much less chance of bugs in your code, but also that you get full editor support for SkeldJS.

Packages

SkeldJS features several different packages, all focusing on different aspects of Among US development.

All of the below packages can be install with npm install --save <package name> or yarn add <package name>. For example, npm install --save @skeldjs/client.

@skeldjs/client

SkeldJS does feature its own client, allowing you to connect with either the official servers, or any other Among Us server, supporting the 2 modes of authentication.

@skeldjs/constant

Several enums and constants in Among Us that are dumped directly from the game, and are used to ensure SkeldJS remains maintainable.

@skeldjs/core

The core structures of SkeldJS, including many networked structures found in Among Us, and is the foundation for the client or any servers to build from.

@skeldjs/data

Contains some useful general data to use in projects to make sense of task IDs, vent IDs, etc.

@skeldjs/dtls

A basic DTLS socket implementation to communicate with the Among Us servers securely.

@skeldjs/events

A utility package including a custom asynchronous and typed event emitter.

@skeldjs/lan

A tool to be used with the SkeldJS client to search for and join games on the local network.

@skeldjs/pathfinding

A tool for the SkeldJS client to automatically navigate through the maps and make sense of the map colliders.

@skeldjs/protocol

Lots of structures representing Among Us protocol byte structures, as well as providing a utility PacketDecoder class, acting similar to an event emitter.

@skeldjs/reactor

Reactor integration for the SkeldJS client to register mods with a reactor-combatible server.

@skeldjs/state

A light-weight wrapper on top of @skeldjs/core which takes in raw message buffers and translates them to be processed and to record state that trascends game data such as joining/leaving.

@skeldjs/text

Contains a utility class for generating TMP in a readable code-based format, as well as a TMP parser and transpiler to HTML.

@skeldjs/translations

Allows you to convert game string IDs into a readable string in a language supported by Among Us, as well as supporting synthesising quick chat messages and cosmetic names.

@skeldjs/util

Several utility classes and functions used in SkeldJS, separated as another module as they are unopinionated and are used all throughout.

Notes

The most comprehensive set of JavaScript protocol implementations for Among Us.

The following resources have been extremely useful in developing this project, and I suggest that you give the repositories a star if possible.

This repository is held under the GPL3 license, meaning I am not responsible for any consequences that may come from using the packages in SkeldJS.

Generated using TypeDoc