On Windows the Half-Life engine lives in swds.dll, not engine_i486.so. ReHLDS ships a Windows build of that DLL, so installing it is a file swap — but the failure modes are different from Linux, mostly because of antivirus software and because Windows will happily load a stale DLL from the wrong directory without telling you.
1. Prerequisites
- A working App 90 install that already boots to a map. If you do not have one, follow the Windows install guide first.
- The Microsoft Visual C++ redistributables. ReHLDS is built with MSVC; on a bare Windows Server image the redistributable is frequently missing and the DLL will simply refuse to load.
- An antivirus exclusion for the server folder. Defender has flagged Metamod and AMXX DLLs as trojans on and off for years. It is a false positive, but a quarantined DLL looks exactly like a broken install.
2. Download the release
Take the latest ReHLDS release archive from the project's GitHub releases page. Inside, the Windows build contains:
swds.dll hlds.exe (ReHLDS' own launcher; optional but recommended)
Make sure you took the Windows directory of the archive. Copying a Linux engine_i486.so onto Windows does nothing at all — the file is simply ignored, the Valve engine keeps running, and you will swear the install "did not work".
3. Stop the server, back up, replace
Shut the server down completely. Windows locks a loaded DLL; overwriting swds.dll while hlds.exe is running fails with Access is denied — and if you force it, you will replace it with a half-written file.
cd /d C:\hlds copy swds.dll swds.dll.valve.bak copy /Y C:\downloads\rehlds\swds.dll C:\hlds\swds.dll copy /Y C:\downloads\rehlds\hlds.exe C:\hlds\hlds.exe
Both files belong in the server root — the folder containing hlds.exe and the cstrike\ directory. Not inside cstrike\.
4. Start and confirm
cd /d C:\hlds hlds.exe -console -game cstrike -port 27015 +map de_dust2 +maxplayers 20 +sv_lan 0
In the console:
rehlds_version
Stock HLDS replies Unknown command: rehlds_version. ReHLDS prints its version. That is the only verification that means anything — file dates and folder contents can lie, the cvar cannot.
5. ReHLDS cvars on Windows
Identical to Linux; add them to cstrike\server.cfg:
sv_rehlds_local_gametime 1 sv_rehlds_force_dlmax 1 sv_rehlds_send_mapcycle 0 sv_filterban 1 sv_rcon_maxfailures 5 sv_rcon_minfailures 5 sv_rcon_minfailuretime 30
There is one platform difference that matters: Windows HLDS cannot hit the same server FPS as Linux at the same CPU cost, and sys_ticrate behaves differently under the Windows timer. Do not expect 500 FPS out of a Windows box; 100–200 is the realistic range.
6. The rest of the stack
On Windows the file names change but the order does not:
- ReHLDS →
swds.dll - ReGameDLL_CS →
cstrike\dlls\mp.dll - Metamod-r →
cstrike\addons\metamod\metamod.dll, referenced fromliblist.gam - AMX Mod X →
cstrike\addons\amxmodx\dlls\amxmodx_mm.dll, listed inmetamod\plugins.ini
In plugins.ini, Windows lines start with win32 and Linux lines with linux. A file copied from a Linux server will list .so paths and every plugin will fail. See plugins.ini explained. There is also a combined walkthrough: full ReHLDS + Metamod-r + AMXX on Windows.
Common errors
- Console flashes and closes — run it from
cmd.exewith apauseat the end of your batch file so you can read the last line. The application was unable to start correctly (0xc000007b)— you mixed a 64-bit DLL into a 32-bit process. Everything in a CS 1.6 server is 32-bit; there is no 64-bit build.The program can't start because MSVCP140.dll is missing— install the Visual C++ redistributable (x86, not x64).rehlds_versionis unknown after the swap — either the DLL was quarantined by antivirus (check the quarantine list), or you copied it next to a differenthlds.exethan the one you are launching. Confirm the running path in Task Manager → Details → right-click → Open file location.Access is deniedcopying swds.dll — the server is still running. Killhlds.exein Task Manager first.
Rollback
cd /d C:\hlds copy /Y swds.dll.valve.bak swds.dll
Restart and check rehlds_version is unknown again. Alternatively re-run app_update 90 validate in SteamCMD, which restores every stock file it manages — including swds.dll, and including anything else you had replaced, so do not reach for validate casually once you have a customised install.
Verification
rehlds_versionprints a version.statusshows the map and slot count.- A client can
connect YOUR_IP:27015and spawn. - If Metamod is installed,
meta listshows every plugin asRUN, none asbad load.
All four green means the engine swap is done and the rest of the stack is safe to layer on top.









