--- title: "Connecting Your CS 1.6 Server to Discord (Status and Alerts)" excerpt: "How to surface live server status, join alerts and admin controls in Discord using webhooks and a bot, what CS 1.6 can and cannot push on its own, and how to do it without exposing RCON." category: "hosting" tags: "discord, integration" image: "" read_time: "8 min read" ---
A Discord server is where a CS 1.6 community actually lives between sessions, so wiring your game server into it — live status, "players online now" pings, admin alerts — is one of the highest-leverage things you can set up. The important framing first: GoldSrc CS 1.6 has no native Discord support. Everything here is done by an external process that either queries your server (A2S) or reads its logs, then posts to Discord through a webhook or a bot. Here is how the pieces fit.
Three distinct integrations, in rising order of complexity:
Pick the minimum you need; two-way control is powerful but carries real risk if the bot is compromised.
For status and alerts you do not need a full bot — a channel webhook is enough. In Discord: Channel Settings → Integrations → Webhooks → New Webhook, name it, and copy the webhook URL. Any process that can make an HTTPS POST can now post to that channel. Treat the webhook URL like a password — anyone who has it can post as your bot — so keep it out of public configs and out of your MOTD.
The clean, safe way to show status is to query the server from outside using the same A2S_INFO the game browser uses — it needs no access to the box, only your public IP:port. A small scheduled script queries the server, formats map and player count, and POSTs to the webhook. Because it only reads the public query port, it cannot be turned against your server. This is exactly how uptime tools work; if you already run one, see monitoring uptime with alerts and point its notifications at the Discord webhook.
To announce players joining, you have two options. The query-based script above can detect the count rising and post "3 players online — come play". For richer, per-player events (who connected, from where), read the server log — CS 1.6 writes connect lines to its log files, and a log-tailing script can post them. An in-game connect announcer such as CSB Connect Announce (GeoIP) shows joins to players on the server; pairing it with a log-tail-to-Discord bridge gets the same information into your Discord for the people who are not in-game yet.
Running commands from Discord means a bot that holds your RCON password and executes commands on the server. This is genuinely useful for admins but must be locked down: restrict the command to specific Discord roles, never post the RCON password in any channel, and rotate it if the bot host is ever exposed. The full pattern — bot, role gate, command whitelist — is covered in the Discord RCON bot guide. First harden RCON itself per secure RCON setup; a Discord bridge is only as safe as the RCON behind it.
Post one test message through the webhook and confirm it appears in the channel. Start your status script and watch it update the map and count when you change the map in-game — the Discord message should follow within one poll interval. For the RCON bot, run a harmless command such as status from an authorized role and confirm the response, then confirm an unauthorized user is refused. When status tracks reality and only permitted roles can issue commands, the integration is sound.