reunion.cfg Explained: Every Setting for Steam and Non-Steam

August 13, 2025 Daemon666 8 min read 248 görüntülenme

Reunion is the non-Steam authentication provider for ReHLDS, and it is configured through one file, cstrike/reunion.cfg. Get this file right and a single server hands every player — genuine Steam or non-Steam — a stable STEAM_ id that admin flags, bans and stats can trust. Get it wrong and Reunion either refuses to load or scrambles everyone's identity. This walks through the settings that matter.

1. SteamIdHashSalt — mandatory, 16+ characters

The one value Reunion will not start without is the salt used to derive SteamIDs for non-Steam players:

SteamIdHashSalt = a9F2kQ7pLm3xZ0Vb

It must be at least 16 characters. Shorter, or left at a placeholder, and Reunion aborts loading — it will not appear as RUN in meta list, and the server comes up with no non-Steam support at all. Generate a long random string once.

2. Never change the salt

The salt is the seed for every generated id. A non-Steam player's STEAM_ id is a hash of their identity and your salt, so if you ever edit SteamIdHashSalt, every non-Steam player is re-rolled onto a brand-new id in a single restart. That wipes their admin access, their rank in stats, their VIP status, and it orphans every ban keyed to the old id. Treat the salt as write-once. Back up reunion.cfg so it cannot be lost.

3. The cid_ provider modes

Reunion detects which provider each connecting client uses — real Steam, one of several Steam emulators, a legacy revEmu client, and so on — and the cid_XX lines map each detected provider to how its id is generated:

SteamIdHashSalt = a9F2kQ7pLm3xZ0Vb
cid_00 = 0
cid_01 = 1
cid_02 = 2

Each cid_XX is a provider index; its value selects the generation mode for that provider. Mode 0 passes through a real Steam id untouched; the other modes tell Reunion how to synthesise an id for a non-Steam provider (from the client-supplied unique id, from the name, or a hashed combination). The shipped reunion.cfg lists every provider index it knows about with a comment, so set these from the file you were given rather than guessing an index that may not exist in your build.

4. How Steam and non-Steam share one space

The design goal is that both audiences live in one identity system. A Steam client authenticates normally and keeps its Valve id; a non-Steam client is handed a generated STEAM_0:x:xxxxxxx that looks like a real one and stays stable across reconnects. Downstream, AMX Mod X cannot tell the difference — which is exactly why admin flags and stats "just work" for both. This is also why Reunion must load before AMXX in addons/metamod/plugins.ini: it has to establish the authid during the handshake, before AMXX reads it. Load it second and admins recognised by SteamID intermittently lose flags.

5. Protocols 47 and 48

Reunion answers both the modern Steam handshake (protocol 48) and the older non-Steam one (protocol 47), so you do not choose a single audience. If a specific client build is being bounced, that is a 47/48 protocol question, not a reason to lock reunion.cfg to one provider. Keep the provider set broad enough to admit the clients your community actually runs.

6. Admin identity on a non-Steam server

A generated id is only as trustworthy as the thing it is derived from. If two non-Steam players pick the same name and your generation mode leans on the name, they can collide onto one id — and if that id is an admin, admin gets shared or stolen. For admins on a non-Steam-friendly server, back the SteamID check with name+password auth in users.ini and the "requires password" flag, so an impostor with the same name but no password gets nothing. Never rely on the generated id alone for privileged accounts.

Common errors

  • Reunion missing / bad load in meta list — the salt is unset or under 16 characters. Fix SteamIdHashSalt and restart.
  • Everyone's admin and stats reset — the salt was changed. Restore the original value; the ids depend entirely on it.
  • Admins lose flags after a map change — Reunion loads after AMXX. Move it to the top of plugins.ini.
  • A whole client type cannot connect — its provider is not enabled in the cid_ list, or you are on stock HLDS where Reunion does not belong — use dproto there.
  • Non-Steam ids look like VALVE_ID_LAN — Reunion did not take effect; confirm it is RUN and above AMXX.

Verification

Start the server and run meta list: Reunion must read RUN, above AMXX. Connect once with a Steam client and once with a non-Steam client and check status — both should show a STEAM_ id, and the non-Steam player should keep the same id after reconnecting and after a map change. When all of that holds, both audiences share one honest identity system, which is the entire purpose of reunion.cfg.

Katkıda bulunanlar: Daemon666 ✦
Paylaş: