--- title: "Adding Bot Waypoints/Graphs to Your Map (YaPB / POD-Bot)" excerpt: "How to give bots navigation on a custom map: the difference between YaPB graph files and POD-Bot .pwf waypoints, where each file lives, how to record nodes in-game, and how to auto-download community graphs." category: "mapping" tags: "bots, waypoints" image: "" read_time: "8 min read" ---
Bots on a custom CS 1.6 map do nothing until the map has navigation data. Without it they spawn and stand still, because they have no nodes describing where they can walk, camp, or plant. The two dominant bots — YaPB and POD-Bot mm — use different, incompatible navigation files, and getting them into the right folder is half the battle. This covers both formats and how to create or fetch the data.
The formats are not interchangeable:
.graph file (its modern navigation format). Newer YaPB builds can also generate a graph automatically..pwf waypoint file (the classic "waypoint" format that predates graphs).A .pwf from POD-Bot will not drive YaPB and vice versa. Decide which bot you run first; if you are choosing, see installing YaPB. The rest of this assumes you know your bot.
Each bot loads navigation by map name from its own data directory. The files are named after the map (de_rats.graph, de_rats.pwf) and go under the bot's addon folder:
// YaPB addons/yapb/data/graph/de_rats.graph // POD-Bot mm addons/podbot/waypoints/de_rats.pwf
The filename must match the BSP name exactly, or the bot loads nothing for that map. This mismatch — a graph named for the wrong map — is the single most common reason "the waypoints don't work."
Popular maps almost always have community navigation already. YaPB in particular can download a graph for the current map from its online database when one is missing, dropping it straight into data/graph/. If the map is well known, load it, let the bot fetch or check the community waypoint archives, and you may be done without recording anything. Only hand-make navigation for a map that has none.
To build navigation yourself, start a local listen server on the map with the bot's waypoint/graph editor enabled, then walk the routes. Both bots expose console commands to add nodes as you move; the workflow is the same in spirit:
de_ maps, the goal on cs_ maps — using the editor's node-type commands so bots know what to do there.Cover every route a player would take: both bombsites, every ramp, ladders, and doorways. Bots can only go where a path exists.
Save from the editor when the network is complete; it writes the .graph or .pwf under the bot's data folder for the current map. Reload the map to load the fresh file, then add bots and watch them move. Iterate — the first pass always misses a corner.
If you distribute the map to other servers, include the navigation file. On a server, drop the correct file into the bot's data directory listed above and change the map; no compile step is involved, since navigation is separate from the BSP.
.pwf to YaPB (or a .graph to POD-Bot). Match the format to the bot.Load the map, add a few bots, and watch a full round: they should leave spawn, take multiple routes to the objective, use ladders, and plant or defuse. Force a couple of bots to different areas and confirm none get permanently stuck. If a whole region is dead, you are missing nodes there — add them and re-save. For the reverse problem where bots exist but never move at all, work through the no-waypoints fix.