Unknown ❤ RESPAWN.ZAFEST.RO | VIP FREE | FREE FOR ALL ❤ 0/32
Romania XPlayZM.CSBlackDevil.COM # Zombie Plague UltimateX [ Respawn + FDL + VIP 22-12PM + POINTS] ® 17/32
Prodvigat server

Add metamod-r-vs-metamod-p/en.md

Browse Source
Daemon666 committed parent 75b54c2e7d commit 5cfdfb510970dc124d8a73a2bc13fea221b2f351
1 changed file with 77 additions and 0 deletions
+77 -0 metamod-r-vs-metamod-p/en.md A
@@ -0,0 +1,77 @@
1 +---
2 +title: "Metamod-r vs Metamod-P: Which One Should You Use in 2026?"
3 +excerpt: "A practical comparison of Metamod-r and Metamod-P for CS 1.6 servers: performance, ReHLDS compatibility, plugin support and how to switch safely."
4 +category: "installation"
5 +tags: "metamod, comparison"
6 +image: ""
7 +read_time: "8 min read"
8 +---
9 +<p>Both are forks of Will Day's original Metamod, both load the same <code>plugins.ini</code>, and both answer <code>meta list</code>. The difference is what they were built for. Metamod-P is the mature, conservative fork of the classic engine era. Metamod-r is the rewrite aimed at ReHLDS, with a faster hook dispatcher. If you want the short answer: <strong>on ReHLDS, use Metamod-r. On stock Valve HLDS you can use either, and Metamod-P is the safer bet.</strong></p>
10 +
11 +<h2>The actual differences</h2>
12 +<table>
13 +<thead>
14 +<tr><th>Aspect</th><th>Metamod-P</th><th>Metamod-r</th></tr>
15 +</thead>
16 +<tbody>
17 +<tr><td>Target engine</td><td>Stock HLDS; works on ReHLDS</td><td>Built for ReHLDS</td></tr>
18 +<tr><td>Hook dispatch</td><td>Classic table walk for every hooked call</td><td>Rewritten; avoids dispatching to plugins that did not register the hook</td></tr>
19 +<tr><td>Practical CPU cost</td><td>Noticeable on a busy 32-slot server with many plugins</td><td>Measurably lower under the same load</td></tr>
20 +<tr><td>Plugin compatibility</td><td>Everything from the classic era</td><td>Same plugin ABI; the vast majority load unchanged</td></tr>
21 +<tr><td>Maintenance</td><td>Effectively frozen</td><td>Actively maintained alongside ReHLDS</td></tr>
22 +<tr><td>Config</td><td><code>plugins.ini</code></td><td><code>plugins.ini</code> (plus its own extras)</td></tr>
23 +</tbody>
24 +</table>
25 +
26 +<h2>Where the performance difference actually comes from</h2>
27 +<p>Metamod intercepts every engine and game-DLL function that any plugin has expressed interest in. Classic Metamod builds its dispatch tables so that a hooked function walks the plugin list on every single call — and CS 1.6 calls some of these functions thousands of times per second per player (<code>PlayerPreThink</code>, <code>StartFrame</code>, <code>AddToFullPack</code>). Metamod-r reduces the per-call overhead of that walk. On an empty server you will never see it. On a 32-slot public with AMXX, a stats plugin, a shop and a mod, it is the difference between comfortable headroom and a server that starts choking when the twenty-fifth player joins.</p>
28 +<p>This is not the only thing that affects server FPS, and it is not a fix for a badly-written plugin that runs a MySQL query in <code>client_PreThink</code>. If your server chokes, profile before you swap forks: see <a href="/tutorials/find-crashing-plugin">how to find the plugin at fault</a>.</p>
29 +
30 +<h2>Which to pick</h2>
31 +<h3>Use Metamod-r if</h3>
32 +<ul>
33 +<li>You run <a href="/tutorials/install-rehlds-on-linux">ReHLDS</a> — which you should.</li>
34 +<li>You run a busy public server (20+ slots) with a real plugin set.</li>
35 +<li>You want something that is still being maintained.</li>
36 +<li>You use ReAPI-based plugins; that whole ecosystem assumes the modern stack.</li>
37 +</ul>
38 +
39 +<h3>Use Metamod-P if</h3>
40 +<ul>
41 +<li>You are stuck on stock Valve HLDS and cannot change the engine (some panels/hosts).</li>
42 +<li>You have an old binary Metamod plugin that misbehaves under Metamod-r and you cannot replace it.</li>
43 +<li>You are maintaining a legacy server and stability today outranks performance tomorrow.</li>
44 +</ul>
45 +
46 +<h2>How to switch from Metamod-P to Metamod-r safely</h2>
47 +<p>The two use the same directory and the same <code>plugins.ini</code>, so the switch is a binary swap plus one line in <code>liblist.gam</code> if the filename changes.</p>
48 +<ol>
49 +<li><strong>Back up</strong> the whole <code>cstrike/addons/metamod/</code> directory and <code>cstrike/liblist.gam</code>.</li>
50 +<li>Drop the Metamod-r binary in place:
51 +<pre>cd /home/steam/hlds/cstrike/addons/metamod
52 +cp metamod_i386.so metamod_i386.so.p.bak
53 +cp /path/to/metamod-r/metamod.so ./metamod.so</pre></li>
54 +<li>Update <code>liblist.gam</code> to the new filename:
55 +<pre>gamedll_linux "addons/metamod/metamod.so"</pre></li>
56 +<li>Leave <code>plugins.ini</code> exactly as it is.</li>
57 +<li>Restart and run:
58 +<pre>meta version
59 +meta list</pre></li>
60 +</ol>
61 +<p>Every plugin that was <code>RUN</code> before must still be <code>RUN</code>. If one is now <code>bad load</code>, that specific plugin is the incompatibility — not the fork as a whole. Read <a href="/tutorials/fix-metamod-bad-load">the bad load guide</a>, and if you cannot resolve it, roll back to the <code>.p.bak</code> binary and the old <code>liblist.gam</code> line while you find a replacement plugin.</p>
62 +
63 +<h2>Common misconceptions</h2>
64 +<ul>
65 +<li><strong>"Metamod-r requires ReHLDS."</strong> It is built for ReHLDS and that is where it is tested, but it does not refuse to load on stock HLDS. That said, if you are willing to change Metamod you should be willing to change the engine — the engine is where most of the wins are.</li>
66 +<li><strong>"Switching Metamod will break my AMXX plugins."</strong> AMXX plugins (<code>.amxx</code>) are not Metamod plugins. Only the AMXX <em>module</em> (<code>amxmodx_mm_i386.so</code>) talks to Metamod. Your <code>.amxx</code> files are untouched by this decision.</li>
67 +<li><strong>"Metamod-r gives me ReAPI natives."</strong> No. <a href="/tutorials/install-reapi">ReAPI</a> is a separate AMXX module and requires <a href="/tutorials/install-regamedll-cs16">ReGameDLL</a>.</li>
68 +</ul>
69 +
70 +<h2>Verification after any switch</h2>
71 +<ol>
72 +<li><code>meta version</code> reports the fork and version you expect.</li>
73 +<li><code>meta list</code> — every plugin <code>RUN</code>, zero <code>bad load</code>.</li>
74 +<li><code>amxx plugins</code> — every AMXX plugin <code>running</code>.</li>
75 +<li>Play a full map with real players, then change map. Most Metamod-level breakage shows up at map change, not at boot.</li>
76 +</ol>
77 +<p>If all four are clean, the switch is done. The full recommended chain is described in <a href="/tutorials/install-rehlds-regamedll-reapi-stack">the modern CS 1.6 stack</a>.</p>
0 78