All Projects → codyphobe → Among Us Protocol

codyphobe / Among Us Protocol

A writeup of the network protocol used in Among Us, a game by Innersloth.

Projects that are alternatives of or similar to Among Us Protocol

Lightning Rfc
Lightning Network Specifications
Stars: ✭ 1,224 (+1136.36%)
Mutual labels:  protocol
Node Webdollar
WebDollar Protocol - Currency of the Internet
Stars: ✭ 89 (-10.1%)
Mutual labels:  protocol
Cuckoo
Boilerplate-free mocking framework for Swift!
Stars: ✭ 1,344 (+1257.58%)
Mutual labels:  protocol
Nodemcu Arduino Pixel Driver
Streaming Led pixel control
Stars: ✭ 81 (-18.18%)
Mutual labels:  protocol
Base Drafts
Internet-Drafts that make up the base QUIC specification
Stars: ✭ 1,270 (+1182.83%)
Mutual labels:  protocol
Federation
Python library for abstracting social federation protocols
Stars: ✭ 93 (-6.06%)
Mutual labels:  protocol
Acvp
Industry Working Group on Automated Cryptographic Algorithm Validation
Stars: ✭ 76 (-23.23%)
Mutual labels:  protocol
Kcp
⚡ KCP - A Fast and Reliable ARQ Protocol
Stars: ✭ 10,473 (+10478.79%)
Mutual labels:  protocol
Coq Serapi
Coq Protocol Playground with Se(xp)rialization of Internal Structures.
Stars: ✭ 87 (-12.12%)
Mutual labels:  protocol
Kafka Php
kafka php client
Stars: ✭ 1,340 (+1253.54%)
Mutual labels:  protocol
Ipfs Companion
Browser extension that simplifies access to IPFS resources on the web
Stars: ✭ 1,247 (+1159.6%)
Mutual labels:  protocol
Purple
Official Rust implementation of the Purple Protocol
Stars: ✭ 85 (-14.14%)
Mutual labels:  protocol
Activitypub
A PHP implementation of ActivityPub protocol based upon the ActivityStreams 2.0 data format.
Stars: ✭ 94 (-5.05%)
Mutual labels:  protocol
Element
DID Method implementation using the Sidetree protocol on top of Ethereum and IPFS
Stars: ✭ 80 (-19.19%)
Mutual labels:  protocol
Bitcoin in a nutshell
Книга о том, как действительно работает Bitcoin
Stars: ✭ 98 (-1.01%)
Mutual labels:  protocol
Felix Search Webconsole Plugin
Search Web Console Plugin for Apache Felix
Stars: ✭ 79 (-20.2%)
Mutual labels:  decompile
Dnscrypt Protocol
DNSCrypt protocol specification
Stars: ✭ 91 (-8.08%)
Mutual labels:  protocol
Mud
Multipath UDP library
Stars: ✭ 100 (+1.01%)
Mutual labels:  protocol
Jremapper
Remapping tool for compiled java programs.
Stars: ✭ 97 (-2.02%)
Mutual labels:  decompile
Ice
WIP RFC 8445 ICE implementation in go
Stars: ✭ 95 (-4.04%)
Mutual labels:  protocol

Among Us Protocol Research

Contained in this repo is my detailed explanation of the netcode behind Among Us, a game by Innersloth. Myself and others have spent countless hours scanning the game's decompiled source code as well as manually dissecting each and every packet sent by the game. Not all of this information will be correct, though it is safe to assume that almost all of it is, and those parts that I am uncertain of will be labeled as such.

I do not work for Innersloth, nor do I have any connection to anyone at Innersloth; this is just the result of an obsession in discovering how the game works.

This repo does not currently contain instructions on how to decompile/deobfuscate the game.

To intercept packets, I recommend using Wireshark with one of the display filters below.

To show all game traffic:
udp.port in { 22023 22123 22223 22323 22423 22523 22623 22723 22823 22923 }

To show only reliable packets (recommended as movement, pings, and acks can add a bunch of noise):
udp.port in { 22023 22123 22223 22323 22423 22523 22623 22723 22823 22923 } and data[0] == 01

