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
Promocionar servidor

Add 3 tutorials (3 files)

Browse Source
Daemon666 committed parent 291d8650a4 commit f60694064506463399750f034b7399d4ed4ae884
3 changed files with 170 additions and 0 deletions
+41 -0 fix-ed-alloc-no-free-edicts/en.md A
@@ -0,0 +1,41 @@
1 +---
2 +title: "Fix: ED_Alloc: no free edicts"
3 +excerpt: "Why HLDS crashes with 'ED_Alloc: no free edicts', how to raise the edict pool with -num_edicts, and how to find the plugin or map that is leaking entities."
4 +category: "errors"
5 +tags: "edicts, crash"
6 +image: ""
7 +read_time: "7 min read"
8 +---
9 +<p><code>ED_Alloc: no free edicts</code> means the engine tried to spawn one more entity than the edict pool can hold, and there was nowhere to put it, so the server aborts. Every player, weapon, grenade, decal, breakable, buyzone, ammo box and env_sprite is an edict. The pool is a fixed array allocated at startup — not something the engine grows on demand — so the fix is always one of two things: give it a bigger pool, or stop something from leaking edicts into it.</p>
10 +
11 +<h2>1. Understand the limit you are hitting</h2>
12 +<p>GoldSrc allocates a fixed edict table at boot. The historical default is 900 edicts, and the classic engine hard-caps the table at 2048. A busy 32-slot server with a plugin-heavy config and an entity-rich map will brush against 900 during a full round without anything being wrong — it just needs a larger table. <a href="/tutorials/install-rehlds-on-linux">ReHLDS</a> raises the ceiling above the stock engine's, which is one more reason not to run Valve's binary on a public server.</p>
13 +
14 +<h2>2. Raise the pool with -num_edicts</h2>
15 +<p>The edict count is a launch parameter, not a cvar — you cannot set it in <code>server.cfg</code>. Add it to the command line:</p>
16 +<pre>./hlds_run -game cstrike -num_edicts 2048 -strictportbind \
17 + -ip 0.0.0.0 -port 27015 +map de_dust2 +maxplayers 32 +sv_lan 0</pre>
18 +<p>On Windows it goes in your <code>start.bat</code> the same way. See <a href="/tutorials/hlds-command-line-parameters">the command line reference</a> for where it fits with the rest. Restart fully — a launch parameter is only read at startup, not on <code>map_change</code>.</p>
19 +<p>Confirm it took effect. In the console:</p>
20 +<pre>stats</pre>
21 +<p>and watch the entity count during a live round. If it climbs steadily toward your new ceiling and never drops after round restart, raising the number only bought you time — you have a leak, and step 4 is the real fix.</p>
22 +
23 +<h2>3. Rule out the map</h2>
24 +<p>Some community maps ship thousands of brush and point entities. If the crash only happens on one specific map, load it on an empty server and check the count immediately:</p>
25 +<pre>changelevel awp_india
26 +stats</pre>
27 +<p>A map that sits at 1500+ edicts on spawn with nobody connected is the problem by itself — either drop it from your <code>mapcycle.txt</code> or run it only with a lower slot count so the players and their weapons do not push you over the top.</p>
28 +
29 +<h2>4. Find the plugin that leaks edicts</h2>
30 +<p>A leaking plugin creates entities and never removes them. Sprites, laser beams, dropped-weapon boxes, temporary models for HUD effects — anything spawned with <code>create_entity</code> that is not eventually removed. The tell is an entity count that ratchets upward across rounds and never comes back down.</p>
31 +<p>Bisect it the same way you would any crash: halve <code>plugins.ini</code>, restart, and watch the count over a few rounds. The method is spelled out in <a href="/tutorials/find-crashing-plugin">finding the plugin that crashes your server</a>. Effect and visual plugins (custom grenades, glow, killstreak fireworks) are the usual culprits; a plugin that spawns an entity per shot and forgets to free it will exhaust 2048 edicts in minutes on a full server.</p>
32 +
33 +<h2>Common errors</h2>
34 +<ul>
35 +<li><strong>Crash still happens at exactly the same count after <code>-num_edicts 2048</code></strong> — the parameter did not take. You edited the wrong start script, or you set it in <code>server.cfg</code> where it does nothing. Confirm with <code>ps aux | grep hlds</code> and read the actual command line the process was launched with.</li>
36 +<li><strong>You asked for more than 2048 on stock HLDS</strong> — the classic engine ignores anything above its hard cap. If you genuinely need more headroom, that is a reason to move to ReHLDS, which lifts the limit.</li>
37 +<li><strong><code>SZ_GetSpace: overflow</code> or <code>PF_precache_model: Model overflow</code> around the same time</strong> — that is a different limit (network buffer / precache tables), not edicts, and it usually points at the same over-eager plugin. See <a href="/tutorials/fix-players-timeout-map-change">precache overflow on map change</a>.</li>
38 +</ul>
39 +
40 +<h2>Verification</h2>
41 +<p>After raising the pool and removing any leak, play a full 30-minute map on a populated server and watch <code>stats</code> at round restarts. A healthy server settles back to roughly the same edict count every round — players plus their weapons plus the map's static entities — and never trends upward. If the number is flat across five rounds and the <code>ED_Alloc</code> line is gone from <code>Log/errors-*.log</code>, the problem is solved. If it still creeps, you have another leaking plugin; keep bisecting.</p>
+61 -0 install-reunion/en.md A
@@ -0,0 +1,61 @@
1 +---
2 +title: "How to Install Reunion (Steam + Non-Steam Players)"
3 +excerpt: "Install Reunion on a ReHLDS server so both Steam and non-Steam clients can connect, and set the SteamIdHashSalt correctly so it actually loads."
4 +category: "installation"
5 +tags: "reunion, non-steam"
6 +image: ""
7 +read_time: "8 min read"
8 +---
9 +<p>Reunion is the modern non-Steam authentication provider for CS 1.6, maintained alongside ReHLDS. It replaces the ancient dproto/revEmu approach and lets a single server accept genuine Steam clients and non-Steam clients at the same time, handing every player a stable, unique SteamID that AMX Mod X admin flags and stats plugins can rely on. It runs as a Metamod plugin and it expects <a href="/tutorials/install-rehlds-on-linux">ReHLDS</a> underneath — on stock Valve HLDS it will either refuse to load or misbehave, because it hooks engine functions that only ReHLDS exposes cleanly.</p>
10 +
11 +<h2>1. Confirm the prerequisites</h2>
12 +<p>You need ReHLDS running and Metamod (use <a href="/tutorials/install-metamod-r">Metamod-r</a>) already loading. Verify both before touching Reunion:</p>
13 +<pre>rehlds_version
14 +meta list</pre>
15 +<p>If <code>rehlds_version</code> is <code>Unknown command</code>, stop and install ReHLDS first — Reunion on plain HLDS is a dead end.</p>
16 +
17 +<h2>2. Place the Reunion files</h2>
18 +<p>Download the current Reunion release archive from the project's GitHub releases page. It contains the Metamod plugin and a sample config. On Linux the layout is:</p>
19 +<pre>cstrike/addons/reunion/reunion_mm_i386.so
20 +cstrike/reunion.cfg</pre>
21 +<p>Copy the <code>.so</code> into <code>cstrike/addons/reunion/</code> and <code>reunion.cfg</code> into <code>cstrike/</code>. On Windows the module is <code>reunion_mm.dll</code> in the same <code>addons/reunion/</code> folder.</p>
22 +
23 +<h2>3. Load Reunion before AMXX in Metamod</h2>
24 +<p>Edit <code>cstrike/addons/metamod/plugins.ini</code> and add Reunion as the <strong>first</strong> plugin, above AMX Mod X:</p>
25 +<pre>linux addons/reunion/reunion_mm_i386.so
26 +linux addons/amxmodx/dlls/amxmodx_mm_i386.so</pre>
27 +<p>Order matters. Reunion has to establish each player's real authid during the connection handshake, before AMXX reads it. If AMXX loads first, admins recognised by SteamID can intermittently lose their flags. On Windows the lines start with <code>win32</code> and reference the <code>.dll</code> files.</p>
28 +
29 +<h2>4. Set a SteamIdHashSalt (this is the step people skip)</h2>
30 +<p>Open <code>cstrike/reunion.cfg</code>. The one value you must set is the salt Reunion uses to derive SteamIDs for non-Steam players:</p>
31 +<pre>SteamIdHashSalt = a9F2kQ7pLm3xZ0Vb</pre>
32 +<p><strong>The salt must be at least 16 characters.</strong> If it is shorter — or left at a placeholder — Reunion refuses to load and prints a startup error to that effect, and the server continues without non-Steam support. Pick a long random string and then <strong>never change it</strong>: the salt is the seed for every generated SteamID, so changing it later re-rolls every non-Steam player's identity, wiping their admin access, stats, and VIP status in one restart.</p>
33 +<p>The rest of <code>reunion.cfg</code> configures which auth providers (Steam, revEmu, Steam-legacy emulators, etc.) are accepted and how their IDs are converted. The shipped file is commented — read it rather than pasting a provider list from a forum, because the accepted keys change between versions.</p>
34 +
35 +<h2>5. Start and verify</h2>
36 +<pre>./hlds_run -game cstrike +map de_dust2 +maxplayers 20 +sv_lan 0</pre>
37 +<p>In the console:</p>
38 +<pre>meta list</pre>
39 +<p>Reunion must appear as <code>RUN</code>. Then connect once with a Steam client and once with a non-Steam client and check the authids:</p>
40 +<pre>status</pre>
41 +<p>Steam players show a normal <code>STEAM_0:x:xxxxxx</code>. Non-Steam players also show a <code>STEAM_</code> id — that is Reunion generating one from your salt, which is exactly what you want. If non-Steam players still show <code>VALVE_ID_LAN</code> or <code>HLTV</code>-style ids, Reunion did not take effect.</p>
42 +
43 +<h2>Common errors</h2>
44 +<ul>
45 +<li><strong>Reunion is <code>bad load</code> in <code>meta list</code></strong> — usually the salt is missing or under 16 characters. Fix <code>SteamIdHashSalt</code> and restart. It can also mean a 64-bit or wrong-platform module; confirm with <code>file cstrike/addons/reunion/reunion_mm_i386.so</code> that it is <em>ELF 32-bit, Intel 80386</em>.</li>
46 +<li><strong>Non-Steam players cannot connect at all</strong> — you are on stock HLDS, not ReHLDS. Reunion needs ReHLDS.</li>
47 +<li><strong>Admins randomly lose flags</strong> — Reunion is loaded after AMXX in <code>plugins.ini</code>. Move it to the top.</li>
48 +<li><strong>Everyone's admin/stats reset after an edit</strong> — you changed <code>SteamIdHashSalt</code>. Restore the original salt; the generated IDs depend entirely on it.</li>
49 +</ul>
50 +
51 +<h2>A note on dproto</h2>
52 +<p>If you are on original Valve HLDS rather than ReHLDS, Reunion is not your tool — dproto is the equivalent for that engine. But the right long-term move is to switch to ReHLDS and use Reunion; the two are developed together, and Reunion is far better behaved with modern AMXX. See <a href="/tutorials/install-rehlds-on-linux">installing ReHLDS</a> and then <a href="/tutorials/install-amx-mod-x-1-9">AMX Mod X 1.9</a>.</p>
53 +
54 +<h2>Verification checklist</h2>
55 +<ul>
56 +<li><code>meta list</code> shows Reunion as <code>RUN</code>, above AMXX.</li>
57 +<li>A non-Steam client connects and gets a <code>STEAM_</code> authid.</li>
58 +<li>The same non-Steam player keeps that id across reconnects and map changes.</li>
59 +<li>Your admin config (by SteamID) still works for both Steam and non-Steam admins.</li>
60 +</ul>
61 +<p>Once all four hold, both audiences share one server with one identity system — which is the whole point of Reunion.</p>
+68 -0 install-zombie-plague-mod/en.md A
@@ -0,0 +1,68 @@
1 +---
2 +title: "How to Install Zombie Plague 4.3 / 5.0 on AMX Mod X"
3 +excerpt: "Install the Zombie Plague mod on a CS 1.6 server: the AMXX modules it needs, where the plugin, config, models and sounds go, and the precache errors that break it."
4 +category: "installation"
5 +tags: "zombie-plague, mods"
6 +image: ""
7 +read_time: "8 min read"
8 +---
9 +<p>Zombie Plague is not an engine mod — it is a suite of AMX Mod X plugins. There is no <code>cs.so</code> to swap and no engine to replace. That means the single most important thing to understand before you start is that Zombie Plague only works on top of a fully working AMXX install, and 90% of "ZP won't load" reports are really "AMXX isn't loading a required module". This guide covers both the widely-used 4.3 line and the 5.0 rewrite; they install the same way, they differ mainly in code layout.</p>
10 +
11 +<h2>1. Confirm the AMXX base first</h2>
12 +<p>Zombie Plague 4.3 was written for the AMXX 1.8.x era and runs fine on <a href="/tutorials/install-amx-mod-x-1-9">1.9</a>. You need a working Metamod + AMXX stack before ZP exists as a concept. In the server console:</p>
13 +<pre>meta list
14 +amxx version
15 +amxx modules</pre>
16 +<p>The core plugin pulls in <code>cstrike</code>, <code>engine</code>, <code>fakemeta</code>, <code>hamsandwich</code> and <code>fun</code>. All five must show as <code>running</code> in <code>amxx modules</code>. If any is missing, fix that first — see <a href="/tutorials/install-amxx-modules">installing AMXX modules</a>. A missing module is the cause of the classic <code>Plugin failed to load: Function not found</code> line at map start.</p>
17 +
18 +<h2>2. Get the release</h2>
19 +<p>Download the Zombie Plague release archive (4.3 or 5.0) from its original release thread. Do not grab a random "ready server" pack — those are the number-one vector for backdoored plugins; see <a href="/tutorials/download-cs16-server-files-safely">downloading server files safely</a>. The archive is laid out to mirror <code>cstrike/</code>, so the folder names already tell you where each file belongs.</p>
20 +
21 +<h2>3. Copy the files into place</h2>
22 +<p>From the extracted archive into your <code>cstrike/</code> tree:</p>
23 +<pre>addons/amxmodx/plugins/zombie_plague.amxx &lt;-- core plugin
24 +addons/amxmodx/plugins/zp_*.amxx &lt;-- extra items / classes
25 +addons/amxmodx/configs/zombie_plague.ini &lt;-- ZP config
26 +models/player/zombie_source/... &lt;-- zombie player models
27 +sound/zombie_plague/... &lt;-- mod sounds
28 +sprites/zombie_plague/... &lt;-- HUD sprites</pre>
29 +<p>Keep the directory structure exactly as shipped. A zombie model referenced as <code>models/player/zombie_source/zombie_source.mdl</code> must physically exist at that path or the server aborts at map load.</p>
30 +
31 +<h2>4. Register the plugins</h2>
32 +<p>Add the core plugin and every extra item to <code>addons/amxmodx/configs/plugins.ini</code>. Order matters: the core loads first, extras after it.</p>
33 +<pre>; --- Zombie Plague ---
34 +zombie_plague.amxx
35 +zp_extra_infammo.amxx
36 +zp_extra_madness.amxx
37 +zp_classic_nemesis.amxx
38 +zp_classic_survivor.amxx</pre>
39 +<p>Only list the extras you actually copied. Listing an item whose <code>.amxx</code> is not in <code>plugins/</code> produces <code>Plugin file open error</code> for that line and nothing else.</p>
40 +
41 +<h2>5. Configure gameplay cvars</h2>
42 +<p>ZP cvars live in <code>zombie_plague.ini</code> (or in <code>amxx.cfg</code> if you prefer them centralised). The names are prefixed <code>zp_</code>. A minimal, sane starting set:</p>
43 +<pre>zp_delay 20 // seconds before first infection
44 +zp_human_health 100
45 +zp_zombie_first_hp 3000
46 +zp_zombie_hp 2000
47 +zp_nemesis_hp_multi 10
48 +zp_ammo_pack_kills 3 // kills per ammo pack</pre>
49 +<p>Read the shipped <code>.ini</code> rather than pasting a cvar list from a forum — cvar names drift between 4.3 sub-releases and 5.0, and setting one that does not exist is a silent no-op.</p>
50 +
51 +<h2>6. Precache and download</h2>
52 +<p>Players on a public server must be able to download the models and sounds. Make sure <code>sv_downloadurl</code> or in-game download is enabled and that the ZP assets are reachable. See <a href="/tutorials/install-custom-maps-cs16-server">adding custom content</a> for how the fastdownload path mirrors <code>cstrike/</code>. Every zombie/human model, claw sound and grenade sprite the plugin registers must be present both on the game server and on the download mirror, or the client that lacks it drops at load with a missing-resource error while everyone else plays.</p>
53 +
54 +<h2>7. 4.3 versus 5.0 — what actually differs</h2>
55 +<p>The two lines play almost identically; the difference is under the hood. The 4.3 series is the long-lived community branch most public servers still run, with an enormous library of third-party extra items and class plugins written against its API. The 5.0 rewrite reorganised the internals and the API, so a 4.3 extra item will not necessarily compile or load against 5.0, and vice versa. Pick one line and keep every add-on on the same line. If you inherit a server already on 4.3 with a working set of extras, there is no operational reason to jump to 5.0 mid-life — you would be re-testing every add-on for no gameplay gain. Whichever you choose, keep the whole plugin set from that generation together.</p>
56 +
57 +<h2>Common errors</h2>
58 +<ul>
59 +<li><strong><code>Plugin failed to load: Function not found</code></strong> — a required module is not loaded. Check <code>amxx modules</code> for <code>cstrike</code>, <code>fun</code>, <code>engine</code>, <code>fakemeta</code>, <code>hamsandwich</code>.</li>
60 +<li><strong><code>Host_Error: PF_precache_model_I: Model models/player/zombie_source/zombie_source.mdl not precached</code></strong> or <code>failed to load</code> — the model file is missing from disk or is at the wrong path. The path in the error is exactly where the file must be.</li>
61 +<li><strong><code>Cannot load plugin: bad load</code></strong> in <code>amxx plugins</code> — the <code>.amxx</code> was compiled for a newer AMXX than you run. Recompile the <code>.sma</code> against your version, or upgrade AMXX.</li>
62 +<li><strong>Server runs but nobody turns into a zombie</strong> — <code>zp_delay</code> is high, or an old <code>zombie_plague.ini</code> from another version overrides your cvars. Confirm with <code>zp_delay</code> in console.</li>
63 +</ul>
64 +
65 +<h2>Verification</h2>
66 +<p>Start the server, load a ZP map, and run:</p>
67 +<pre>amxx plugins</pre>
68 +<p>Every <code>zp_*</code> line and <code>zombie_plague.amxx</code> must read <code>running</code>, none <code>bad load</code> or <code>error</code>. Join with two players (or bots), wait for <code>zp_delay</code>, and confirm the first zombie is chosen and the HUD shows ammo packs. If a full round infects, kills, and restarts cleanly, the mod is installed. From here, pair it with an <a href="/plugins/csb-admin-menu">admin menu</a> so you can force rounds while testing.</p>
0 69