MinecraftStatus

Minecraft MOTD and the Java status response explained

Java Server List Ping returns MOTD, version, players, and related fields from one status handshake—not join success or full-world health.

Last verified
Evidence cutoff

Direct answer: The multiplayer server list does not “log in.” It runs a short Server List Ping (SLP) status exchange over TCP and reads a JSON object that may include a message of the day (MOTD), version name, protocol number, player counts, an optional sample, an optional favicon, and flags such as enforcesSecureChat. That packet proves a status endpoint answered this handshake from this vantage. It does not prove join success, authentication health, or that displayed player counts are honest.

The modern (1.7+) status exchange

At a high level:

  1. Client opens TCP to the resolved host:port.

  2. Client sends a Handshake with next state = status, then a Status Request.

  3. Server returns a Status Response whose payload is a length-prefixed JSON string.

  4. Client may send a Ping with a payload; server replies with Pong and closes.

If the modern response is missing or malformed, Notchian clients may fall back to older legacy ping formats. A third-party checker may implement only the modern path.

Handshake protocol field and -1

In the handshake, the client includes a protocol version. When the client is only pinging to learn what the server speaks, the documented convention is to send -1. That sentinel is not “broken JSON”; it is an intentional “version unknown / discovery” value for the handshake.

Separately, some reverse proxies and multi-version frontends put version.protocol: -1 (or other non-marketing integers) in the response JSON while still returning a usable description. A checker that treats every negative protocol as malformed will under-report Online. Rejecting a clean status frame solely because the echoed protocol is -1 is a tooling choice, not proof the server is offline.

Status JSON fields (what they mean)

Illustrative shape from the protocol documentation (example values only):

{
  "version": {
    "name": "1.21.8",
    "protocol": 772
  },
  "players": {
    "max": 20,
    "online": 1,
    "sample": [
      { "name": "thinkofdeath", "id": "4566e69f-c907-48ee-8d71-d7ba5aa00d20" }
    ]
  },
  "description": { "text": "Hello, world!" },
  "favicon": "data:image/png;base64,<data>",
  "enforcesSecureChat": false
}
FieldMeaningDoes not prove
version.nameDisplay string for the list UIThat your installed client will pass login version checks
version.protocolProtocol integer the server reportsThat every backend behind a proxy shares that integer
players.online / maxServer-advertised counts (when a players object is present)Accurate concurrent players; values are self-reported
players.sampleOptional hover names/UUIDsComplete roster; samples can be empty, omitted, or anonymized
descriptionMOTD as string or text componentThat the world is not full, whitelisted, or banned-you
faviconOptional 64×64 PNG as data:image/png;base64,...Anything about gameplay quality
enforcesSecureChatSecure-chat policy flag when presentAccount or session-service health

MOTD / description details

  • Vanilla servers may embed legacy section-sign color codes inside text rather than full rich components.

  • Third-party server software may return structured text components. Parsers should accept both a string and an object.

  • MOTD text is untrusted display data. It must be escaped if rendered as HTML; never execute it as markup or script.

Favicon details

  • Optional. When present, documentation expects a PNG, Base64-encoded, prefixed with data:image/png;base64,.

  • Since 1.13, embedded newlines in that field are not supported the way older clients allowed.

  • Notchian clients expect a 64×64 source image for reliable rendering.

Players object details

  • Protocol / multiplayer-list tolerance: community protocol notes allow a status JSON shape where players is absent; the vanilla list UI may then show an unknown-style count rather than zeros.

  • This checker’s accepted schema: the MinecraftStatus parser requires a players object with integer online and max. A response that omits players can be tolerated by a permissive client yet classified as malformed/Unknown here.

  • online and max on vanilla software are bounded by signed 32-bit positive range behavior; exotic large values are not something tools should treat as sacred truth.

  • Samples can be empty, omitted, or anonymized by server software or operator privacy settings (for example hiding the online-player sample). That control is not an individual player “disabling server listings” in the multiplayer browser.

Diagnostic flow

  1. Confirm edition. This article is Java SLP. Bedrock uses a different unconnected-ping model—see Java vs Bedrock status checks.

  2. Confirm the address path, including SRV if relevant, before blaming the MOTD parser.

  3. Run a status check on the server checker or via the status API field guide.

  4. Read the verdict first (online / offline / unknown), not the MOTD colors. See Online, Offline, and Unknown.

  5. If Online: inspect version, MOTD, and counts as advertisements. Cross-check with whether clients can actually join.

  6. If protocol looks odd (including -1): treat it as a version-advertisement quirk until you have a transport failure. Do not equate “unexpected protocol integer” with Offline.

  7. If Unknown: look for timeout, reset, malformed framing, DNS failure, or policy blocks—not “the MOTD was ugly.” Also consider schema rejection (for example missing required players under this checker) as a tooling boundary, not automatically “the server is down.”

  8. If Offline: that should mean the admitted target refused the TCP status connection, not merely that the MOTD failed to parse.

Evidence limits

  • Status is anonymous and unauthenticated. It is not a login, join, or Realms check.

  • Player counts and samples are server-controlled. They can be spoofed, rounded, or hidden by operator/software settings.

  • Protocol documentation tolerance and this product’s accepted JSON schema are different contracts. Do not assume every valid multiplayer-list response is accepted by every checker.

  • MOTD content is not cited here from live third-party servers and should not be copied into articles as filler.

  • A favicon or MOTD from one proxy node does not prove every backend world is healthy.

  • Cache windows on public APIs bound how long a past response remains a fair claim—see the API article.

Last verified

  • Evidence cutoff: 2026-07-20

  • Sources re-checked: Minecraft Wiki Server List Ping (handshake, status JSON, favicon, description, protocol -1 convention); MinecraftStatus schema requirements for players