ReforgerOPS

Arma Reforger server status in Discord: alerts and a live message

· 2 min read

Nearly every Arma Reforger community lives in Discord, and the two most repeated questions are "is the server down?" and "who is playing?". Both answer themselves with a webhook and a query to the server. This guide explains how, and what belongs in which channel.

One webhook per channel

A Discord webhook is a URL any tool can post messages to without being a bot or asking for permissions. You create it under Channel settings → Integrations → Webhooks → New webhook. The URL is a secret: whoever has it can write to that channel, so never paste it in public and regenerate it if it leaks.

Separate channels pay off, because the public and the staff do not want the same things:

  • #status (public): online / down, connected players, scheduled restarts.
  • #admin-alerts (staff): bans, kicks, teamkills, who opened the Game Master, config changes.
  • #ranking (public, optional): the season podium.

Knowing whether the server is up without RCON

For "is it alive?" you do not need RCON. Reforger answers the Steam Query (A2S) protocol on the port from the a2s block of config.json (17777 by convention): it returns name, scenario, connected players and max. It is the same query the in-game server browser makes. Advantages: read-only, does not consume the RCON session, and works even with RCON disabled. Any game-server monitoring tool supports it.

To avoid false alarms from a lost packet, the sane rule is to declare "down" after two consecutive unanswered queries, and "back" on the first one that answers.

A status message that edits itself

Better than a new message every minute (which floods the channel) is a single pinned message that gets edited: Discord allows editing messages sent by a webhook. Useful content for players: 🟢/🔴, players/max, scenario, in-game time and, if a mod reports it, connected names and server FPS. The channel always shows the current picture and nobody has to ask.

Moderation alerts

Every ban, kick and restart should land in the staff channel with who did it, to whom (name + identity id) and why. It is the team's memory: when someone appeals a ban, the answer is there, not in the head of an admin who has since left. Since the server does not store ban reasons (see how to ban), the Discord channel is often the only record.

How Reforger Ops does it

The panel implements all of the above: paste your webhooks under Integrations (one for alerts and, optionally, others for status, ranking and the watch), enter the A2S port, and from then on it alerts on downtime and recovery, posts and maintains the live status message, sends every ban/kick/restart with author and reason, and announces the podium when a season closes. Messages go out in the server's language (Spanish or English).