Romania XPlayZM.CSBlackDevil.COM # Zombie Plague UltimateX [ Respawn + FDL + VIP 22-12PM + POINTS] ® 17/32
Unknown ❤ RESPAWN.ZAFEST.RO | VIP FREE | FREE FOR ALL ❤ 0/32
France EMIRATES.KiNGS 亗 GAMEAREA ||͇̿P͇̿U͇̿B͇̿L͇̿I͇̿C͇̿| ✪ 32/32
Promote server

Add install-metamod-r/en.md

Browse Source
Daemon666 committed parent 254c516cc9 commit 26b2bac80bc89a2b92efa86c167d3a7c8a966339
1 changed file with 89 additions and 0 deletions
+89 -0 install-metamod-r/en.md A
@@ -0,0 +1,89 @@
1 +---
2 +title: "How to Install Metamod-r on ReHLDS"
3 +excerpt: "Install Metamod-r, the modern fork of Metamod, on a ReHLDS server: liblist.gam, plugins.ini, meta list verification and the usual traps."
4 +category: "installation"
5 +tags: "metamod-r, metamod"
6 +image: ""
7 +read_time: "8 min read"
8 +---
9 +<p>Metamod is the layer that sits between the engine and the game DLL and lets other things (AMX Mod X, Reunion, ReVoice, ReChecker, YaPB) hook in. <strong>Metamod-r</strong> is the modern fork: significantly faster hook dispatch, built for ReHLDS, and still able to load the same plugins as classic Metamod. If you are on ReHLDS in 2026, Metamod-r is the default choice.</p>
10 +
11 +<h2>1. Directory layout</h2>
12 +<p>Metamod lives under the mod directory, not the server root:</p>
13 +<pre>cstrike/
14 +├── addons/
15 +│ └── metamod/
16 +│ ├── metamod.so (Linux) or metamod.dll (Windows)
17 +│ └── plugins.ini
18 +├── liblist.gam
19 +└── dlls/
20 + └── cs.so</pre>
21 +<pre>mkdir -p /home/steam/hlds/cstrike/addons/metamod</pre>
22 +
23 +<h2>2. Copy the binary</h2>
24 +<p>Download the current Metamod-r release and place the platform binary:</p>
25 +<pre>cp metamod.so /home/steam/hlds/cstrike/addons/metamod/metamod.so
26 +chmod 644 /home/steam/hlds/cstrike/addons/metamod/metamod.so</pre>
27 +<p>Check it is 32-bit — everything in a CS 1.6 server is:</p>
28 +<pre>file /home/steam/hlds/cstrike/addons/metamod/metamod.so</pre>
29 +<p>It must say <code>ELF 32-bit LSB shared object, Intel 80386</code>. A 64-bit file here produces <code>wrong ELF class: ELFCLASS64</code> at startup.</p>
30 +
31 +<h2>3. Point liblist.gam at Metamod</h2>
32 +<p>This is the step that actually installs Metamod. Open <code>cstrike/liblist.gam</code> and change the <code>gamedll</code> lines so the engine loads Metamod instead of the game DLL — Metamod then loads the game DLL itself.</p>
33 +<p>Before:</p>
34 +<pre>gamedll "dlls\mp.dll"
35 +gamedll_linux "dlls/cs.so"</pre>
36 +<p>After:</p>
37 +<pre>gamedll "addons\metamod\metamod.dll"
38 +gamedll_linux "addons/metamod/metamod.so"</pre>
39 +<p>Leave every other line alone. Note the backslashes on the Windows line and forward slashes on the Linux line — that is not cosmetic, and a Linux path in <code>gamedll</code> is one of the ways people end up with a server that boots straight into stock CS with no plugins at all.</p>
40 +
41 +<h2>4. Create plugins.ini</h2>
42 +<p><code>cstrike/addons/metamod/plugins.ini</code> lists what Metamod loads, one plugin per line, prefixed with the platform:</p>
43 +<pre>; Metamod plugins
44 +linux addons/amxmodx/dlls/amxmodx_mm_i386.so
45 +;win32 addons\amxmodx\dlls\amxmodx_mm.dll</pre>
46 +<p>Paths are relative to the <strong>mod directory</strong> (<code>cstrike/</code>), not to the metamod folder and not to the server root. <code>;</code> starts a comment. A full breakdown of the format is in <a href="/tutorials/metamod-plugins-ini-explained">plugins.ini explained</a>.</p>
47 +<p>You can leave the file with only comments for now — Metamod loads fine with zero plugins, and that is a useful state to verify before you add AMXX.</p>
48 +
49 +<h2>5. Start and verify</h2>
50 +<pre>cd /home/steam/hlds
51 +./hlds_run -game cstrike +map de_dust2 +maxplayers 20 +sv_lan 0</pre>
52 +<p>In the console:</p>
53 +<pre>meta version
54 +meta list</pre>
55 +<p><code>meta version</code> prints the Metamod-r version and the engine interface it detected. <code>meta list</code> prints the plugin table. Every plugin must show status <code>RUN</code>:</p>
56 +<pre>Currently loaded plugins:
57 + description stat pend file vers src load unload
58 + [ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY</pre>
59 +<p>If <code>meta version</code> answers <code>Unknown command: meta</code>, Metamod is not loaded at all — go back to <code>liblist.gam</code>. That is the cause in the overwhelming majority of cases.</p>
60 +
61 +<h2>6. Load order with the rest of the stack</h2>
62 +<p>Metamod must be installed <em>after</em> ReGameDLL, because ReGameDLL's archive contains a <code>liblist.gam</code> that points straight at <code>cs.so</code>. If you install ReGameDLL after Metamod and copy its <code>liblist.gam</code> over yours, Metamod disappears and every plugin with it. See <a href="/tutorials/install-regamedll-cs16">the ReGameDLL guide</a> for that warning in context.</p>
63 +<p>Metamod does not replace the game DLL — it wraps it. The engine loads <code>metamod.so</code>, Metamod reads <code>plugins.ini</code>, loads each plugin, and then loads the real game library (<code>dlls/cs.so</code>) itself, chaining every hooked engine and game call through the plugins on the way. That is why breaking <code>liblist.gam</code> does not produce an error: the engine happily loads <code>cs.so</code> directly, the game runs perfectly, and Metamod is simply never in the picture. Your only symptom is that <code>meta</code> is an unknown command and every plugin is silently gone.</p>
64 +
65 +<h2>7. Managing plugins at runtime</h2>
66 +<p>Metamod-r can load and unload plugins without restarting the server, which is genuinely useful while debugging:</p>
67 +<pre>meta list
68 +meta load addons/revoice/revoice_mm_i386.so
69 +meta unload 2
70 +meta reload 2
71 +meta refresh</pre>
72 +<p><code>meta refresh</code> re-reads <code>plugins.ini</code> and loads anything new in it. Treat all of this as a debugging aid, not a deployment method — plugins that hook engine functions at load time (Reunion, ReVoice) are not designed to be hot-unloaded from a live server and can leave the hook chain in a state that only a restart clears.</p>
73 +
74 +<h2>Common errors</h2>
75 +<ul>
76 +<li><strong><code>Unknown command: meta</code></strong> — <code>liblist.gam</code> still points at <code>dlls/cs.so</code>. Nothing else causes this.</li>
77 +<li><strong><code>Failed to open addons/metamod/metamod.so</code></strong> — wrong path or wrong permissions. The path in <code>liblist.gam</code> is relative to <code>cstrike/</code>. See <a href="/tutorials/fix-failed-to-open-metamod-so">that error</a>.</li>
78 +<li><strong><code>bad load</code> next to a plugin in <code>meta list</code></strong> — the plugin binary failed to initialise: wrong architecture, missing dependency, or built against an incompatible Metamod API. <code>ldd</code> the plugin's <code>.so</code> and read <a href="/tutorials/fix-metamod-bad-load">the bad load guide</a>.</li>
79 +<li><strong><code>wrong ELF class: ELFCLASS64</code></strong> — you downloaded a 64-bit build of something. There is no 64-bit CS 1.6.</li>
80 +<li><strong>Server segfaults on start after adding Metamod</strong> — classic Metamod (not -r) on ReHLDS with an old API. Use Metamod-r.</li>
81 +</ul>
82 +
83 +<h2>Verification</h2>
84 +<ol>
85 +<li><code>meta version</code> answers.</li>
86 +<li><code>meta list</code> shows every entry as <code>RUN</code>, none as <code>bad load</code> or <code>badfile</code>.</li>
87 +<li>The server survives a map change with plugins loaded.</li>
88 +</ol>
89 +<p>Once Metamod-r is confirmed, install <a href="/tutorials/install-amx-mod-x-1-9">AMX Mod X 1.9</a> (or <a href="/tutorials/install-amx-mod-x-1-10">1.10</a>) as its first plugin. If you are still deciding between forks, read <a href="/tutorials/metamod-r-vs-metamod-p">Metamod-r vs Metamod-P</a>.</p>
0 90