Theme
Heartbeat & server list
How the server announces itself
Every 30 seconds (and once at start-up) the game server sends POST <masterUrl>/heartbeat:
json
{
"key": "wfx_…",
"name": "WildM LAN", "desc": "…", "tags": ["roleplay", "dev"], "locale": "FR",
"host": "192.168.1.20", "port": 30120,
"players": 3, "maxPlayers": 32
}port is the HTTP port. The master:
- answers
403with Invalid sv_key — create one on the WFX.re Portal (or Missing sv_key…) if the key is unknown — invalid keys are rate-limited to 30 per 5 minutes per IP (429beyond); - otherwise answers
200 {"ok":true,"id":"<host>:<port>","serverId":"<portal id>"}and lists the server.
A server is removed from the list 90 seconds after its last valid heartbeat. Regenerating the key on the Portal removes it immediately.
The server only logs a heartbeat result when it changes, so the console is not flooded:
| Console message | Meaning |
|---|---|
master : annonce acceptée, serveur visible dans la liste WFX.re | Listed. |
master : aucune sv_key dans server.json — … | No key configured. Not listed; direct connect still works. |
master : Invalid sv_key — create one on the WFX.re Portal … | The key was rejected (typo, regenerated, or deleted server). |
master : HTTP <code> | Other error from the master (for example 429). |
master injoignable : … | The master could not be reached within 5 s. |
What players see
The list entry combines the Portal registration (name, description, tags, locale, max players, icon, banner, owner) with the live heartbeat data (host, port, players). The master also keeps a 24-hour peak per server and for the whole network (GET /stats). Listed servers have verified: true in GET /servers.
Details of every field: Master server API.