Game server status
Watch a Steam / Source, Minecraft or BattleMetrics game server: a live status card in a channel, posts when it goes down or comes back, a sidebar badge, and /server.
Before you start
- Plans. Available on the Creator and Business plans (Creator: up to 10 servers per org, Business: 50). Self-hosted servers have every feature on.
- Who. The Manage integrations permission (Owners, Admins, or a custom role that grants it). The channel must be a text channel you can post in.
- Where. Org Settings → Integrations → Game servers. On a phone you can see each server's status and recent checks; adding and changing servers is done on a computer.
- No setup on the server. It works as soon as the server is running. BattleMetrics needs your own BattleMetrics API token, pasted per server.
What it can watch
| Kind of server | Address to enter | Works for |
|---|---|---|
| Steam / Source (A2S) | host:queryport (default 27015) |
Counter-Strike 2, TF2, Garry's Mod, Rust, ARK, Valheim, DayZ, Squad, Arma 3, 7 Days to Die, Project Zomboid and most Steam dedicated servers |
| Minecraft: Java Edition | The address players type. Without a port, Ramphearth looks up its SRV record, then tries 25565 | Vanilla, Paper / Spigot, Fabric, Forge, BungeeCord / Velocity proxies |
| Minecraft: Bedrock Edition | host:port (default 19132) |
Bedrock Dedicated Server, Geyser |
| BattleMetrics (by id) | The server's id, or its battlemetrics.com page, plus a BattleMetrics API token | Any server BattleMetrics already tracks, when its query port isn't reachable |
- Query port, not game port. Many games answer status queries on a different port from the one players join (Valheim: game port + 1). Put the join address in Address shown on the card.
- BattleMetrics needs a token from an account with an API subscription (battlemetrics.com → Account → Developers). It's stored encrypted, sent only to BattleMetrics and never shown again; Edit lets you replace it. BattleMetrics shows player counts only, not names.
Add a server
- Open Org Settings → Integrations → Game servers → Add a game server.
- Pick the Kind of server and enter the Address (or the BattleMetrics server and BattleMetrics API token).
- Choose Check it. Ramphearth asks the server now and shows the card it would get.
- Fill in:
- Name: shown on its card and posts, with a BOT badge.
- Card goes in: the channel. Its sidebar row shows the player count.
- Address shown on the card (optional): when players join somewhere other than the address checked.
- How often to check: every minute (the default), 2, 5 or 10 minutes.
- Post in the channel when it goes offline and when it's back (on by default).
- Show who's playing on the card (on by default; the names the server shares).
- Choose Add server.
What it posts
One status card, posted by the server's bot and edited in place whenever what it shows changes. An unchanged server is never re-edited, and the card is never re-posted (unless someone deletes it: then the next change posts a fresh one).
[card] Friday Night CS
🟢 Online
Players 12/32 · Map de_dust2 · Game Counter-Strike 2
Address play.example.com:27015
Who's on Zoe, Sam, Alex and 9 more
- Online: players, map, game (Minecraft: version), the address, who's on (up to 20 names) and the server's message of the day.
- Offline: why it didn't answer, and what it last showed.
- Paused: "Not being checked".
Down and up posts (when switched on): "🔴 Friday Night CS is offline" and "🟢 Friday Night CS is back online", with how long it was down or up. A server is declared offline only after two silent checks in a row, so one lost packet never posts a false alarm.
A sidebar badge next to the channel: a green dot and 12/32 while it's up, a red down when it isn't. Several servers in one channel add up, and any one down shows down.
/server
Anyone who can see the channel can type /server to check it now. The card comes back as a private reply that only they can see. /server <name> picks one when the channel watches several. It asks the server at most once every 20 seconds and otherwise answers from the last check.
Checking
- Each server is checked on its own clock (every 1, 2, 5 or 10 minutes, a little jittered). A server that has been down for half an hour is checked every 5 minutes until it's back.
- Each check is one short exchange: at most 4 seconds.
- Recent checks on a row shows the last 50, for example
Online · 12 / 32 players · de_dust2 · 31 ms,Offline: No answer within 4 seconds, or Posted when a down or up post went out. - Check now, Pause / Resume, Edit and Remove are on each row. Moving the card to another channel removes it from the old one and posts it fresh. To watch a different address, remove the server and add the new one.
Every change appears in the org's Audit log (never the BattleMetrics token). The card and the posts are ordinary bot messages, so event subscriptions see them like any other.
What Ramphearth will and won't connect to
Checks go out from Ramphearth's server to the address you enter, so they are fenced in:
- Public addresses only. A name is looked up once, and if any answer is a private, loopback, link-local, shared (carrier-grade NAT), multicast or documentation address, or the cloud metadata address, the server is refused. Ramphearth then connects to the exact address it checked, never to the name again. An SRV record's target goes through the same check.
- Ports 1024 to 65535 only, minus ports of services a status query has no business touching: databases, caches, Docker, Kubernetes and message brokers on TCP (for example 3306, 5432, 6379, 27017), and well-known UDP amplifiers (for example 1900, 5353, 11211).
- Only the game's own status request is sent, and answers from anyone but the target are dropped. Each answer is capped at 64 KB (UDP) or 256 KB (TCP).
- At most 12 checks a minute to one address, however many orgs watch it or however often
/serveris typed. Past that, a check is skipped (not counted as down).
What data moves
Ramphearth sends each game server only its protocol's status request, and BattleMetrics only the server id and your token. It keeps the server's settings, its last check (players, map, the names it shares), and the BattleMetrics token encrypted. Player names come from the game server itself; turn off Show who's playing on the card to keep them off the card.
Limits
- Servers per plan: Creator 10, Business 50.
- Check it, Check now and
/servertogether: 20 a minute per address. - 12 checks a minute to any one game server address.
Troubleshooting
- "It didn't answer." Check the query port (not the game port), that the server allows status queries, and that the port isn't in the blocked list above.
- Can't check. The last check failed; the row says why. After 10 failed checks in a row a server pauses itself (Paused automatically), and the person who added it gets an email and an Activity item. Fix the cause, then Resume.
- BattleMetrics refuses the token. Paste a new one under Edit (New BattleMetrics token).
- "That server was checked a lot in the last minute." Try again in a minute.
- "Your plan's game servers are all in use." Remove one, or move to a plan with more.