Fix: Reunion Installed but Steam IDs Are Still Wrong

November 5, 2025 Daemon666 8 min read 242 просмотров

You installed Reunion so non-Steam players get stable, unique Steam IDs, but players still show STEAM_ID_LAN, share one ID, or get a different ID every reconnect — which breaks admin flags, bans, and stats that are all keyed by SteamID. Reunion works, but only when its salt and ID-generation mode are configured correctly, and a common failure is that it silently did not load at all. Here is how to get real, stable IDs.

1. Confirm Reunion actually loaded

Reunion is a Metamod plugin. If it is not listed in Metamod's plugin list, nothing it does is happening and the engine falls back to STEAM_ID_LAN for non-Steam clients. From the server console:

meta list

Reunion must appear with status running. If it is absent, its line is missing from addons/metamod/plugins.ini; if it shows bad load, the most common cause is the salt problem in the next step — Reunion refuses to start without a valid salt.

2. Set a SteamIdHashSalt of at least 16 characters

This is the single most common reason Reunion does not load. Its config, reunion.cfg in the server root, must define a hash salt of 16 characters or more. Anything shorter and Reunion refuses to initialize:

SteamIdHashSalt = a-long-random-secret-salt-value

The salt is what makes generated IDs both unique and stable — it is mixed into the hash that turns a non-Steam client's identity into a persistent STEAM_ ID. Once set, never change it: changing the salt regenerates every non-Steam player's ID, orphaning their admin access, bans, and rank. Pick one long random value at setup and leave it.

3. Choose the right cid (client id) generation mode

Reunion generates the ID for non-Steam clients from a source you select in reunion.cfg. The mode decides whether IDs are stable. A mode that keys off something the client can change or that many clients share produces collisions; a mode that keys off the client's stored authentication produces stable, distinct IDs. Set the generation mode per Reunion's documented options in reunion.cfg and prefer the mode that derives the ID from the client's own stored token rather than from an easily-shared value. If two different people consistently get the same ID, your mode is deriving IDs from something they share — switch modes and have them reconnect.

4. Match Reunion to your engine

Reunion is the non-Steam provider for ReHLDS. On original Valve HLDS you use dproto instead. Running Reunion on stock HLDS, or an old Reunion build against a newer ReHLDS, can load but misbehave — wrong IDs, or clients that authenticate as Steam when they are not. Confirm you are on ReHLDS (its banner prints at boot) and that Reunion is a build current with your engine, as covered in the ReHLDS compatibility guide.

5. Understand Steam vs non-Steam clients

Reunion handles the non-Steam side; genuine Steam clients keep their real Steam ID regardless. If a legitimate Steam player shows a wrong ID, that is not a Reunion issue — check that the server is validating Steam tickets and that sv_lan is 0, since a LAN server issues STEAM_ID_LAN to everyone. Mixing this up sends admins chasing Reunion config when the real cause is a LAN-mode server. Set sv_lan 0 and confirm real Steam clients resolve to their own IDs before blaming Reunion for non-Steam ones.

Troubleshooting

  • Reunion bad load in meta listSteamIdHashSalt is shorter than 16 characters or missing. Set a long salt (step 2).
  • Everyone is STEAM_ID_LAN — Reunion is not loaded at all, or sv_lan 1. Check meta list and set sv_lan 0.
  • Two players share one ID — the cid generation mode derives the ID from a shared value. Change the mode (step 3).
  • ID changes every reconnect — the mode keys off something non-persistent, or the salt was changed. Fix the mode and leave the salt alone.
  • All non-Steam bans stopped working after an edit — you changed SteamIdHashSalt and regenerated every ID. Restore the original salt.
  • Wrong engine — Reunion on stock HLDS. Use dproto there instead.

Verification

Have a non-Steam player connect and run status in the console; note their STEAM_ ID. Have them reconnect and confirm the ID is identical — stable across sessions is the whole point. Then have a second non-Steam player join and confirm they get a different ID. If IDs are stable per player and distinct between players, Reunion is configured correctly and admin flags, bans and rank will now key reliably. Finally, add a non-Steam admin by their resolved ID and confirm the flag applies on their next connect. Guard reunion.cfg and its salt like a password.

Участники: Daemon666 ✦
Поделиться: