Skip to content

Status Adapter

The status adapter controls what players see in the Minecraft server list — the MOTD, player count, version, and favicon. Each route can use a different status adapter.

Returns a static, preconfigured status response.

routes:
- hostname: "mc.example.net"
status:
type: fixed
name: "My Network"
description: "\"Welcome to our server!\""
favicon: "data:image/png;base64,..."
enforces_secure_chat: true
preferred_version: 769
min_version: 766
max_version: 1000
FieldTypeDefaultDescription
namestring"Passage"Server name displayed in the version field
descriptionstring"\"Minecraft Server Transfer Router\""MOTD as a JSON text component
faviconstring(built-in icon)Base64-encoded 64x64 PNG (data:image/png;base64,...)
enforces_secure_chatbooltrueWhether the server enforces secure chat
preferred_versioninteger769Protocol version shown in the server list
min_versioninteger0Minimum accepted protocol version
max_versioninteger1000Maximum accepted protocol version

The description field uses Minecraft’s JSON text component format:

# Simple text
description: "\"Welcome!\""
# Colored text
description: '{"text":"Welcome!","color":"gold"}'
# Multi-line with formatting
description: '{"text":"","extra":[{"text":"My Network\n","color":"gold","bold":true},{"text":"Join now!","color":"gray"}]}'

Generate a favicon from a 64x64 PNG image:

Terminal window
echo -n "data:image/png;base64,$(base64 -w 0 server-icon.png)"

Common Minecraft protocol versions:

VersionProtocol
1.21.4769
1.21.2768
1.21767
1.20.5766

See wiki.vg for a complete list.


Fetches status from an HTTP endpoint. Responses are cached to avoid hitting the endpoint on every server list ping.

routes:
- hostname: "mc.example.net"
status:
type: http
address: "https://api.example.com/minecraft/status"
cache_duration: 60
FieldTypeDefaultDescription
addressstring"http://localhost:8080"HTTP endpoint URL
cache_durationinteger60Cache duration in seconds

The endpoint must accept a GET request and return JSON matching the Minecraft status response format:

{
"version": {"name": "My Network", "protocol": 769},
"players": {"online": 42, "max": 100, "sample": []},
"description": {"text": "Welcome!"},
"favicon": "data:image/png;base64,...",
"enforcesSecureChat": true
}

Delegates status generation to an external gRPC service for full control over the response.

routes:
- hostname: "mc.example.net"
status:
type: grpc
address: "http://status-service:50051"
FieldTypeDefaultDescription
addressstring""The gRPC service endpoint URL

The service must implement the Status service from status.proto:

service Status {
rpc GetStatus(StatusRequest) returns (StatusResponse);
}

The StatusRequest includes:

  • client_address (Address): The client’s network address
  • server_address (Address): The address the client connected to
  • protocol (uint64): The client’s Minecraft protocol version

See the gRPC Protocol Reference for full message definitions and the Custom gRPC Adapters guide for implementation examples.


Use CaseRecommended Type
Static server with fixed MOTDfixed
Dynamic player count or rotating MOTDhttp
Complex logic (per-player status, A/B testing)grpc