JoinGG

ReHLDS and ReGameDLL: what modern CS 1.6 servers run

The rebuilt engine and game library behind modern CS 1.6 servers: what each piece replaces, what breaks when you switch, and how to test it first.

SweetMask · 5 min read

ReHLDS version: followed by a build number is what the version command prints on a modern Counter-Strike 1.6 server, where Valve's own server prints Exe build:. During startup the same console also shows ReGameDLL version:. Together they name the stack: ReHLDS in place of Valve's engine, ReGameDLL_CS in place of the game library, and Metamod-r, AMX Mod X and the ReAPI module on top.

None of it changes what players install. The client is still Valve's Counter-Strike, and buying, installing and joining works the same on either kind of server. The differences are all on the server side.

Why the server was rebuilt

Valve's dedicated server, HLDS, is closed source. When it had a bug, the fix had to come from Valve or from a plugin patching memory at runtime. ReHLDS is the engine rebuilt from HLDS build 6152/6153, using the DWARF debug information left in the Linux binary, engine_i486.so, with defects fixed along the way. ReGameDLL_CS did the same for the game library, working from the Linux cs.so of build 6153beta. Both projects state the same goal: a more stable server with an extended API for mods and plugins. Both moved from the GPLv3 to the MIT licence in July 2025.

The HLDS they match is not the newest one. Half-Life's 25th anniversary update in November 2023 changed the engine. Valve archived the previous build on a public beta branch called steam_legacy, described as the "Pre-25th Anniversary Build", and updated the dedicated server, app 90, on 22 November. ReHLDS is documented as compatible with the pre-anniversary edition, engine version 8684 or lower, installed through SteamCMD like this:

app_set_config 90 mod cstrike
app_update 90 -beta steam_legacy validate

The old 5xxx builds that the pre-SteamCMD hldsupdatetool installed will not work.

What each piece replaces

  • ReHLDS replaces swds.dll on Windows or engine_i486.so on Linux, and needs a CPU with SSE, SSE2 and SSE3. Beyond the fixes it adds settings Valve's server never had: sv_rehlds_maxclients_from_single_ip limits simultaneous connections from one address (5 by default), and the sv_rehlds_movecmdrate_* and sv_rehlds_stringcmdrate_* cvars kick or ban clients that flood commands. There is also rcon_adduser, which restricts RCON to listed addresses or ranges.
  • ReGameDLL_CS replaces dlls/mp.dll or dlls/cs.so and reads its extra settings from game.cfg and game_init.cfg. Many of them used to need a plugin: mp_freeforall for free-for-all, mp_buy_anywhere, mp_item_staytime for how many seconds dropped items stay (300 by default), bot_quota_mode with fill or match, and mp_round_infinite, whose letter flags switch off individual round-end checks. It can also run zBot, the bots from Condition Zero, once the project's bot profile files are in place and bot_enable 1 is in game_init.cfg. Typing game version confirms it loaded.
  • Metamod-r replaces Metamod. liblist.gam points gamedll at addons\metamod\metamod.dll and gamedll_linux at addons/metamod/metamod_i386.so, and the project's current install guide lists ReHLDS as a requirement.
  • AMX Mod X does not change. It loads as a Metamod plugin as before, and how it compares with SourceMod and Oxide is a separate story.
  • ReAPI is an AMX Mod X module, reapi_amxx.dll or reapi_amxx_i386.so in addons/amxmodx/modules. It gives plugins hook chains that run before or after engine and game functions, and access to internal fields by name instead of by hand-computed offset. Engine hooks need ReHLDS; game hooks also need ReGameDLL_CS.

Why owners switch

The fixes and flood limits deal with problems Valve's server leaves to the owner, and ReGameDLL's settings replace plugins that used to patch the same behaviour from outside. The other pull is plugins. A plugin written with #include <reapi> declares ReAPI as a required library, so it will not load on a server running Valve's binaries at all.

What breaks when you switch

Both projects warn that they are not binary compatible with Valve's files, because they are built with different compilers. Plugins that find functions by scanning for byte signatures, or patch memory at fixed offsets, may fail or crash the server; Orpheu-based plugins are the example the documentation gives. Standard AMX Mod X and Metamod plugins that stick to the documented interfaces are generally unaffected. For a plugin of the first kind, the fix is a version written against ReAPI's hooks, if one exists.

delta.lst ships with each ReGameDLL_CS release and should stay in step with the binary. The game.cfg in the release is not all defaults either: the current copy sets mp_buytime to 0.25, fifteen seconds, where the documented default is 1.5 minutes, and mp_timelimit to 20 where the default is 0. The project's update notes say to compare your configs with each new copy and merge the new cvars in, rather than overwrite.

A plugin that needs ReAPI on a server where ReHLDS is missing shows as bad load in amxx plugins, with Module/Library "reapi" required for plugin. Check modules.ini. in the list underneath. When something misbehaves without an error at all, finding the plugin conflict is the method.

Test the switch on a copy first

  1. Install a second HLDS from the steam_legacy branch in its own directory, give it another port with +port 27016, and copy across cstrike/addons, your configs and the maps you run.
  2. Drop in the ReHLDS and ReGameDLL_CS binaries, then Metamod-r and ReAPI, following each project's install page.
  3. Start it and read the console. version should show ReHLDS version:, and game version should answer; if the command is unknown, the new game library did not load. meta list should show every Metamod plugin as RUN, not badf or fail. In amxx plugins every plugin should be running with no Load fails: lines underneath, and amxx modules should list ReAPI.
  4. Play the modes you actually run, with bots or friends: buy, plant, defuse, change map, and whatever your plugins do on spawn, death and round end. Keep an eye on addons/amxmodx/logs while you do.
  5. Keep Valve's original files beside the new ones, so rolling back on the live server is a file copy, and make the swap in the quietest hour you have.

The copy does not have to be permanent. A staging server that lives for one afternoon is enough for this, and the routine is the same one that applies to any update that could break the server. The ReHLDS source and releases are on the project's GitHub page, and the install and update notes for the game library are in the ReGameDLL_CS documentation.

Tags
counter-strike 1.6rehldsserver software
Share

SweetMask

Published · 5 min read

All articles

Keep reading

Guides · Counter-Strike 1.6

Warcraft Mod: RPG Levelling Inside Counter-Strike

Races, levels and abilities bolted onto Counter-Strike, still busy after twenty years. What the races do, why it works, and what arriving is like.

· 7 min read
Guides · Counter-Strike 1.6

Scoutzknivez, Rats and the Fun-Map Tradition

Iceworld, rats maps and scoutzknivez are still running on populated servers twenty years later. What the format is, why it survived, and where to find it.

· 7 min read