Skip to content

Install the RookHelm plugin

This guide walks you through connecting a Source 1 game server to RookHelm. The fastest path is the plugin bundle from your dashboard: one download, drop it in, restart, and adopt the server with one click. No config editing.

GameEngineStatus
Team Fortress 2SourceSupported
Counter-Strike: SourceSourceSupported
Garry’s ModSourceSupported
Left 4 Dead 2SourceSupported
Counter-Strike 2Source 2Not yet supported

You need:

  • SourceMod 1.12 or 1.13 installed at addons/sourcemod/.
  • Access to your game server’s files (FTP, SSH, or your host’s file manager).
  • An admin seat in a RookHelm community. Sign in at your dashboard and open Servers.

You do not need to install REST in Pawn or any other extension separately - the RookHelm extension is included in the bundle. You also do not copy any per-server credentials by hand; the server receives its key automatically when you adopt it.

On the Servers page, click Download plugin bundle. This gives you rookhelm-sourcemod-<community>.zip, which contains:

  • The RookHelm SourceMod extension and its companion plugin.
  • cfg/sourcemod/rookhelm.cfg, already filled in with your community’s two settings (rookhelm_api_url and rookhelm_enrollment_token).
  • README.txt and the license texts.

The enrollment token is the same for every server in your community, so the same bundle works on your whole fleet. Re-downloading is safe - it does not rotate your token.

Extract the zip into your game’s mod directory so its addons/ and cfg/ folders merge with your existing install:

Terminal window
unzip rookhelm-sourcemod-*.zip -d /path/to/srcds/

Then restart the server. On boot the plugin loads the bundled cfg/sourcemod/rookhelm.cfg automatically, reads the two settings, opens a connection to RookHelm, and announces itself.

Back on the Servers page, the server appears under Pending servers within about a minute, showing its self-reported name and address. Click Adopt. Adopting mints the server’s signing key and delivers it to the server automatically - there is nothing to copy.

Every server, including the first one in a brand-new community, waits for one explicit adopt click. This is deliberate: a server is powerless until you confirm it is yours.

Once adopted, the server’s status turns to Online as its first heartbeat lands, usually within a few seconds. Bans, mutes, and player counts start flowing to your dashboard from that point on.

If you triggered the download from the dashboard, the install card on the Servers page advances on its own - from the install steps, to “Server detected” when the pending row appears, to “Heartbeat received. Plugin installed” once the adopted server reports in.

Every release ships a SHA256SUMS file. To confirm the bundle transferred intact:

Terminal window
sha256sum -c SHA256SUMS
# Expected: "rookhelm-sourcemod-v<version>.zip: OK"

The published binaries are produced by the RookHelm release pipeline. The extension combines GPL-3.0 and proprietary code; NOTICE.txt inside the bundle explains how to request the source for the GPL-3.0 portion.

If you manage configs yourself instead of using the bundle, you only need two settings. Copy both from the Servers page and add them to a config the server runs at startup, such as cfg/server.cfg:

rookhelm_api_url "https://api.rookhelm.com"
rookhelm_enrollment_token "your-community-enrollment-token"

Restart the server (or change the map) so the plugin reads them, then adopt the server as in Step 3. Values you set this way are safe: the plugin only auto-loads cfg/sourcemod/rookhelm.cfg if that file is present (it ships only in the dashboard bundle), so a manual server.cfg setup is never overwritten.

ConVarDescription
rookhelm_api_urlBase URL of the RookHelm connect endpoint. The dashboard bundle pre-fills this.
rookhelm_enrollment_tokenYour community enrollment token - one value, the same on every server, pasted once. The dashboard bundle pre-fills this.

Both ConVars are FCVAR_PROTECTED, so their values stay hidden from cvarlist and cannot be read from chat. The per-server signing key is never a ConVar - the server receives and stores it itself when you adopt it.

  • Enrollment token: rotate it from the dashboard if it leaks. Already-adopted servers keep working - their per-server key is independent of the enrollment token. Servers that have not yet adopted will need a fresh bundle.
  • A server’s signing key: if a server’s key is lost or compromised, use Reissue keys on the server’s page. The new key is delivered to the server on its next reconnect; you never copy it by hand.

If a server does not appear as pending after a restart, or does not come online after adopting, see Troubleshooting.

Open the dashboard