This site documents the AoS protocol as well as the extensions that have and will been made to it. If you want to propose changes to the protocol, open an issue or file a PR against this repo
This protocol is used to measure the connection delay (latency/ping) between your local computer and a server and to find servers on your local network.
You will need to measure the actual time difference yourself:
ping = dt/2
Open up a raw UDP connection to the server’s port, and send a packet.
There are only two groups of packets, no packet id precedes the actual data.
Client->Server
After server recieved this packet, a ping acknowledge is sent back immediately.
Length | Value | Field Type | Notes |
---|---|---|---|
5 bytes | HELLO |
CP437 String | fixed length, never send anything more |
Server->Client
Length | Value | Field Type | Notes |
---|---|---|---|
2 bytes | HI |
CP437 String | fixed length |
Client->Server
Server replies with a LAN Info Packet
Length | Value | Field Type | Notes |
---|---|---|---|
8 bytes | HELLOLAN |
CP437 String | fixed length, never send anything more |
Server->Client
Length | Example | Field Type | Notes |
---|---|---|---|
variable | See below | CP437 String | JSON formatted data |
Param | Notes |
---|---|
name |
server name |
players_current |
player count |
players_max |
server slots |
map |
map name |
game_mode |
game mode abbreviation |
game_version |
voxlap version |
This is what piqueserver sends as of writing (an example):
{
"name": "piqueserver instance",
"players_current": 5,
"players_max": 32,
"map": "classicgen",
"game_mode": "ctf",
"game_version": "0.75"
}