Fix: Non-Steam Players Can't Join My Server

September 24, 2025 Daemon666 8 min read 16 visualizações

A stock CS 1.6 server only accepts clients that pass Steam authentication. Non-Steam clients — which are still a large share of the CS 1.6 population, especially outside the US and Western Europe — get bounced at connect with STEAM validation rejected or No Steam logon, or they simply hang on "Verifying…" and drop. The server is not broken; it just has no component that says "let non-Steam clients in". That component is Reunion on ReHLDS, or dproto on original HLDS.

1. Pick the right tool for your engine

Do not run both. They both intercept authentication and will fight each other. This guide covers the Reunion path, which is what a modern server should be on, and points at dproto where it differs.

2. Load Reunion through Metamod

Reunion is a Metamod plugin. Drop its file into cstrike/addons/reunion/ and add it to cstrike/addons/metamod/plugins.ini:

linux addons/reunion/reunion_mm_i386.so
win32 addons/reunion/reunion_mm.dll

Load Reunion before AMX Mod X in plugins.ini — auth has to be in place before the plugin layer starts asking clients for their id. Restart, then confirm it loaded:

meta list

Reunion must show as RUN. If it is bad load, it is the wrong architecture or the path is wrong — check with file and fix the path before going further. The load order is not cosmetic: Metamod loads plugins top to bottom, and if AMXX comes up before the auth layer, plugins that read a player's authid on connect can see the wrong value for the first clients that join after a map change.

3. Set the hash salt — Reunion refuses to load without it

This is the single most common Reunion mistake. Its config (reunion.cfg) requires a SteamIdHashSalt of at least 16 characters. If it is shorter or missing, Reunion aborts loading entirely and you are back to non-Steam players being rejected.

SteamIdHashSalt = 8f3Kd92lasQ7zXcV19mT
cid_00 = 0
cid_01 = 1
cid_02 = 2

Generate a random string of 16+ characters and keep it secret and permanent — the salt is what makes each non-Steam player's generated SteamID stable across sessions. Change it later and every non-Steam player's id changes with it, which wipes out admin access and bans keyed to those ids. The cid_* lines control how each client type is authenticated; read the Reunion guide for what each mode does before changing them.

4. sv_lan must be 0

With sv_lan 1 the engine treats the server as LAN-only, hands every client VALVE_ID_LAN, and rejects internet connections. Non-Steam auth is meaningless in that state. In server.cfg:

sv_lan 0

If your non-Steam players all end up with the same id, that is a related but distinct problem — see all non-Steam players get the same SteamID.

5. Don't forget voice for non-Steam

Getting non-Steam players in is step one; a common follow-up complaint is that they connect but cannot use voice chat, because stock CS voice depends on Steam. On a ReHLDS server the fix is Revoice, which restores voice for non-Steam clients. It is a separate component from Reunion, so install it once auth is working — chasing "no voice" before players can even join wastes time.

Common errors

  • Reunion shows bad load in meta list — wrong architecture (must be 32-bit i386) or wrong path in plugins.ini.
  • Reunion loads but non-Steam still rejected — the salt is under 16 characters, so Reunion bailed out after loading. Fix SteamIdHashSalt and restart. This also breaks after the 25th Anniversary update if you are on an old Reunion build; update it.
  • Steam players now rejected instead — a mis-set cid_* mode is refusing legitimate Steam clients. Restore the default modes.
  • Running both Reunion and dproto — remove one. They cannot coexist.

Verification

From a non-Steam client, connect directly:

connect YOUR_IP:27015

You should spawn normally. Then, in the server console, run status and look at the uniqueid column — a working non-Steam auth shows real STEAM_x:y:z ids, not VALVE_ID_LAN and not the same id repeated for every player. Confirm a Steam client still connects too, so you know you did not trade one group of players for the other. Once both connect and carry distinct ids, non-Steam support is working.

Colaboradores: Daemon666 ✦
Compartilhar: