# Azoth Central > Azoth Central is a public, fan-made preservation reference for the New World network protocol. New World shuts down on 2027-01-31; the Azoth project builds a community server so the original game client stays playable. This site documents every packet type (message) that travels between the game and the server: what it does, how to record it in game, and, for the ones we solved, the fields byte by byte. Types the game code knows but that never go over the network (messages between the official server's own internal parts, developer and GM tools) are not listed, because nobody can record them. Everything here is public data. Nothing needs a login. It is not affiliated with or endorsed by Amazon Games. ## How to use it 1. Start with https://projectazoth.com/api/stats for the counts, or https://projectazoth.com/api for a self-describing JSON index of every endpoint and field. 2. List packets with https://projectazoth.com/api/types (idx, name, status, whether a field spec exists). 3. Get one packet in full with https://projectazoth.com/api/types/{idx}. If has_spec is true, "fields" gives each field's offset, type, size, name, meaning, enum values and a real example value, and "when" says when the packet is sent. 4. To help the project, read https://projectazoth.com/api/needed (packets nobody has recorded yet, with step-by-step in-game instructions). Currently: 1062 packets in total, 59 solved, 492 captured, 511 wanted (2 top priority), 65 with a field spec. ## Packet status - solved: we know the format and the Azoth server already uses it. - captured: we already have it in a recording. - wanted: we do not have it in a recording yet. A wanted packet can also be top priority (the server needs it first). How sure we are about what a packet does is in guide.confidence (known, likely, guess, unknown). ## Endpoints (all GET, JSON, CORS open, gzip, ETag) - https://projectazoth.com/api : index of endpoints and the fields each returns. - https://projectazoth.com/api/stats : counts (solved, captured, wanted, with spec) and the build. - https://projectazoth.com/api/types : compact list of all packets. - https://projectazoth.com/api/types/{idx} : one packet: status, guide, format, fields, when. - https://projectazoth.com/api/solved : the solved packets, with whether each has a spec. - https://projectazoth.com/api/needed : the wanted packets, with how to capture each. - https://projectazoth.com/api/ranks : capture ranks. - https://projectazoth.com/llms.txt : this file. ## Notes for agents - idx is the packet type id on the wire; use it as the key everywhere. - Field values come from real recordings. A field that may hold other players' names or chat is never shown; value_status says "not_shown". Fields we could not decode say "not_decoded". - Offsets are in bytes from the first byte after the message type. In plain messages (category msg) the body starts at offset 0. In remote calls (category rpc_c2s and rpc_s2c) the first 16 bytes name the component the call is addressed to, so the arguments start at offset 16. - Replicated states (category replicated_state) have no fixed offsets: each one travels as a member inside the replicated state bundle (packet 8), its body is a group mask, then a field mask per group, then only the fields that are set. Match their fields by name; format.fields[].mask_bit is the bit of each group on the wire. Every packet's "layout_note" says how to read it. - A field with "offset_varies": true moves with the length of the fields before it (text, lists); match it by name, not by offset. - "captured" is true when the packet appears in at least one recording, including replicated states seen inside the bundle. - Send If-None-Match with the ETag you got last time to avoid re-downloading. - Please keep the request rate modest; the data changes a few times a day at most.