Discord feeds
CerebRUST posts to Discord through feeds. Each one is a class of message, and each gets its own channel — so your kill feed can live in a staff channel while wipe announcements go somewhere players can see.
Set them up under Listing & Discord. Connect your Discord first, then pick a channel per feed and switch on the ones you want. Everything is off until you turn it on.
The feeds
Section titled “The feeds”| Feed | Safe for players? | What it posts |
|---|---|---|
| Public events | Yes | World events (Patrol Helicopter, Cargo Ship, Bradley…) plus player join/leave. |
| Server lifecycle | Yes | Server online / offline, and a wipe’s new map, shutdown and wiped announcements. |
| Pre-wipe announcements | Yes | Countdown hype before a scheduled wipe (10 days / 1 week / 1 day / wipe night). |
| Live status | Yes | One message kept up to date with players online, queue and next wipe. |
| Player log | No | Join/leave with Steam and proxycheck links, sessions this wipe and time online. |
| Player reports | No | In-game F7 reports — reporter, target, type and message. |
| Kill feed | No | Every PvP kill — who, weapon, distance, location, sleepers. Reveals live movement. |
| Raid alerts | No | One message per raid, kept up to date — attackers, whose base, grid, damage. |
| Team activity | No | Team created / joined / left / disbanded. Reveals group composition. |
| Chat mirror | No | Everything players say, plus broadcasts your staff send from the dashboard. |
| Sign & artwork moderation | No | The painted image itself, with author and location. |
| Chat trigger alerts | No | Fires when a chat rule matches — quotes what was said. |
The “safe for players” column is a judgement about what the feed reveals, not a permission setting — CerebRUST will happily post a kill feed into a public channel if you point it at one. The dashboard labels each feed the same way.
Server lifecycle
Section titled “Server lifecycle”Server lifecycle is the “is my server up?” feed. It posts when your server goes down, when it comes back, and around a wipe.
Since plugin v0.23.0 the “back up” message is sent by your server the moment it has finished starting, with no delay at all.
Going down is announced reliably only when CerebRUST is the one restarting the server. A wipe, a scheduled restart or the restart button all announce the moment the restart is asked for, with the countdown in the message. A restart started from your game panel or by your host is a harder problem: the plugin does try to send word as the server shuts down, but the server often stops before the message gets out, and in that case it falls back to the five-minutes-of-silence detection.
One thing it deliberately does not do: a plugin reload is not a restart. Running
o.reload Cerebrust to update the plugin does not post “server is back” — your server never went
anywhere.
Raid alerts
Section titled “Raid alerts”Raid alerts posts one message per raid and keeps editing it while the raid goes on, so a long raid is one card rather than a scroll of them. It names:
- The attackers, each linked to their Steam profile
- Whose base it is — “Bob’s base at G7” (a tool cupboard has no name of its own, so the owner’s is the next best thing)
- Whether it is an online or offline raid
- Explosives used, the estimated sulfur they cost, structures destroyed and whether the tool cupboard went down
- Links to the raid’s own page on the dashboard, and to the base
The card is refreshed at most once a minute while explosives keep landing, and a last time when the raid goes quiet: the title changes to Raid over and it says how long the raid lasted and how it ended. Raids on NPC bases are labelled as such.
This is a staff feed: it names the attackers. The DM a raided player gets says only that their base is being raided and whether they appear to be offline.
Player log
Section titled “Player log”Each join and leave is one line:
🟢 Bob connected (Ukraine). 3 sessions, 19h active this wipe.
🔴 Bob disconnected (Disconnected). Online for 3h 31m.
The name links to the player’s Steam profile and the country to a proxycheck lookup of the IP they
connected from. The bracket on a leave is Rust’s own reason — Disconnected for an ordinary quit,
but also Timed out or a kick reason, which is what tells a crash from a kick. A quick reconnect
is counted as part of the same session, not a new one. A player seen on your server for the first
time gets a highlighted card instead.
Sign & artwork moderation
Section titled “Sign & artwork moderation”Every sign or canvas a player paints is posted with the image, so a moderator can see what was drawn without opening the dashboard. The image is uploaded into Discord by the bot — CerebRUST’s own copy stays private — so the bot needs Attach Files in that channel. Without it the post still arrives, with a link to the sign history on the dashboard instead of the picture.
Live status
Section titled “Live status”Live status is the odd one out: instead of posting a message every time something happens, it posts one message and keeps editing it, so the channel never fills up.
It carries:
- Players online, with the queue if there is one
- Server FPS, smoothed over the last few readings rather than the instant value
- Day N of the wipe, with the map size and seed
- Next wipe, as a live countdown that keeps counting in your own timezone
- The connect address, in a code block so it is one tap to copy
- This wipe’s map, as the image
- A link to your public server page — the vanity address if you have set one
It rewrites the message every minute, whether or not anything changed. A settled server reads exactly the same from one minute to the next, so skipping the unchanged ones froze the “last updated” stamp and made a live message look abandoned — which is the one thing a live message must never do.
The FPS reading is an average of the last few samples, not a live number. CerebRUST keeps one FPS sample every five minutes, so it is a smoothed reading over roughly the last quarter of an hour — enough to tell a healthy server from a struggling one, not enough to watch a single lag spike.
If your server stops reporting, the message says so rather than leaving the last player count sitting there. A number that is quietly out of date is worse than no number, and the moment it matters most is the moment it would be wrong.
Nothing is appearing in Discord
Section titled “Nothing is appearing in Discord”Almost always the bot cannot post in the channel you picked, and the usual cause is a channel that
is locked down — which is a perfectly sensible thing for a status or announcement channel to be.
A channel that denies @everyone denies the bot too, unless the bot’s own role is allowed past
the override. Its guild-wide permissions do not help: a channel-level deny wins.
You do not have to guess which one. The bot checks every channel and the dashboard names what is missing — on the channel in the picker, and again under each feed that chose it, saying what that feed loses:
⚠️ The bot cannot post here — its role is missing Send Messages in this channel.
⚠️ Text messages arrive, but the wipe announcements are embeds and are dropped without Embed Links.
To fix it, in Discord: Edit Channel → Permissions → add the CerebRUST role, and allow what the dashboard named. The four that matter are View Channel, Send Messages, Embed Links and — for the sign feed’s images — Attach Files.
CerebRUST asks for the narrowest set of permissions it can when you invite the bot, rather than asking for Administrator. Attach Files joined that set on 2026-10-08 for the sign feed’s images; a Discord that invited the bot before then can tick it on the CerebRUST role by hand, or re-invite. That is why a private channel needs one deliberate grant: the bot is not carrying a master key around your Discord.
Once the permission is granted the next refresh picks it up — within a minute for live status, and on the next event for everything else. Nothing needs reconnecting.
Running more than one server in one Discord
Section titled “Running more than one server in one Discord”You can, and there are two sensible layouts:
- A channel per server —
#server-one-status,#server-two-status, and so on. Clearest if your Discord is already organised by server. - Shared channels — point both servers’ feeds at the same channel. Everything CerebRUST posts as an embed carries the server’s name in its footer, so a shared kill feed or raid feed still tells you which server each line is about.
One thing does not share well: the chat mirror posts plain lines rather than embeds, so two servers mirroring into one channel is an unreadable interleave. Give that feed a channel each.
