Update October 2017: It seems this issue has returned after Valve fixed it several years ago. I have updated this repo with new app_manifest files for each server. Hopefully Valve fix the issue again.
HLDS (GoldSrc) games use appid 90
to download the game server files from SteamCMD.
There is a bug that prevents all the files being downloaded from SteamCMD.
Getting all the files can take any number of attempts for SteamCMD to download them all.
The fix is to download completed appmanifest
files to the steamapps
directory.
This fix should work with both Windows and Linux servers.
This fix applied to the following servers:
- Half-Life Deathmatch Dedicated Server
+app_update 90
- Counter-Strike 1.6 Dedicated Server
+app_update 90 +app_set_config “90 mod cstrike
- Counter-Strike: Condition Zero dedicated server
+app_update 90 +app_set_config “90 mod czero”
- Deathmatch Classic dedicated server
+app_update 90 +app_set_config “90 mod dmc”
- Day of Defeat dedicated server
+app_update 90 +app_set_config “90 mod dod”
- Half-Life: Opposing Force dedicated server
+app_update 90 +app_set_config “90 mod gearbox”
- Ricochet dedicated server
+app_update 90 +app_set_config “90 mod ricochet”
- Team Fortress Classic dedicated server
+app_update 90 +app_set_config “90 mod tfc”
This workaround was discovered while working on LinuxGSM.
Try downloading the server assets from SteamCMD once as you would normally.
For example:
./steamcmd.sh +login anonymous +force_install_dir "/home/csserver/serverfiles" +app_update 90 +app_set_config 90 mod czero validate +quit
You may notice that the download completed quickly. If this happends it indicates that the server did not download all the files correctly.
-
Go to the
steamapps
directory which is located with your server files and delete any existing files in the directory. /home/csserver/serverfiles/steamapps -
Download the
appmanifest
files for your server from this GitHub repository in to thesteamapps
directory. -
Retry downloading the server with SteamCMD.
It is recommended that you try and download a few times just to make sure everything has worked.
These one-line scripts can be used to quickly download all the required appmanifest
files. Ensure you are in the steamapps
directory and run the relevant script.
Thanks to @Arkshine for coming up with the idea.
for i in 10 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/CounterStrike/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 70 80 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/CounterStrikeConditionZero/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 30 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/DayOfDefeat/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 40 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/DeathmatchClassic/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/HalfLifeDeathmatch/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 50 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/OpposingForce/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 60 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/Ricochet/appmanifest_$i.acf -O appmanifest_$i.acf; done
for i in 10 20 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/main/TeamFortressClassic/appmanifest_$i.acf -O appmanifest_$i.acf; done