The Server Stats feature on your Arma Reforger server can post a live killfeed and a set of server alerts straight into Discord. Every kill, every player who joins, a best-effort notice when someone leaves, your server going up, down, or restarting, and a warning when CPU, memory, or frame-rate cross a line you set — all delivered as tidy Discord embeds by a background worker that keeps running whether or not anyone has the panel open. You can point up to five separate Discord webhooks at one server, each subscribed to its own mix of events, with its own filters, so a public #killfeed channel and a private #server-alerts channel can each get exactly what they should. This guide covers what each alert type does, how to set the webhooks up in the panel, how the filters work, and the accuracy limits worth knowing before you rely on them.
What the Killfeed and Alerts Can Send
Server Stats delivers five independent event families to Discord. A single webhook can subscribe to any combination of them, and each one is detected and de-bounced separately so you only get a message when something actually changes.
| Event | What it posts |
|---|---|
Killfeed | One embed per batch of new kills — who killed whom, with weapon, hit zone, and distance when known |
Player connect | A green “Players joined” embed listing players who just connected |
Player disconnect | A grey “Players left (approx.)” embed — estimated from inactivity, not an exact leave line |
Server state | 🟢 Server up, 🔴 Server down, or 🔄 Server restarted |
Performance threshold | An amber warning when CPU %, memory %, or FPS crosses a limit you set |
Note: A background worker checks each server about once a minute and posts only what is new since the last check, so a webhook never replays old events
Note: When you first create or enable a webhook, its starting point is set to “now” — it will not dump the whole existing match history into your channel
Note: Server state alerts work on any game type; the killfeed, join, leave, and performance alerts read Arma Reforger’s server log and only have a data source on Reforger
Setting Up Your First Webhook
Webhooks are configured on the server’s Server Stats page in the LoafHosts panel. You will need a Discord webhook URL first — create one in Discord under the target channel’s settings (Integrations, then Webhooks), and copy its URL.
- In Discord, create a webhook on the channel you want the alerts in and copy its URL
- In the panel, open your Arma Reforger server and click Server Stats in the server sidebar
- Add a new webhook and paste the Discord webhook URL into it
- Choose which events this webhook should send (killfeed, joins, leaves, server state, performance — any mix)
- Set any filters you want, such as which kill types to include or a minimum distance
- Optionally give the webhook a label and a Discord thread ID, then enable it
- Use the test button to send a sample message and confirm it lands in the right channel
Tip: Send the test message before you rely on a webhook — it confirms the URL is right and that it posts to the channel (or thread) you expect
Tip: A webhook must have a URL on file before it can be enabled; the panel will ask you to add one first
Tip: Use the optional label to remember a webhook’s job, for example “Public killfeed” or “Admin alerts”
Note: Only a real Discord webhook URL is accepted, and the panel masks the secret token when it shows the URL back to you, so the token is never displayed in full after saving
Filtering the Killfeed
The killfeed is the busiest feed, so it has two filters that let a webhook show only the deaths you care about. Both are set per webhook, which is how one channel can carry the full feed while another carries only the highlights.
The first filter is kill type. Reforger deaths are sorted into categories, and a webhook only posts the types you tick. The default for a new webhook is enemy kills and team kills.
| Kill type | Meaning | Example line |
|---|---|---|
ENEMY | A normal kill of an enemy player | Killer killed Victim |
TK | A team kill | Killer team-killed Victim |
SUICIDE | A self-inflicted death | Victim died (suicide) |
OTHER_DEATH | A death with no attributed killer | Victim died |
GM | A Game Master elimination | Killer eliminated Victim (GM) |
The second filter is minimum distance. Set a value in metres and the webhook only posts kills at or beyond that range — handy for a “long-range highlights” channel that ignores close-quarters trades. Each killfeed line also carries the weapon, the hit zone, and the distance in metres when the log provides them, appended after the kill text.
Tip: Run a busy public channel on enemy kills only, and a separate admin channel that also includes team kills, so moderators can spot repeat teamkillers
Tip: A minimum distance of something like 300 metres turns a webhook into a sniper highlight reel
Note: Kills are grouped into a single embed per check rather than one message per kill, which keeps a busy server from flooding the channel
Performance Threshold Alerts
A performance webhook warns you when the server is straining. You set a limit for any of three metrics, and the webhook fires when a metric crosses it. Metrics you leave blank are simply ignored.
- CPU % — alert when CPU usage reaches your percentage
- Memory % — alert when used memory reaches your percentage of the limit
- FPS floor — alert when server frame rate drops below your number
Performance alerts are de-bounced: once one fires, that webhook stays quiet for at least 30 minutes even if the metric is still over the line, so a struggling server cannot spam the channel. Recovery is silent — a metric dropping back under its limit simply stops triggering new alerts.
Warning: On most Reforger servers the CPU metric is skipped because the plan uses an unlimited CPU allowance, which means the panel cannot convert the raw figure into a clean 0–100% value. Memory % and the FPS floor are unaffected and are the more reliable performance alerts to rely on
Tip: An FPS floor is the most useful performance alert for Reforger — set it a little below your normal frame rate so you hear about a slowdown before players do
Note: Each performance metric accepts a value of at least 1; leaving a metric empty turns that metric off for the webhook
Server Up, Down, and Restart Alerts
The server state webhook tells you when the server’s power status changes. It distinguishes three transitions and fires each one exactly once:
- 🟢 Server up — the server has come online with a fresh session
- 🔄 Server restarted — a new boot was detected after the server was already up
- 🔴 Server down — the server reports an explicit offline or stopped state
This is the one alert family that is not Reforger-specific — it reads the server’s power state, so it works on any game you host. The worker deliberately stays quiet during transient phases like installing, starting, or restoring, and it treats a temporary inability to reach the server as “no information” rather than firing a false down alert. That means brief blips during a reinstall or a slow boot will not spam your channel.
Tip: Put server state alerts in a private staff channel so admins notice an unexpected crash quickly
Note: A reinstall or a slow startup will not trigger a false down/up flap; the worker only announces a confirmed offline state and only re-announces “up” on the next real boot
Choosing Your Stats Source
The killfeed reads kill and event data from the Reforger server log, and that data has to be produced by a compatibility mod. The Server Stats page lets you pick and install the source with one click rather than editing config by hand.
| Source | What it gives you | Setup |
|---|---|---|
Server Admin Tools | The default. Reads kills and events from the server log | Install the mod from the panel |
WCS_Commands | More detailed combat data | Install the mod and the -WCSTest startup parameter, which the panel adds for you |
When you install a source from the panel, the mod is added to your server’s config and Reforger downloads it on the next boot, so a restart is required before the data starts flowing. For WCS_Commands the panel also appends the -WCSTest startup parameter automatically, because that mod only writes its event log when the flag is present.
Note: A mod installed from the panel downloads on the next server boot, so restart the server after switching sources
Tip: Start with Server Admin Tools — it is the default and needs no startup flag; only move to WCS_Commands if you want richer combat detail
Multiple Webhooks and Discord Threads
Each server supports up to five webhooks, and they run completely independently. A slow or failing webhook never holds up the others, and each one tracks its own position in the feed, so two webhooks subscribed to the killfeed each receive every kill on their own schedule.
If your alerts belong inside a Discord thread or a forum-channel post rather than a plain channel, you can give a webhook an optional Discord thread ID — the numeric ID of the thread or forum post. When set, the alerts post into that thread. The test message uses the same thread, so what you see when you test is exactly where real events will land.
Tip: Five webhooks is enough to split a community cleanly: a public killfeed, a long-range highlight feed, a staff alerts channel, an uptime channel, and a performance channel
Note: The thread ID is the numeric id of a Discord thread or forum post (17–20 digits); leave it blank to post to the channel itself
Warning: Editing webhooks uses the same permission as editing your server’s startup, so a subuser needs that permission granted before they can add or change alerts
What the Alerts Look Like
Every alert arrives as a Discord embed posted by “LoafHosts Server Stats” (the killfeed uses “LoafHosts Killfeed”), titled with your server’s name, colour-coded by type, and footed with a small “LoafHosts Server Stats” line. Joins show a ➕ next to each player, leaves show a ➖, and each killfeed line escapes player names so a clever in-game name cannot break the formatting.
The “Players left” embed is explicitly labelled approximate, and its footer notes that disconnects are estimated from inactivity. That is because of how Reforger logs work, covered next.
Accuracy Limits Worth Knowing
Two of the alert types are best-effort by nature, and it is worth understanding why so the messages make sense.
The biggest one is player disconnects. Arma Reforger does not write a per-player “left the server” line to its log — it only logs an overall player count. So a leave is inferred: when a player’s last activity in the log has gone quiet for about ten minutes, the worker treats them as having likely left and posts the grey “Players left (approx.)” notice with a “last seen ~X ago” note. A player who is connected but idle, and so triggers no parsed log lines, can occasionally be reported as a false leave. The ten-minute window is deliberately generous to keep those false leaves rare, but the feature is honest that this number is an estimate, not an exact leave time.
The other is the CPU performance metric, which is skipped on servers with an unlimited CPU allowance as described above. Memory %, the FPS floor, the killfeed, joins, and server state are all exact within their checking interval.
Note: Joins and the killfeed are exact; disconnects are estimated from inactivity because Reforger has no per-player leave line
Tip: If false leave notices bother a public channel, keep player disconnect alerts in a low-traffic staff channel and leave them off the public killfeed webhook
Frequently Asked Questions
How do I get a Reforger killfeed in my Discord?
Open your Arma Reforger server in the LoafHosts panel, go to Server Stats in the server sidebar, add a webhook with your Discord channel’s webhook URL, subscribe it to the killfeed event, and enable it. Send the test message to confirm it posts to the right channel. You also need a stats source mod (Server Admin Tools by default) installed so the server log contains kill data.
Why is my killfeed empty even though the webhook tests fine?
A successful test only proves the Discord URL works. The killfeed itself needs a stats source — Server Admin Tools or WCS_Commands — installed and the server restarted so Reforger downloads it. Until kills are being written to the server log, there is nothing for the worker to post.
How many Discord webhooks can one server have?
Up to five per server. Each is independent, with its own events, filters, optional label, and optional thread ID, so you can split a public killfeed from private staff alerts.
Can I send alerts to a Discord thread or forum post?
Yes. Set the webhook’s optional Discord thread ID to the numeric id of the thread or forum post, and the alerts — including the test message — will post inside it.
Why does it say a player “likely left” instead of giving an exact time?
Reforger does not log a per-player disconnect line, only an overall count. The panel infers a leave when a player’s activity has been quiet for about ten minutes, so the notice is marked approximate and shows “last seen ~X ago” rather than an exact leave time.
Why am I not getting CPU performance alerts?
On most Reforger plans the CPU allowance is unlimited, which means the panel cannot turn the raw CPU figure into a 0–100% value, so it skips the CPU metric to avoid false alarms. Use the memory % and FPS floor alerts instead — they work regardless.
Do server up and down alerts work for games other than Reforger?
Yes. The server state alert reads the server’s power status, so up, down, and restart notices work on any game you host. The killfeed, join, leave, and performance alerts are specific to Reforger because they read its server log.
Will enabling a webhook flood my channel with old events?
No. When you create or enable a webhook, its starting point is set to the present moment, so it only posts events that happen afterwards. Re-enabling a webhook that was switched off also resets it to “now”, so it never replays the off period.