A Server List Without the Storefront Lock-In.
Your game servers send a small HTTPS heartbeat. Your clients read a public server list. Use it with Steam, EOS, neither, or both. Host your fleet wherever you want.
# Dedicated game server
POST /v1/heartbeat
Authorization: Bearer dsc_...
# IP is inferred from the connection. Send it explicitly when behind NAT.
{
"name": "EU West #1",
"port": 27015,
"players": 18,
"maxPlayers": 32,
"version": "1.4.2",
"meta": { "map": "coastline", "mode": "ranked" }
}
# Game client: no secret required
GET /v1/apps/dscp_.../servers?hasSlots=true&sort=-playersUse the Stack You Already Have
Discovery handles the live game server list. It does not dictate how you build, distribute, or host your game.
Not Tied to Steam or EOS
Use Discovery alongside a storefront server list, as a replacement for one, or without a storefront account at all. Your public server list stays under your control.
Works with Any Game Engine
If your dedicated server can send an HTTPS request and your game client can parse JSON, it can use Discovery. There is no engine plugin or platform SDK to adopt.
Run Servers Anywhere
Discovery is a standalone product. Your game servers can run on PingCore, another cloud, bare metal, or a mix of providers.
From Game Server to Server Browser
One write endpoint for game servers. One read endpoint for game clients.
Create a Discovery App
The app gives you a public ID for clients and lets you issue separate secrets for each environment or fleet.
Send a Heartbeat
Each game server reports its address, player count, version, and your own metadata every 30 seconds. Three missed beats remove it automatically.
Fetch the Public List
Your game client calls an unauthenticated URL containing the public ID. Search, filter, sort, and page the results on the service.
A Server Browser API, Not a Raw Dump
Filtering and paging happen before the response reaches the game client. A large fleet does not need to become a large download.
Search by game server name
Require an exact game version
Show only game servers with free slots
Filter by your own metadata, such as map or mode
Sort by players, name, or last update
Page large fleets instead of downloading every result
GET /v1/apps/dscp_.../servers
?limit=50
&offset=50
&hasSlots=true
&version=1.4.2
&meta.map=coastline
&sort=-players
{
"error": false,
"servers": [ ... ],
"totalServers": 1284,
"returned": 50,
"limit": 50,
"offset": 50
}The public endpoint is unauthenticated and CORS-enabled, so browser builds can call it directly. Only the public ID ships with the client.
Do Not List Game Servers Players Cannot Reach
A heartbeat proves outbound connectivity. Optional verification checks the advertised endpoint from the outside before it appears in the public list.
List Every Heartbeat
No inbound check. This is the quickest integration and works when reachability is already handled elsewhere.
Check the Listening Port
Discovery opens and drops a TCP connection to the advertised endpoint. Use it when the game server already listens on TCP.
Verify UDP Reachability
Discovery sends a small challenge that your game server echoes back. This proves the endpoint accepts inbound UDP traffic before it is listed.
DSCV1 followed by a random 16-byte nonce.Keep Write Access Out of the Client
Game servers authenticate heartbeats with a secret token. Game clients receive a separate public ID that can only read the server list.
Heartbeat Token
Keep it on the dedicated game server. Issue separate tokens per fleet so one can be revoked without stopping the others.
Public ID
Ship it in the game client. It identifies the Discovery App but grants no heartbeat or management access.
Raw tokens stay out of Discovery
The registry sends SHA-256 token digests to the Discovery service. Revoking a token or disabling an app takes effect on the next registry sync, within about a minute.
Session-Based Game? Let Discovery Place the Match
A server list is one half of multiplayer. If players queue for a match instead of picking a game server, the same service can allocate one for them: claim capacity, deliver the roster, and scale the fleet with the queue.
Add Discovery to Your Game
Create an app, issue a token, and connect your first dedicated game server. You do not need to move your hosting or adopt a storefront SDK.