Players
Installation
- Clone or download CSRetro
- Run the full build:
./tools.sh build:full - Install CS 1.6 assets (Steam Half-Life or manual):
./tools.sh install:assets - 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
- 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.
- 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_finishedin the network message). That prevents the touch menu from opening on top of or before the MOTD when the network deliversVGUIMenubefore MOTD chunks. If the server sends no MOTD at all, the team menu is allowed after a short fallback wait (seeclient/cl_dll/hud/MOTD.cpp). - MOTD window — If the server sends a plain-text MOTD, it is shown when the message is complete. CSRetro’s server also sets
motdfiletomotd_csretro.txtwith CS Retro version lines and component revisions (same data ascsr version; see Server administrators). - HTML MOTD — If the payload looks like HTML (contains
<!DOCTYPE HTML>), the client discards it and does not show a MOTD window. - 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.
- 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, thentouch/chooseteam_tr.cfg/touch/chooseteam_ct.cfgas 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.