| Field | Description |
| port | int 1-65535 Which port the server is using. For public servers, this must be accessible or the server won’t be listed publicly. |
| max | int 1-? Maximum amount of players allowed on the server. |
| name | string The name of the server. Should be relatively short, preferably under 256 characters, and should only contain alphanumeric and some basic ASCII symbols. |
| public | bool true/false Whether or not the server should be publicly listed. The server will be tested by an automated port tester to ensure that it’s public - if the connection fails, the server will not be listed and an error will be returned. |
| version | int 7 Latest protocol version supported by the server. For all existing clients, this is either 6 or 7, and ClassiCube.net officially only supports protocol 7 at this time. Note: CPE extensions don’t affect the server’s version number. |
| salt | string A random 16-character base-62 string that will be used in authentication. Users that obtain this string can log into your server using any name, so keep this secret. It’s recommended to rotate salts every 24-48 hours. More details on how the salt plays into authentication below... |
| users | int 0-? The number of users currently playing on the server. |
| software | string A name to identify the server software being used. |
if (md5(salt + player_name) == mppass) {
// valid login
} else {
// invalid or expired mppass
}




| Type | Byte length | Description |
| Byte | 1 | Unsigned byte representing 0 to 255 |
| SByte | 1 | Signed byte representing -128 to 127 |
| FByte | 1 | Signed byte representing fixed-point number with 5 fractional bits from -4 to 3.96875 |
| Short | 2 | Signed integer representing -32768 to 32767 |
| FShort | 2 | Signed fixed-point integer representing number with 5 fractional bits from -1024 to 1023.96875 |
| String | 64 | US ASCII encoded string padded with space characters (0x20) to 64 bytes in length. |
| Byte array | 1024 | Binary data padded with null bytes (0x00) |
| Field name | Field type |
| Packet ID | Byte |
| Protocol version | Byte (0x07 for clients compatible with 0.28 and higher) |
| Username | String |
| MPPass | String |
| Unused (Used to indicate CPE support) | Byte (0x00 for the core protocol) |
| Field name | Field type |
| Packet ID | Byte |
| X | Short |
| Y | Short |
| Z | Short |
| Mode | Byte (0x00 or 0x01) |
| Block type | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte (0xFF AKA -1 AKA 255) |
| X | FShort |
| Y | FShort |
| Z | FShort |
| Yaw (Heading) | Byte |
| Pitch | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte (0xFF) |
| Message | String |
| Field name | Field type |
| Packet ID | Byte |
| Protocol version | Byte |
| Server name | String |
| Server MOTD | String |
| User type | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Chunk length | Short |
| Chunk data | Level Data |
| Percent complete | Byte |
| Field name | Field type |
| Packet ID | Byte |
| X size | Short |
| Y size | Short |
| Z size | Short |
| Field name | Field type |
| Packet ID | Byte |
| X | Short |
| Y | Short |
| Z | Short |
| Block type | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte |
| Player name | String |
| X | FShort |
| Y | FShort |
| Z | FShort |
| Yaw | Byte |
| Pitch | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte |
| X | FShort |
| Y | FShort |
| Z | FShort |
| Yaw | Byte |
| Pitch | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte |
| Change in X | FByte |
| Change in Y | FByte |
| Change in Z | FByte |
| Yaw | Byte |
| Pitch | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte |
| Change in X | FByte |
| Change in Y | FByte |
| Change in Z | FByte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte |
| Yaw | Byte |
| Pitch | Byte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID | SByte |
| Field name | Field type |
| Packet ID | Byte |
| Player ID (Unused in core protocol) | SByte |
| Message | String |
| Field name | Field type |
| Packet ID | Byte |
| Disconnect reason | String |
| Field name | Field type |
| Packet ID | Byte |
| User type | Byte |