CSMD
downloads community server's files based on a console log of file requests. It is created for Linux, but can be used on macOS or Windows if needed.
When one chooses a community server in a server list, the client basically executes connect <ip:port>
, thus establishing communication and requesting any additional files that are missing from the client. For some unknown reason, a reason only Valve employee can know, Linux client refuses to download any content from FastDL type of servers. It has been like that for a very long time and the problem has been reported to Valve Sep 23, 2014. Since the issue remained unsolved, I decided to create at least some workaround - this script.
The script requires Python 3.
Since the script must not be run as root (as it will lock the downloaded files under root), execute this in a terminal exactly as written out as a regular user (i.e. not root)(this assumes sudo
is configured correctly):
sudo curl -o /usr/local/bin/csgo-csmd https://raw.githubusercontent.com/M-Reimer/csgo-csmd/master/csgo-csmd
sudo chmod +x /usr/local/bin/csgo-csmd
Now configure your "Launch Options" for CS:GO to contain -condebug and -conclearlog
TIP: If you want to download less bloat from the community servers, you might want to use
cl_downloadfilter
option in yourautoexec.cfg
. You can set it to "all", "none" or "nosounds" in order to not filter out any files, filter out all files and filter out sound files respectively. Example:cl_downloadfilter "nosounds"
.
- Find a community server that your client refuses to connect to ("Downloading map 0 % / 0 bytes").
- Open CS:GO console (press
~
A.K.A. tilde, one has to have-console
in the game launch options orcon_enable "1"
in autoexec.cfg). - Type
disconnect
and pressEnter
. - Open a terminal (the one with a shell session) and run
csgo-csmd
. - Open CS:GO console again and type
retry
. - Have fun!
usage: csgo-csmd [-h] [--config-path CONFIG_PATH] [--csgo-path CSGO_PATH]
optional arguments:
-h, --help show this help message and exit
--config-path CONFIG_PATH
Path to CSMD config (default:
/home/$USER/.config/csmd/csmd.conf)
--csgo-path CSGO_PATH
Path to CS:GO home folder (default:
/home/$USER/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo)
CSMD provides a config in INI format (spaces between words are allowed). The default one is created upon the first invocation:
[path]
csgo_path = /home/$USER/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo
csgo_path
can be anything--csgo-path
accepts (see above)
Open new tickets through GitHub Issues. Please take time to describe the problem and copy the logs the script produces.
- CSMD doesn't know how to decompress anything except bzip2
- CSMD doesn't talk HTTPS (only HTTP)
If any of the above makes your life worse, open a new issue.
You are allowed to share and modify all files in this repository under BSD 3-clause license. See LICENSE for more details.