Sunucu tanitimi
70 lines 6.3 KiB Markdown Source Rendered Raw Permalink History
---
title: "How to Install YaPB Bots on CS 1.6 (2026)"
excerpt: "Install YaPB, the actively maintained CS 1.6 bot, as a Metamod plugin, get the navigation graph loaded, and control bot count with yb_quota."
category: "installation"
tags: "yapb, bots"
image: ""
read_time: "8 min read"
---
<p>YaPB is the bot that is still maintained. Where the old Podbot/POD-Bot and Zbot forks are frozen, YaPB gets regular releases, understands modern ReHLDS/ReGameDLL servers, and ships an automatic navigation-graph system so you are not hand-placing waypoints on every map. It loads as a Metamod plugin — not an AMX Mod X plugin — which is the detail most failed installs get wrong.</p>

<h2>1. Prerequisites</h2>
<p>YaPB needs Metamod. It does <strong>not</strong> need AMX Mod X, though it coexists with it happily. Confirm Metamod is loading first:</p>
<pre>meta version</pre>
<p>If that is an unknown command, install <a href="/tutorials/install-metamod-r">Metamod-r</a> before going further.</p>

<h2>2. Place the YaPB files</h2>
<p>Download the current YaPB release for your platform from the project's releases page and extract it into <code>cstrike/</code>. The layout is:</p>
<pre>cstrike/addons/yapb/bin/yapb.so        (Linux; yapb.dll on Windows)
cstrike/addons/yapb/conf/              (config files)
cstrike/addons/yapb/data/              (graphs, names, chat)</pre>
<p>Keep the whole <code>addons/yapb/</code> tree together — the plugin looks for its config and data relative to its own folder, and splitting them is a common cause of "bots load but never spawn".</p>

<h2>3. Register YaPB with Metamod</h2>
<p>Add YaPB to <code>cstrike/addons/metamod/plugins.ini</code>:</p>
<pre>linux addons/yapb/bin/yapb.so</pre>
<p>On Windows:</p>
<pre>win32 addons/yapb/bin/yapb.dll</pre>
<p>Order relative to AMXX does not matter for YaPB, so append it. Restart the server and confirm it loaded:</p>
<pre>meta list</pre>
<p>YaPB should show as <code>RUN</code>.</p>

<h2>4. Add bots</h2>
<p>YaPB is driven from the console with the <code>yb</code> command family. The most important cvar is the quota, which keeps a target number of bots topped up as humans join and leave:</p>
<pre>yb_quota 8</pre>
<p>To add bots manually instead:</p>
<pre>yb add          // one bot, random team/skill
yb fill         // fill the server up to maxplayers
yb kickall      // remove every bot</pre>
<p>Put the persistent settings in a config that runs at start. YaPB reads its own config from <code>addons/yapb/conf/</code>; set the quota and difficulty there so bots are present without you typing anything:</p>
<pre>yb_quota 8
yb_difficulty 3
yb_quota_mode "fill"</pre>
<p>Read the shipped config file for the exact cvar list your version ships — YaPB has renamed cvars across major versions, and a setting that does not exist is silently ignored.</p>

<h2>5. The navigation graph</h2>
<p>Bots need a navigation graph for a map or they will stand still at spawn. This is the single biggest source of "the bots do nothing" reports. YaPB's graph system replaces the old <code>.pwf</code> waypoints:</p>
<ul>
<li>For popular maps (de_dust2, de_inferno, cs_office, etc.), YaPB can download a community graph automatically the first time the map loads, provided the server has outbound internet access.</li>
<li>Downloaded and generated graphs are stored under <code>addons/yapb/data/graph/</code> as <code>&lt;mapname&gt;.graph</code>.</li>
<li>For a custom map with no graph, you can have YaPB analyze the map to generate one, or place a graph file yourself.</li>
</ul>
<p>Check whether the current map has a graph:</p>
<pre>ls cstrike/addons/yapb/data/graph/</pre>
<p>If <code>de_dust2.graph</code> exists after loading that map, auto-download worked. If your server is firewalled off from the internet, pre-place the graph files manually.</p>

<h2>Common errors</h2>
<ul>
<li><strong>Bots stand at spawn and do nothing</strong> — no navigation graph for that map. Confirm a <code>.graph</code> exists in <code>data/graph/</code>, or let YaPB generate/download one.</li>
<li><strong><code>yb_quota</code> is an unknown command</strong> — YaPB is not loaded. Check <code>meta list</code>; if it is missing, the path in <code>plugins.ini</code> is wrong or the module is the wrong platform. Verify with <code>file addons/yapb/bin/yapb.so</code> that it is <em>ELF 32-bit, Intel 80386</em>.</li>
<li><strong>Bots ignore <code>maxplayers</code> and overfill</strong> — you set both a manual <code>yb add</code> loop and a quota. Use the quota alone; it manages the count.</li>
<li><strong>Graph download fails</strong> — the server has no outbound internet, or the map is unknown to the graph database. Place the <code>.graph</code> file manually under <code>data/graph/</code>.</li>
<li><strong>Bots on a ReGameDLL server behave oddly</strong> — update YaPB; older builds predate current <a href="/tutorials/install-regamedll-cs16">ReGameDLL_CS</a> behaviour.</li>
</ul>

<h2>Verification</h2>
<pre>yb_quota 4</pre>
<p>Load <code>de_dust2</code>, then type <code>status</code> in the console. You should see four bots listed with bot-style ids, and on the map they should leave spawn, buy, take routes, and engage. If they move and fight, the graph is loaded and the install is complete.</p>

<h2>Difficulty and per-map tuning</h2>
<p>Out of the box YaPB mixes skill levels so a round is not uniformly brutal. You control the overall level with the difficulty cvar and, in the config, the spread of skills bots are assigned. If bots are too sharp for a public server, lower the difficulty rather than removing them — a wall of aimbots empties a server as fast as an empty one does. YaPB also supports named personalities (aggressive, normal, careful) that change how bots push and hold; those live in the config under <code>addons/yapb/conf/</code>. For a map that plays badly with the auto-downloaded graph, regenerate the graph in-game and save it, and YaPB will prefer your local file from then on. Bots obey the same server cvars as humans, so <code>mp_startmoney</code>, <code>mp_freezetime</code> and <code>mp_buytime</code> all shape how they play — set them in your <a href="/tutorials/setup-server-cfg-cs16">annotated server.cfg</a> and keep the quota there too so a fresh server is never empty. If you also run <a href="/tutorials/install-regamedll-cs16">ReGameDLL_CS</a>, keep YaPB current so it tracks the game library's behaviour.</p>