Table of Contents

  1. Packet Structure
    1. Protocol Data Types
    2. Packed Integers
    3. The Structure of a Hazel Message
    4. The Vector2 Type
    5. Packet Types (SendOption)
      1. 0x00 Normal
      2. 0x01 Reliable
      3. 0x08 Hello
      4. 0x09 Disconnect
      5. 0x0a Acknowledgement
      6. 0x0b Fragment
      7. 0x0c Ping
    6. Enums
      1. AlterGameTag
      2. ChatNoteType
      3. DisconnectReason
      4. GameKeywords
      5. GameOverReason
      6. Map
      7. Color
      8. Hat
      9. Pet
      10. Skin
      11. SystemType
      12. TaskType
      13. TaskBarMode
      14. SpawnType
      15. SpawnFlag
      16. KillDistances
      17. GameStates
      18. LimboStates
    7. The Different Types of IDs
  2. Root Message Types
    1. 0x00 HostGame
    2. 0x01 JoinGame
    3. 0x02 StartGame
    4. 0x03 RemoveGame
    5. 0x04 RemovePlayer
    6. 0x05 GameData
    7. 0x06 GameDataTo
    8. 0x07 JoinedGame
    9. 0x08 EndGame
    10. 0x09 GetGameList
    11. 0x0a AlterGame
    12. 0x0b KickPlayer
    13. 0x0c WaitForHost
    14. 0x0d Redirect
    15. 0x0e ReselectServer
    16. 0x10 GetGameListV2
  3. GameData and GameDataTo Message Types
    1. 0x01 Data
    2. 0x02 RPC
    3. 0x04 Spawn
    4. 0x05 Despawn
    5. 0x06 SceneChange
    6. 0x07 Ready
    7. 0x08 ChangeSettings
    8. 0xcd ClientInfo
  4. RPC Message Types
    1. 0x00 PlayAnimation
    2. 0x01 CompleteTask
    3. 0x02 SyncSettings
    4. 0x03 SetInfected
    5. 0x04 Exiled
    6. 0x05 CheckName
    7. 0x06 SetName
    8. 0x07 CheckColor
    9. 0x08 SetColor
    10. 0x09 SetHat
    11. 0x0a SetSkin
    12. 0x0b ReportDeadBody
    13. 0x0c MurderPlayer
    14. 0x0d SendChat
    15. 0x0e StartMeeting
    16. 0x0f SetScanner
    17. 0x10 SendChatNote
    18. 0x11 SetPet
    19. 0x12 SetStartCounter
    20. 0x13 EnterVent
    21. 0x14 ExitVent
    22. 0x15 SnapTo
    23. 0x16 Close
    24. 0x17 VotingComplete
    25. 0x18 CastVote
    26. 0x19 ClearVote
    27. 0x1a AddVote
    28. 0x1b CloseDoorsOfType
    29. 0x1c RepairSystem
    30. 0x1d SetTasks
    31. 0x1e UpdateGameData
  5. InnerNetObject Types
    1. ShipStatus
    2. MeetingHud
    3. LobbyBehaviour
    4. GameData
    5. PlayerControl
    6. Headquarters
    7. PlanetMap
    8. AprilShipStatus
    9. VoteBanSystem
    10. PlayerPhysics
    11. CustomNetworkTransform
  6. The SystemType Implementations
    1. ReactorSystem
    2. SwitchSystem
    3. LifeSuppSystem
    4. MedScanSystem
    5. SecurityCameraSystem
    6. HudOverrideSystem
    7. AutoDoorsSystem
    8. SabotageSystem
    9. HqHudSystem
    10. DeconSystem
    11. DoorsSystem
  7. Miscellaneous
    1. The Structure of the GameOptionsData Object
    2. Converting Game IDs to and from Game Codes
    3. Reading the Client Version
    4. Map-Specific IDs for Vents and Tasks
      1. The Skeld
        1. Vents
        2. Tasks
      2. MIRA HQ
        1. Vents
        2. Tasks
      3. Polus
        1. Vents
        2. Tasks
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].