[Pyro-Zone] sToP ! Jan 26 @ 4:00am
Linux server
what is the startup line for a linux tfc server with steamcmd? (the one with autoupdate doesn't work)
Showing 1-3 of 3 comments
< >
pizzahut Jan 26 @ 6:02am 
I haven't used autoupdate since the HLDS Update Tool was shut down, not sure if it works with SteamCMD. It does for TF2 though.

screen -dmS server-name-here taskset 01 ./hlds_run -game tfc -port 27015 +ip your-ip-here +maxplayers 31 +rcon_password your-rcon-password-here +map 2fort

taskset ties the HLDS to one core, I think HL1 based games run better this way. Perhaps this isn't true any more with the updates it got through SteamCMD though.

For auto updating TF2 servers I use this, as I said never tried it with TFC so it might not work:

screen -dmS server-name-here ./srcds_run -game tf -ip ip-here -port 27015 +tv_port 27020 -autoupdate -steam_dir steamcmd-path-here -steamcmd_script script-name-here -tickrate 66 +exec server.cfg +map ctf_2fort +log on

Tickrate is probably outdated, too. The SteamCMD script is located in the steamcmd dir.

For TFC a SteamCMD update script looks like this:

force_install_dir /home/user-name/hlds-dir
login anonymous
app_set_config 90 mod tfc
app_update 90 validate
exit

Don't use the ~ (tilde) in the update script, or variables like $HOME. I think neither are supported, the tilde definitely isn't. I used an absolute path to be on the safe side, not sure if a relative one works with automatic updating through the startup line.
pizzahut Jan 26 @ 6:55pm 
Ok I looked at the hlds_run source code and did some testing. The parameter -autoupdate is sufficient, there's no -steam_dir and no -steamcmd_script for TFC. It expects the steamcmd dir to be inside the hlds dir, and I think there's a small bug which probably causes it to only update CS and HL. The command in hlds_run is missing this:

+app_set_config 90 mod tfc

So I made a copy of the hlds_run script with a different name and edited this line:

CMD="$STEAM +logon anonymous +force_install_dir .. +app_set_config 90 mod tfc +app_update 90 validate +quit";

The validate is just there so I see what's going on - you can omit it. With the added app_set_config there is one additional line occurring during the update process (near the end):

App state (0x20104) validating, progress: 98.65 (892714854 / 904909001)

EDIT: To make the script work with any mod, $GAME should be used instead of tfc:

CMD="$STEAM +logon anonymous +force_install_dir .. +app_set_config 90 mod $GAME +app_update 90 +quit";

If the -game parameter is omitted, hlds_run uses valve as default.
pizzahut Feb 1 @ 9:06pm 
complicated issue.
Showing 1-3 of 3 comments
< >
Per page: 15 30 50