Promuj serwer
61 lines 5.7 KiB Markdown Source Rendered Raw Permalink History
---
title: "How to Install Reunion (Steam + Non-Steam Players)"
excerpt: "Install Reunion on a ReHLDS server so both Steam and non-Steam clients can connect, and set the SteamIdHashSalt correctly so it actually loads."
category: "installation"
tags: "reunion, non-steam"
image: ""
read_time: "8 min read"
---
<p>Reunion is the modern non-Steam authentication provider for CS 1.6, maintained alongside ReHLDS. It replaces the ancient dproto/revEmu approach and lets a single server accept genuine Steam clients and non-Steam clients at the same time, handing every player a stable, unique SteamID that AMX Mod X admin flags and stats plugins can rely on. It runs as a Metamod plugin and it expects <a href="/tutorials/install-rehlds-on-linux">ReHLDS</a> underneath — on stock Valve HLDS it will either refuse to load or misbehave, because it hooks engine functions that only ReHLDS exposes cleanly.</p>

<h2>1. Confirm the prerequisites</h2>
<p>You need ReHLDS running and Metamod (use <a href="/tutorials/install-metamod-r">Metamod-r</a>) already loading. Verify both before touching Reunion:</p>
<pre>rehlds_version
meta list</pre>
<p>If <code>rehlds_version</code> is <code>Unknown command</code>, stop and install ReHLDS first — Reunion on plain HLDS is a dead end.</p>

<h2>2. Place the Reunion files</h2>
<p>Download the current Reunion release archive from the project's GitHub releases page. It contains the Metamod plugin and a sample config. On Linux the layout is:</p>
<pre>cstrike/addons/reunion/reunion_mm_i386.so
cstrike/reunion.cfg</pre>
<p>Copy the <code>.so</code> into <code>cstrike/addons/reunion/</code> and <code>reunion.cfg</code> into <code>cstrike/</code>. On Windows the module is <code>reunion_mm.dll</code> in the same <code>addons/reunion/</code> folder.</p>

<h2>3. Load Reunion before AMXX in Metamod</h2>
<p>Edit <code>cstrike/addons/metamod/plugins.ini</code> and add Reunion as the <strong>first</strong> plugin, above AMX Mod X:</p>
<pre>linux addons/reunion/reunion_mm_i386.so
linux addons/amxmodx/dlls/amxmodx_mm_i386.so</pre>
<p>Order matters. Reunion has to establish each player's real authid during the connection handshake, before AMXX reads it. If AMXX loads first, admins recognised by SteamID can intermittently lose their flags. On Windows the lines start with <code>win32</code> and reference the <code>.dll</code> files.</p>

<h2>4. Set a SteamIdHashSalt (this is the step people skip)</h2>
<p>Open <code>cstrike/reunion.cfg</code>. The one value you must set is the salt Reunion uses to derive SteamIDs for non-Steam players:</p>
<pre>SteamIdHashSalt = a9F2kQ7pLm3xZ0Vb</pre>
<p><strong>The salt must be at least 16 characters.</strong> If it is shorter — or left at a placeholder — Reunion refuses to load and prints a startup error to that effect, and the server continues without non-Steam support. Pick a long random string and then <strong>never change it</strong>: the salt is the seed for every generated SteamID, so changing it later re-rolls every non-Steam player's identity, wiping their admin access, stats, and VIP status in one restart.</p>
<p>The rest of <code>reunion.cfg</code> configures which auth providers (Steam, revEmu, Steam-legacy emulators, etc.) are accepted and how their IDs are converted. The shipped file is commented — read it rather than pasting a provider list from a forum, because the accepted keys change between versions.</p>

<h2>5. Start and verify</h2>
<pre>./hlds_run -game cstrike +map de_dust2 +maxplayers 20 +sv_lan 0</pre>
<p>In the console:</p>
<pre>meta list</pre>
<p>Reunion must appear as <code>RUN</code>. Then connect once with a Steam client and once with a non-Steam client and check the authids:</p>
<pre>status</pre>
<p>Steam players show a normal <code>STEAM_0:x:xxxxxx</code>. Non-Steam players also show a <code>STEAM_</code> id — that is Reunion generating one from your salt, which is exactly what you want. If non-Steam players still show <code>VALVE_ID_LAN</code> or <code>HLTV</code>-style ids, Reunion did not take effect.</p>

<h2>Common errors</h2>
<ul>
<li><strong>Reunion is <code>bad load</code> in <code>meta list</code></strong> — usually the salt is missing or under 16 characters. Fix <code>SteamIdHashSalt</code> and restart. It can also mean a 64-bit or wrong-platform module; confirm with <code>file cstrike/addons/reunion/reunion_mm_i386.so</code> that it is <em>ELF 32-bit, Intel 80386</em>.</li>
<li><strong>Non-Steam players cannot connect at all</strong> — you are on stock HLDS, not ReHLDS. Reunion needs ReHLDS.</li>
<li><strong>Admins randomly lose flags</strong> — Reunion is loaded after AMXX in <code>plugins.ini</code>. Move it to the top.</li>
<li><strong>Everyone's admin/stats reset after an edit</strong> — you changed <code>SteamIdHashSalt</code>. Restore the original salt; the generated IDs depend entirely on it.</li>
</ul>

<h2>A note on dproto</h2>
<p>If you are on original Valve HLDS rather than ReHLDS, Reunion is not your tool — dproto is the equivalent for that engine. But the right long-term move is to switch to ReHLDS and use Reunion; the two are developed together, and Reunion is far better behaved with modern AMXX. See <a href="/tutorials/install-rehlds-on-linux">installing ReHLDS</a> and then <a href="/tutorials/install-amx-mod-x-1-9">AMX Mod X 1.9</a>.</p>

<h2>Verification checklist</h2>
<ul>
<li><code>meta list</code> shows Reunion as <code>RUN</code>, above AMXX.</li>
<li>A non-Steam client connects and gets a <code>STEAM_</code> authid.</li>
<li>The same non-Steam player keeps that id across reconnects and map changes.</li>
<li>Your admin config (by SteamID) still works for both Steam and non-Steam admins.</li>
</ul>
<p>Once all four hold, both audiences share one server with one identity system — which is the whole point of Reunion.</p>