Server bewerben
C counter-strike-boost.com 91f4660dc3 Fix links to tutorials that do not exist (5 files)
9 lines 5.7 KiB Markdown Source Rendered Raw Permalink History
---
title: "Fix: Reunion Installed but Steam IDs Are Still Wrong"
excerpt: "Why non-Steam players share STEAM_ID_LAN or get colliding IDs even with Reunion loaded, how the SteamIdHashSalt and cid modes work, why Reunion refuses to load without a long salt, and how to verify stable IDs."
category: "errors"
tags: "reunion, steamid"
image: ""
read_time: "8 min read"
---
<p>You installed Reunion so non-Steam players get stable, unique Steam IDs, but players still show <code>STEAM_ID_LAN</code>, share one ID, or get a different ID every reconnect &mdash; which breaks admin flags, bans, and <a href="/tutorials/setup-stats-system">stats</a> 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.</p><h2>1. Confirm Reunion actually loaded</h2><p>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 <code>STEAM_ID_LAN</code> for non-Steam clients. From the server console:</p><pre>meta list</pre><p>Reunion must appear with status <code>running</code>. If it is absent, its line is missing from <code>addons/metamod/plugins.ini</code>; if it shows <code>bad load</code>, the most common cause is the salt problem in the next step &mdash; Reunion refuses to start without a valid salt.</p><h2>2. Set a SteamIdHashSalt of at least 16 characters</h2><p>This is the single most common reason Reunion does not load. Its config, <code>reunion.cfg</code> in the server root, must define a hash salt of <strong>16 characters or more</strong>. Anything shorter and Reunion refuses to initialize:</p><pre>SteamIdHashSalt = a-long-random-secret-salt-value</pre><p>The salt is what makes generated IDs both unique and stable &mdash; it is mixed into the hash that turns a non-Steam client's identity into a persistent <code>STEAM_</code> ID. Once set, <strong>never change it</strong>: 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.</p><h2>3. Choose the right cid (client id) generation mode</h2><p>Reunion generates the ID for non-Steam clients from a source you select in <code>reunion.cfg</code>. 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 <code>reunion.cfg</code> 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 &mdash; switch modes and have them reconnect.</p><h2>4. Match Reunion to your engine</h2><p>Reunion is the non-Steam provider for <strong>ReHLDS</strong>. On original Valve HLDS you use <strong>dproto</strong> instead. Running Reunion on stock HLDS, or an old Reunion build against a newer ReHLDS, can load but misbehave &mdash; 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 <a href="/tutorials/fix-regamedll-rehlds-incompatible">the ReHLDS compatibility guide</a>.</p><h2>5. Understand Steam vs non-Steam clients</h2><p>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 &mdash; check that the server is validating Steam tickets and that <code>sv_lan</code> is <code>0</code>, since a LAN server issues <code>STEAM_ID_LAN</code> to everyone. Mixing this up sends admins chasing Reunion config when the real cause is a LAN-mode server. Set <code>sv_lan 0</code> and confirm real Steam clients resolve to their own IDs before blaming Reunion for non-Steam ones.</p><h2>Troubleshooting</h2><ul><li><strong>Reunion <code>bad load</code> in <code>meta list</code></strong> &mdash; <code>SteamIdHashSalt</code> is shorter than 16 characters or missing. Set a long salt (step 2).</li><li><strong>Everyone is <code>STEAM_ID_LAN</code></strong> &mdash; Reunion is not loaded at all, or <code>sv_lan 1</code>. Check <code>meta list</code> and set <code>sv_lan 0</code>.</li><li><strong>Two players share one ID</strong> &mdash; the cid generation mode derives the ID from a shared value. Change the mode (step 3).</li><li><strong>ID changes every reconnect</strong> &mdash; the mode keys off something non-persistent, or the salt was changed. Fix the mode and leave the salt alone.</li><li><strong>All non-Steam bans stopped working after an edit</strong> &mdash; you changed <code>SteamIdHashSalt</code> and regenerated every ID. Restore the original salt.</li><li><strong>Wrong engine</strong> &mdash; Reunion on stock HLDS. Move to <a href="/tutorials/install-rehlds-on-linux">ReHLDS</a> (Reunion needs it); dproto is only the old option for stock HLDS.</li></ul><h2>Verification</h2><p>Have a non-Steam player connect and run <code>status</code> in the console; note their <code>STEAM_</code> ID. Have them reconnect and confirm the ID is identical &mdash; stable across sessions is the whole point. Then have a second non-Steam player join and confirm they get a <em>different</em> ID. If IDs are stable per player and distinct between players, Reunion is configured correctly and admin flags, bans and <a href="/tutorials/setup-stats-system">rank</a> will now key reliably. Finally, add a non-Steam admin by their resolved ID and confirm the flag applies on their next connect. Guard <code>reunion.cfg</code> and its salt like a password.</p>