Skip to content

Client: cs16-client + ReGameDLL_CS + YaPB

CSRetro uses a vendored, CSRetro-modified fork of cs16-client as its client and server code base (client/). The full source tree is committed in-tree (no submodules).

Vendored tree revision in this build: see VENDOR.md and Vendor table (VENDOR.md).

Upstream project (cs16-client)

cs16-client was originally aimed at mobile platforms; CSRetro ships a desktop x64 fork with CMake, csr_* binary names, and bundled ReGameDLL / YaPB / Metamod / NodeMod.

In this documentation: launch patterns, client CVars, and crosshair/HUD tables are listed under Players and in this page — you do not need the upstream README to run or configure CSRetro. The upstream repository remains the source for file history and non-CSRetro ports.

Launch and command-line (Xash3D / CSRetro)

CSRetro is started through ./tools.sh run:game (or run:debug), which launches the engine binary under game-test/ with -game cstrike. The same style of arguments applies if you invoke xash3d (Linux) or the platform launcher directly.

Argument / pattern Purpose
-game cstrike Load Counter-Strike mod (required for CS 1.6 data).
-dev Developer mode (extra messages; often paired with console).
+map <mapname> Load a map on start (e.g. dedicated server or quick test).
+exec <cfg> Run a config file after startup.
-condebug Log console to qconsole.log in the game directory (debugging).

Dedicated server: see Developers (./tools.sh run:server) and engine docs for listen/dedicated networking. Upstream cs16-client may document additional mobile- or platform-specific switches; for CSRetro, prefer tools.sh and Building.

What is cs16-client?

cs16-client is a reverse-engineered Counter-Strike 1.6 client for Xash3D FWGS, originally designed for mobile platforms. It provides:

  • cl_dlls/csr_client_amd64.so — client-side game logic (HUD, weapons, prediction)
  • cl_dlls/csr_menu_amd64.so — in-game and main menu
  • dlls/csr_cstrike_amd64.so — server-side game logic (via ReGameDLL_CS, see below)
  • dlls/csr_yapb_amd64.so — YaPB bot plugin (see below)

CSRetro-specific client CVars

CVar Default Description
hud_color 255 160 0 HUD color (RGB)
cl_quakeguns 0 Draw centered weapons
cl_weaponlag 0.0 Weapon lag/sway
xhair_enable 0 Enable enhanced crosshair
xhair_color 0 255 0 255 Crosshair color (RGBA)
xhair_dot 0 Crosshair center dot
xhair_dynamic_move 1 Dynamic crosshair affected by movement
xhair_gap 0 Space between crosshair lines
xhair_size 4 Crosshair size
xhair_t 0 T-shaped crosshair
xhair_thick 0 Crosshair thickness

See Players and Client CVARs for the client cvar reference; Server administrators and Server CVARs for dedicated-server rules.

ReGameDLL_CS (server game logic)

The server DLL (dlls/csr_cstrike_amd64.so) is built from ReGameDLL_CS, a reimplementation of the original cs.dll from Counter-Strike 1.6, vendored under client/3rdparty/ReGameDLL_CS/.

ReGameDLL_CS includes a built-in bot system derived from the Counter-Strike: Condition Zero (CZ) bot code. These bots are controlled via server-side commands and CVars such as bot_quota, bot_difficulty, bot_join_team, etc.

Note: The ReGameDLL internal bot is completely separate from YaPB (see below). They are two independent systems and must not be confused.

YaPB — Yet another Podbot

YaPB (created by jeefo) is an independent Metamod plugin that provides its own AI bot system. It is vendored under client/3rdparty/yapb/ and installed as dlls/csr_yapb_amd64.so.

YaPB loads via Metamod as a separate plugin — it is NOT part of ReGameDLL or csr_cstrike_amd64.so. It has its own configuration system (addons/yapb/conf/) and bot navigation mesh. See YaPB for paths, the full yb_* list, and troubleshooting.

ReGameDLL Bot YaPB
Loaded as Part of csr_cstrike_amd64.so Metamod plugin csr_yapb_amd64.so
Config bot_quota, bot_difficulty etc. addons/yapb/conf/
Navigation .nav files .pwf waypoint files
Origin CZ bot code (Valve/Ritual) Independent (jeefo)

Building

In CSRetro the full client stack is built by CMake through the top-level CMakeLists.txt:

./tools.sh build:release       # Build client + server + menu DLLs
./tools.sh build:full          # Full pipeline (engine + client + addons)

Attribution

  • cs16-client: Velaron (maintainer) and a1batross (original creator). See credits.
  • ReGameDLL_CS: the rehlds team. See credits.
  • YaPB: jeefo. See credits.