Skip to content

Players

Installation

  1. Clone or download CSRetro
  2. Run the full build: ./tools.sh build:full
  3. Install CS 1.6 assets (Steam Half-Life or manual): ./tools.sh install:assets
  4. Launch: ./tools.sh run:game

Launching

./tools.sh run:game          # Normal launch
./tools.sh run:debug         # With debug log

For direct engine command-line flags (-game, +map, etc.), see Client (cs16-client) (section Launch and command-line). Client CVAR tables: Client CVARs.

MOTD and team selection

Behaviour matches the client implementation (client/cl_dll/hud/MOTD.cpp, client/cl_dll/menu.cpp, client/cl_dll/input.cpp).

Order of events

  1. Grace period (~1.25 s) — After video init / reconnect, team and class menus are deferred so server MOTD data can arrive over the network. This happens even before any MOTD text is visible.
  2. Wait for MOTD stream — The client does not run the touch team chooser (exec touch/chooseteam.cfg) until the server has finished sending the MOTD (is_finished in the network message). That prevents the touch menu from opening on top of or before the MOTD when the network delivers VGUIMenu before MOTD chunks. If the server sends no MOTD at all, the team menu is allowed after a short fallback wait (see client/cl_dll/hud/MOTD.cpp).
  3. MOTD window — If the server sends a plain-text MOTD, it is shown when the message is complete. CSRetro’s server also sets motdfile to motd_csretro.txt with CS Retro version lines and component revisions (same data as csr version; see Server administrators).
  4. HTML MOTD — If the payload looks like HTML (contains <!DOCTYPE HTML>), the client discards it and does not show a MOTD window.
  5. Dismiss MOTD — While the MOTD is visible, close it with primary attack, secondary fire, jump, or use (the client shows: “Press attack, secondary fire, jump, or use to continue”). Those keys dismiss the MOTD without forwarding that action to the game for that frame where applicable.
  6. Team / class UI — Only after the MOTD is dismissed (or skipped with cl_hide_motd 1), the team/class touch menus run (exec touch/chooseteam.cfg, then touch/chooseteam_tr.cfg / touch/chooseteam_ct.cfg as needed). This is the same touch-button layout on desktop and mobile, not a separate classic VGUI team screen.

cl_hide_motd

Value Effect
0 (default) Normal MOTD handling; MOTD can defer the team/class touch menus until dismissed or skipped.
1 Incoming MOTD is ignored; no MOTD window. Team/class menus are not blocked because of MOTD (the short grace period above still applies).

Use 1 if you are debugging menus and do not want the MOTD step.

In-Game Commands

Bot Menu (csr_botmenu)

The bot menu is available via the NodeMod csr_botmenu plugin.

Bind Command Description
h csr_commandmenu Open command menu
p csr_botmenu Open bot menu

To set binds manually in the console:

bind "h" "csr_commandmenu"
bind "p" "csr_botmenu"

Bot Controls

Command Description
csr_botmenu Open bot management menu
csr_commandmenu Open command/radio menu

Client Console Variables

General and HUD

Cvar Default Description
cl_show_scoreboard_on_death 1 Show scoreboard when killed
cl_minmodels 0 Force uniform player models
cl_righthand 1 Right-hand weapon model
hud_fastswitch 0 Fast weapon switching
cl_hide_motd 0 If 1, skip MOTD entirely (see MOTD and team selection)
developer 0 Extra developer messages (1 = on)

Audio

Cvar Default Description
cl_killsound 0 Play a sound on kill (0 = off, positive = volume)
cl_killsound_path buttons/bell1.wav Path to kill sound file (relative to cstrike/sound/)

Crosshair and HUD colour (CSRetro client)

Cvar Default Description
hud_color 255 160 0 HUD colour (RGB)
cl_quakeguns 0 Draw centred weapons
cl_weaponlag 0.0 Weapon lag/sway
xhair_enable 0 Enhanced crosshair
xhair_color 0 255 0 255 Crosshair colour (RGBA)
xhair_dot 0 Crosshair centre dot
xhair_dynamic_move 1 Crosshair reacts to movement
xhair_gap 0 Gap between crosshair lines
xhair_size 4 Crosshair size
xhair_t 0 T-shaped crosshair
xhair_thick 0 Crosshair thickness

Version banner: csretro_ver (read-only) — set by the client DLL; see Developers and Client CVARs.

Controls

Default binds for CSRetro-specific features are set in cstrike/config.cfg.
Standard CS 1.6 controls apply for movement, weapons, and communication.

Spectator Mode

Spectator menus (spectatormenu.txt, spectcammenu.txt) are included and automatically installed to game-test/cstrike/ during the build.