Dedicated Server (KillingFloor): Difference between revisions

From Tripwire Interactive Wiki
Jump to navigation Jump to search
(→‎Installing SteamCmd: Added info for 64-bit linus systems)
(Wrong page, my searching skills are bad.)
 
(20 intermediate revisions by 9 users not shown)
Line 1: Line 1:
= About =
== About ==
SteamCMD Update Tool is a new mwthod of updating game servers under Steam, all games are switching to this method, some of them are faster, like KillingFloor.


''There is some mis-understanding of the new steamcmd update tool happening here, let me just clear things up:''
[http://developer.valvesoftware.com/wiki/SteamCMD ''SteamCMD Update Tool''] is a new method of updating game servers under Steam. All games are gradually switching to this method.
''- steamcmd is used for updating of dedicated servers using the new Steam Pipe content system, newly released games on Steam use this system and older games are being switched over.''


''- currently steamcmd requires a steam login to perform an update, we plan on adding a no-login mode in the future for free to download titles.''
{{quote|style="margin:10px; border: 1px dashed grey"||text=There is some misunderstanding of the new steamcmd update tool happening here, let me just clear things up:<br/>
<br/>
* steamcmd is used for updating of dedicated servers using the new Steam Pipe content system, newly released games on Steam use this system and older games are being switched over.<br/>
* Currently steamcmd requires a steam login to perform an update, we plan on adding a no-login mode in the future for free to download titles.<br/>
* The login you use for steamcmd just needs rights to the game you are updating, so for the majority of dedicated server applications you CAN use a free account. So you could currently make an account per machine you wish to run the tool on. You do NOT need to buy the full game client to update if the dedicated server is free.<br/>
* CS:GO is a special case because it is in closed beta, access to its dedicated server is limited to blessed accounts which is why you need a special login. If you are having problems running CS:GO servers and are in the beta email the team and ask for access to another account for your dedicated servers.<br/>
<br/>
With Steam Pipe you should see an improvement in download speeds and more robust response during high demand. It uses HTTP as the content delivery method, so you could set up a local HTTP proxy to cache all steamcmd requests, making updates from multiple machines stay on your local network.|source=Alfred, Valve}}


''- the login you use for steamcmd just needs rights to the game you are updating, so for the majority of dedicated server applications you CAN use a free account. So you could currently make an account per machine you wish to run the tool on. You do NOT need to buy the full game client to update if the dedicated server is free.''
==Windows==


''- CS:GO is a special case because it is in closed beta, access to its dedicated server is limited to blessed accounts which is why you need a special login. If you are having problems running CS:GO servers and are in the beta email the team and ask for access to another account for your dedicated servers.''
===Installing SteamCmd ===


# Go to https://store.steampowered.com/join/ and make new Steam account - no need for any games on it, this account will be needed later.
# Download the SteamCMD Update Tool - [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.zip Windows Installer] ''(MD5: 1aa2b3206b9626f20dface42b9bcf7f0)'' to the destination directory, for example c:\SteamCmd.<p>
# Unpack it.{{note|Do not extract the contents of the updater tool to the regular Steam Client folder or to a folder that has the older HLDSUpdateTool program.}}</p>
# Run command prompt (start->run->[http://en.wikipedia.org/wiki/Command_Prompt cmd]).
# Change to the install directory:<br/><blockquote><code>cd /d c:\SteamCmd</code></blockquote>
# Run steamcmd to update itself:<br/><blockquote><code>steamcmd</code></blockquote><p>{{note|If you have a Steam running on the same machine you want to install server, then first of all close and exit Steam - you will avoid errors with SteamCmd thinking that another copy of Steam is already running.}}</p><p>{{note|Make sure you have "automatically detect settings" selected in the network options tab of Internet Explorer, else you may receive an error stating that you can't connect.}}</p><p>You can see extra info by using the ''help''  command:<br/><blockquote><code>help</code></blockquote>Notice that you are in Steam prompt, since there is ''Steam>'' in front of the line.<br/><br/>
# Log in with your Steam account created at the beginning:<br/><blockquote><code>login <username> <password></code></blockquote>You should see something like this on successful login<br/><blockquote>''Logging in user <username> to Steam Public...Success.''</blockquote>
# If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):<br/><blockquote><code>set_steam_guard_code yourcodehere<br/>login <username> <password></code></blockquote>


''With Steam Pipe you should see an improvement in download speeds and more robust response during high demand. It uses HTTP as the content delivery method, so you could setup a local HTTP proxy to cache all steamcmd requests, making updates from multiple machines stay on your local network.''
{{troubleshoot begin}}
* I am getting the following error when I run <code>steamcmd</code>:<br/><blockquote><code>SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again.<br/>[ 0%] !!! Fatal Error: Steam needs to be online to update. Please confirm your network connection and try again.</code></blockquote>'''Solution''': Make sure you have "automatically detect settings" selected in the network options tab of Internet Explorer.
{{troubleshoot end}}


''- Alfred''
===Installing KillingFloor server===


{{Notice
# For now it is assumed that your game server will be in c:\KFServer\ (more about it in [[#Installation paths]]). You must tell SteamCmd to force install the game in that directory:<br/><blockquote><code>force_install_dir c:\KFServer\</code></blockquote>
|title=WARNING
# Install game server. If you selected the directory that already contains the game, it will be updated:<br/><blockquote><code>app_update 215350 validate</code></blockquote>{{note|You must turn off the server before trying to update, otherwise it will fail.}}You should see progress of game server installation or update.<br/><br/>
|text= Do not extract the contents of the updater tool to the regular Steam Client folder or to a folder that has the older HLDSUpdateTool program.
# Once finished, type '''quit''' at the '''Steam>''' prompt to properly log off of the Steam servers.<br/>
}}
<br/>
Now you may turn on the server.


=Windows=
{{troubleshoot begin}}
==Installing SteamCmd ==
* I am getting the following error when I run <code>app_update</code><br/><blockquote><code>ERROR! Failed to request AppInfo update, not online or not logged into Steam</code></blockquote>'''Solution''': Remove the Steam folder from root directory (rd /s c:\Steam).
* First, go to https://store.steampowered.com/join/ and make new Steam Account - no need for any games on it, this account will be needed later.
{{troubleshoot end}}
* If you have a Steam running on the same machine you want to install server, then first of all close and exit Steam - you will avoid errors with SteamCmd thinking that another copy of Steam is already running.
* Download the SteamCMD Update Tool - [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.zip Windows Installer]
MD5SUM
<code><pre>
1aa2b3206b9626f20dface42b9bcf7f0 *steamcmd.zip
</pre></code>
* Download the steamcmd.zip to the destinatnnion directory, for example c:\SteamCmd
* Unpack it.
* Run command prompt (menu Start, Run, cmd)
* Change to the install directory
cd /d c:\SteamCmd
* Run steamcmd to update itself:
steamcmd
* You can see extra info by using help command
help
* Notice that you are in Steam prompt, there is ''Steam>'' in front of the line
* Log in with your Steam Account created on the beginning
login username password
You should see something like this o successful login
Logging in user 'username' to Steam Public...Success.


* If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):
===Automation===
set_steam_guard_code yourcodehere
login username password


==Installing KillingFloor server==
There are two ways to automate SteamCmd:
{{Notice
|title=Turn off server when trying to update it
|text=Remember to turn off game server when trying to run game server update - otherwise it will fail.
}}


* Via direct use of command prompt
* Via use of a script


* Let's say your game server will be in c:\KFServer\ (more about it in [[#force_install_dir Paths]]) , so we must say to the SteamCmd to force install game in that directory, remember, you're still in Steam prompt
====Command prompt====
force_install_dir c:\KFServer\
* Now we install game server, if you selected the directory that already contains the game, it will be updated:
app_update 215350 validate


Simply enter the commands directly into command prompt, for example:


{{Notice
<blockquote><code>SteamCmd +login user password +force_install_dir c:\KFServer\ +app_update 215350 validate</code></blockquote>
|title=Error recieved
|text=If you encountered "ERROR! Failed to request AppInfo update, not online or not logged into Steam" you must remove Steam folder from root directory (rd /s c:\Steam)
}}


This will first login to Steam and try to update game server.


You should see progress of game server installation or update.
====Using a script====
* Once finished, type '''quit''' at the '''Steam>''' prompt to properly log off of the Steam servers.
 
* Now you may turn on server again.
Alternately, you can create a script that will perform a series of actions:
 
<blockquote><code>
// update_kf_ds.txt<br/>
//<br/>
login user password<br/>
force_install_dir c:\KFServer\<br/>
app_update 215350 validate<br/>
exit</code></blockquote>
 
Now you can issue SteamCmd to execute the script:
 
<blockquote><code>SteamCmd +runscript C:\SteamCmd\update_kf_ds.txt</code></blockquote>
 
Place the script anywhere you want, just make sure to update the paths when invoking ''SteamCmd +runscript''.
 
==Linux==
 
===Installing SteamCmd ===
 
# Go to https://store.steampowered.com/join/ and make new Steam account - no need for any games on it, this account will be needed later.
# Create installation directory for SteamCmd, example ''home/unreal/steamcmd'':<br/><blockquote><code>mkdir -p /home/unreal/steamcmd<br/>cd /home/unreal/steamcmd</code/></blockquote>
# Download the SteamCMD Update Tool - [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz Linux Installer] ''(MD5: b803e6adc6dd051039cbbfdd846d804d)''.
# Unpack it.<br/><blockquote><code>tar zxf steamcmd.tar.gz</code></blockquote>
# Run the shell script:<blockquote><code>./steam.sh</code></blockquote>This should make the ~/Steam directory and update the Steam framework.<br/>You can see extra info by using the ''help''  command:<br/><blockquote><code>help</code></blockquote>Notice that you are in Steam prompt, since there is ''Steam>'' in front of the line.<br/><br/>
# Log in with your Steam account created at the beginning:<br/><blockquote><code>login <username> <password></code></blockquote>You should see something like this on successful login<br/><blockquote>''Logging in user <username> to Steam Public...Success.''</blockquote>
# If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):<br/><blockquote><code>set_steam_guard_code yourcodehere<br/>login <username> <password></code></blockquote>
 
{{troubleshoot begin}}
* On certain Linux distributions you will see error message that something cannot be found etc.<br/><br/>'''Solution''': Try this instead:<br/><blockquote><code>STEAMEXE=steamcmd ./steam.sh</code></blockquote>If this still fails try:<br/><blockquote><code>export LD_LIBRARY_PATH=/home/unreal/steamcmd/linux32/<br/>STEAMEXE=steamcmd ./steam.sh</code></blockquote>
* On 64-bit systems you may get the following error:<br/><blockquote><code>steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory</code></blockquote>'''Solution''': Install lib32stdc++6:
**Debian-based systems:<blockquote><code>apt-get install lib32stdc++6</code></blockquote>
**Red Hat-based systems:<blockquote><code>yum install libstdc++ libstdc++-4.4.6-4.el6.i686</code></blockquote>
 
{{troubleshoot end}}
 
===Installing KillingFloor server===
 
# For now it is assumed that your game server will be in /home/unreal/killingfloor (more about it in [[#Installation paths]]). You must tell SteamCmd to force install the game in that directory:<br/><blockquote><code>force_install_dir /home/unreal/killingfloor</code></blockquote>
# Install game server. If you selected the directory that already contains the game, it will be updated:<br/><blockquote><code>app_update 215360 validate</code></blockquote>{{note|You must turn off the server before trying to update, otherwise it will fail.}}You should see progress of game server installation or update.<br/><br/>
# Once finished, type '''quit''' at the '''Steam>''' prompt to properly log off of the Steam servers.<br/>
<br/>
Now you may turn on the server.
 
{{troubleshoot begin}}
* I am getting the following error when I run <code>app_update</code><br/><blockquote><code>ERROR! Failed to request AppInfo update, not online or not logged into Steam</code></blockquote>'''Solution''': Remove the Steam folder from root directory (rm -rf ~/Steam).
{{troubleshoot end}}
 
===Automation===


==Automation==
There are two ways to automate SteamCmd:
There are two ways to automate SteamCmd:
* all set in command prompt
* use script


===All in command prompt===
* Via direct use of command prompt
Add commands to the command line. Example:
* Via use of a script
SteamCmd +login user password +force_install_dir c:\KFServer\ +app_update 215350 validate


It should first login to steam and try to update game server.
====Command prompt====


=== Use script===
Simply enter the commands directly into command prompt, for example:
*Create a script that will be executed by SteamCmd, it will be a simple .txt file, in C:\SteamCmd\update_kf_ds.txt
// update_kf_ds.txt
//
login user password
force_install_dir c:\KFServer\
app_update 215350 validate
exit


*Now you can issue SteamCmd to execute script:
<blockquote><code>SteamCmd +login user password +force_install_dir /home/unreal/killingfloor +app_update 215360 validate</code></blockquote>
SteamCmd +runscript C:\SteamCmd\update_kf_ds.txt


*you can place script file anywhere you want, just make sure to update the paths when invoking SteamCmd +runscript.
This will first login to Steam and try to update game server.


=Linux=
====Using a script====
==Installing SteamCmd ==
* First, go to https://store.steampowered.com/join/ and make new Steam Account - no need for any games on it, this account will be needed later.
* Create installation dir just for new SteamCMD, example: /home/unreal/steamcmd
mkdir -p /home/unreal/steamcmd
cd /home/unreal/steamcmd
* Download the SteamCMD Update Tool [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz Linux Installer]
wget http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz
* Optional: check if the file was downloaded correctly by comparing MD5 Checksum
md5sum steamcmd.tar.gz
It should be:
<code><pre>
b803e6adc6dd051039cbbfdd846d804d *steamcmd.tar.gz
</pre></code>
* Unpack it
tar zxf steamcmd.tar.gz


* run the command
Alternately, you can create a script that will perform a series of actions:
./steam.sh
Notice, it should make ~/Steam directory


{{Notice
<blockquote><code>
|title=Errors?
// update_kf_ds.txt<br/>
|text=
//<br/>
On certain Linux distributions you will see error message that something cannot be found etc, then try this instead
login user password<br/>
STEAMEXE=steamcmd ./steam.sh
force_install_dir /home/unreal/killingfloor<br/>
if this still fails try:
app_update 215360 validate<br/>
export LD_LIBRARY_PATH=/home/unreal/steamcmd/linux32/
exit</code></blockquote>
STEAMEXE=steamcmd ./steam.sh
}}
For 64-bit Distros


you may get an error
Now you can issue SteamCmd to execute the script:


steamcmd: error while loading shared libraries: libstdc++                                                                                                                                                            .so.6: cannot open shared object file: No such file or directory
<blockquote><code>SteamCmd +runscript /home/unreal/killingfloor/update_kf_ds.txt</code></blockquote>


To fix this install lib32stdc++6
Place the script anywhere you want, just make sure to update the paths when invoking ''SteamCmd +runscript''.


For Debian bases systems:
{{troubleshoot begin}}
* I am getting errors.<br/><br/>'''Solution''': On some Linux distribution you may recieve errors with not loading some .so files, so try this (alter paths):<blockquote><code>#!/bin/bash<br/>DIR=/home/unreal/steamcmd<br/>export LD_LIBRARY_PATH="${DIR}/linux32:$LD_LIBRARY_PATH"<br/>cd ${DIR}/linux32<br/>./steamcmd +runscript ${DIR}/update_kf_ds.txt</code></blockquote>
{{troubleshoot end}}


''apt-get install lib32stdc++6''
==Installation paths==


For Red Hat based systems:
You can specify installation directory in various ways:
 
===Windows===
 
* Absolute Path:
<blockquote><code>force_install_dir c:\KFServer\</code></blockquote>
 
* Up one folder:
<blockquote><code>force_install_dir ..\KFServer\</code></blockquote>
 
* In the Steam Command folder:
<blockquote><code>force_install_dir .\KFServer\</code></blockquote>
 
===Linux===
 
* Absolute Path:
<blockquote><code>force_install_dir /home/unreal/killingfloor/</code></blockquote>
 
* Up one folder:
<blockquote><code>force_install_dir ../killingfloor/</code></blockquote>


''yum install libstdc++''
* In the Steam Command folder:
<blockquote><code>force_install_dir ./killingfloor/</code></blockquote>


* You can see extra info by using help command
==Beta versions==
help
* Notice that you are in Steam prompt, there is ''Steam>'' in front of the line


If Tripwire is currently running a beta update of the dedicated server files:
<blockquote><code>app_update 215350 -beta "branch name"</code></blockquote>
Where "branch name" is the current beta branch.  Currently there is not a live dedicated server beta branch.


== Starting the server ==


Use the batch file downloaded with the server or create your own. To launch a server with default settings on BioticsLab use the following batch script:


It should update the Steam framework, then you should be able to run it in order to install games.
Windows
<blockquote><code>ucc server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6</code></blockquote>


* You can see extra info by using help command
Linux
help
<blockquote><code>./ucc-bin server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6 -nohomedir</code></blockquote>
* Notice that you are in Steam prompt, there is ''Steam>'' in front of the line
* Log in with your Steam Account created on the beginning
login username password
You should see something like this o successful login
Logging in user 'username ' to Steam Public...Success.
* If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):
set_steam_guard_code yourcodehere
login username password


==Installing KillingFloor server==
==Server ports==
{{Notice
|title=Turn off server when trying to update it
|text=Remember to turn off game server when trying to run game server update - otherwise it will fail.
}}


* Let's say your game server will be in /home/unreal/killingfloor (more about it in [[#force_install_dir Paths]]) , so we must say to the SteamCmd to force install game in that directory, remember, you're still in Steam prompt
The following list of ports need to be open for a server to run successfully:
force_install_dir /home/unreal/killingfloor
* 7707 UDP/IP (Game Port)
* Now we install game server, if you selected the directory that already contains the game, it will be updated:
* 7708 UDP/IP (Query Port)
app_update 215360 validate
* 7717 UDP/IP (GameSpy Query Port)
* 28852 TCP/IP and UDP (Allows your Server to Connect to the Master Server Browser)
* 8075 TCP/IP (Port set via ListenPort that your WebAdmin will run on)
* 20560 UDP/IP (Steam Port)


{{Notice
Since the game is running with the Steam backend, if you are running more than 1 server per IP, you will need to make sure that you have some additional ports open beyond the default KF ports. If you change the default Game Port from 7707, this change will be reflected in the Master Server Port (28852) and the Steam Port (20560) as well.
|title=Error recieved
|text=If you encountered "ERROR! Failed to request AppInfo update, not online or not logged into Steam" you must remove Steam folder from root directory
rm -rf ~/Steam
}}


You should see progress of game server installation or update.
You must also change OldQueryPortNumber=7717 under [IpDrv.UdpGamespyQuery] in the KillingFloor.ini to match the increase of the 7707 port. So if you change 7707 to 7807, then 7717 would change to 7817. If this is not done, the server will crash when starting.
* Once finished, type '''quit''' at the '''Steam>''' prompt to properly log off of the Steam servers.
* You can now turn on game server back online.


==Automation==
==Advanced admin settings==
There are two ways to automate SteamCmd:
* all set in command prompt
* use script


===All in command prompt===
Admins looking to made changes from the default settings will find most options available in the Killingfloor.ini (or in WebAdmin once enabled in the Killingfloor.ini).
Add commands to the command line. Example:
SteamCmd +login user password +force_install_dir /home/unreal/killingfloor +app_update 215360 validate


It should first login to steam and try to update game server.
===Server name and passwords===


=== Use script===
<blockquote><code>ServerName=Killing Floor Server<br/>
*Create a script that will be executed by SteamCmd, it will be a simple .txt file, in /home/unreal/steamcmd/update_kf_ds.txt
GamePassword=<br/>
// update_kf_ds.txt
Adminpassword=</code></blockquote>
//
login user password
force_install_dir /home/unreal/killingfloor
app_update 215360 validate
exit


*Now you can issue SteamCmd to execute script:
===Difficulty and Length===
SteamCmd +runscript /home/unreal/killingfloor/update_kf_ds.txt


*you can place script file anywhere you want, just make sure to update the paths when invoking SteamCmd +runscript.
<blockquote><code>GameDifficulty=</code></blockquote>


Valid inputs:
* 1.0 = Beginner - Your grandma can play the game
* 2.0 = Normal - Quite challenging with lower level perks
* 4.0 = Hard - Very challenging even with mid level perks
* 5.0 = Suicidal - Incredibly difficult, even with high level perks
* 7.0 = Hell on Earth - You'll be wishing you were one of them


{{Notice
<blockquote><code>KFGameLength=</code></blockquote>
|title=Errors
|text=On some Linux distribution you may recieve errors with not loading some .so files, so try this (alter paths)


#!/bin/bash
Valid inputs:
DIR=/home/unreal/steamcmd
* 0 = Short - A 4 wave game
export LD_LIBRARY_PATH="${DIR}/linux32:$LD_LIBRARY_PATH"
* 1 = Normal - The standard 7 wave game
cd ${DIR}/linux32
* 2 = Long - The longer 10 wave game
./steamcmd +runscript ${DIR}/update_kf_ds.txt
* 3 = Custom - uses the custom sandbox settings for waves, monster counts, etc (which i won't go into here, but we'll talk about in another post).  


Save above lines as /home/unreal/steamcmd/kf_update.sh, chmod +x /home/unreal/steamcmd/*.sh and you can use it for example in scripts or cron.
===Map voting===
}}
In the [xVoting.XvotingHandler] section of the killingfloor.ini admins need to set ''bMapVote'' to ''true'' in order to enable map voting.


=force_install_dir Paths=
Admins can can also configure how soon a map can be re-voted for with ''RepeatLimit''. The numerical value determined the number of previously played maps that should not be selectable. 0 - Map can be voted for right away. 4(Default) - Four maps must be played before the map becomes available again.
You can specify installation directory in various ways:
==Windows==
*Absolute Path:
force_install_dir c:\KFServer\


*Up one folder:
===WebAdmin===
force_install_dir ..\KFServer\
To enable WebAdmin, admins need to locate the [UWeb.WebServer] section of the Killingfloor.ini and set ''bEnable'' to ''true''.


*In the Steam Command folder:
The default webadmin port is 8075 and once enabled Admins can log into it by navigating to
force_install_dir .\KFServer\
==Linux==
*Absolute Path:
force_install_dir /home/unreal/killingfloor/


*Up one folder:
<blockquote><code>YOUR_SERVER_IP:8075</code></blockquote>
force_install_dir ../killingfloor/


*In the Steam Command folder:
in their favorite web browser and logging in with the admin name (default: admin if not set) and password.
force_install_dir ./killingfloor/


=Beta versions=
===In-game admin===
If Tripwire is currently running a beta update of the dedicated server files:
When you're in game press your ~ key to open the command console and type:
app_update 215350 -beta "branch name"
Where "branch name" is the current beta branch.  Currently there is not a live dedicated server beta branch.


<blockquote><code>adminlogin <yourpassword></code></blockquote>


== Starting the Server ==
This will log you in as admin and will give you access to admin commands such as ''map'', ''kick'', and ''ban''.


Use the batch file downloaded with the server or create your own.  To launch a server with default settings on BioticsLab use the following batch script:
[[Category:Killing Floor]]
ucc server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6

Latest revision as of 03:35, 17 June 2017

About

SteamCMD Update Tool is a new method of updating game servers under Steam. All games are gradually switching to this method.

“There is some misunderstanding of the new steamcmd update tool happening here, let me just clear things up:


  • steamcmd is used for updating of dedicated servers using the new Steam Pipe content system, newly released games on Steam use this system and older games are being switched over.
  • Currently steamcmd requires a steam login to perform an update, we plan on adding a no-login mode in the future for free to download titles.
  • The login you use for steamcmd just needs rights to the game you are updating, so for the majority of dedicated server applications you CAN use a free account. So you could currently make an account per machine you wish to run the tool on. You do NOT need to buy the full game client to update if the dedicated server is free.
  • CS:GO is a special case because it is in closed beta, access to its dedicated server is limited to blessed accounts which is why you need a special login. If you are having problems running CS:GO servers and are in the beta email the team and ask for access to another account for your dedicated servers.


With Steam Pipe you should see an improvement in download speeds and more robust response during high demand. It uses HTTP as the content delivery method, so you could set up a local HTTP proxy to cache all steamcmd requests, making updates from multiple machines stay on your local network.”

– Alfred, Valve

Windows

Installing SteamCmd

  1. Go to https://store.steampowered.com/join/ and make new Steam account - no need for any games on it, this account will be needed later.
  2. Download the SteamCMD Update Tool - Windows Installer (MD5: 1aa2b3206b9626f20dface42b9bcf7f0) to the destination directory, for example c:\SteamCmd.

  3. Unpack it.
    Note: Do not extract the contents of the updater tool to the regular Steam Client folder or to a folder that has the older HLDSUpdateTool program.

  4. Run command prompt (start->run->cmd).
  5. Change to the install directory:

    cd /d c:\SteamCmd

  6. Run steamcmd to update itself:

    steamcmd

    Note: If you have a Steam running on the same machine you want to install server, then first of all close and exit Steam - you will avoid errors with SteamCmd thinking that another copy of Steam is already running.

    Note: Make sure you have "automatically detect settings" selected in the network options tab of Internet Explorer, else you may receive an error stating that you can't connect.

    You can see extra info by using the help command:

    help

    Notice that you are in Steam prompt, since there is Steam> in front of the line.

  7. Log in with your Steam account created at the beginning:

    login <username> <password>

    You should see something like this on successful login

    Logging in user <username> to Steam Public...Success.

  8. If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):

    set_steam_guard_code yourcodehere
    login <username> <password>

Troubleshooting

  • I am getting the following error when I run steamcmd:

    SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again.
    [ 0%] !!! Fatal Error: Steam needs to be online to update. Please confirm your network connection and try again.

    Solution: Make sure you have "automatically detect settings" selected in the network options tab of Internet Explorer.

Installing KillingFloor server

  1. For now it is assumed that your game server will be in c:\KFServer\ (more about it in #Installation paths). You must tell SteamCmd to force install the game in that directory:

    force_install_dir c:\KFServer\

  2. Install game server. If you selected the directory that already contains the game, it will be updated:

    app_update 215350 validate

    Note: You must turn off the server before trying to update, otherwise it will fail.
    You should see progress of game server installation or update.

  3. Once finished, type quit at the Steam> prompt to properly log off of the Steam servers.


Now you may turn on the server.

Troubleshooting

  • I am getting the following error when I run app_update

    ERROR! Failed to request AppInfo update, not online or not logged into Steam

    Solution: Remove the Steam folder from root directory (rd /s c:\Steam).

Automation

There are two ways to automate SteamCmd:

  • Via direct use of command prompt
  • Via use of a script

Command prompt

Simply enter the commands directly into command prompt, for example:

SteamCmd +login user password +force_install_dir c:\KFServer\ +app_update 215350 validate

This will first login to Steam and try to update game server.

Using a script

Alternately, you can create a script that will perform a series of actions:

// update_kf_ds.txt
//
login user password
force_install_dir c:\KFServer\
app_update 215350 validate

exit

Now you can issue SteamCmd to execute the script:

SteamCmd +runscript C:\SteamCmd\update_kf_ds.txt

Place the script anywhere you want, just make sure to update the paths when invoking SteamCmd +runscript.

Linux

Installing SteamCmd

  1. Go to https://store.steampowered.com/join/ and make new Steam account - no need for any games on it, this account will be needed later.
  2. Create installation directory for SteamCmd, example home/unreal/steamcmd:

    mkdir -p /home/unreal/steamcmd
    cd /home/unreal/steamcmd

  3. Download the SteamCMD Update Tool - Linux Installer (MD5: b803e6adc6dd051039cbbfdd846d804d).
  4. Unpack it.

    tar zxf steamcmd.tar.gz

  5. Run the shell script:

    ./steam.sh

    This should make the ~/Steam directory and update the Steam framework.
    You can see extra info by using the help command:

    help

    Notice that you are in Steam prompt, since there is Steam> in front of the line.

  6. Log in with your Steam account created at the beginning:

    login <username> <password>

    You should see something like this on successful login

    Logging in user <username> to Steam Public...Success.

  7. If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):

    set_steam_guard_code yourcodehere
    login <username> <password>

Troubleshooting

  • On certain Linux distributions you will see error message that something cannot be found etc.

    Solution: Try this instead:

    STEAMEXE=steamcmd ./steam.sh

    If this still fails try:

    export LD_LIBRARY_PATH=/home/unreal/steamcmd/linux32/
    STEAMEXE=steamcmd ./steam.sh

  • On 64-bit systems you may get the following error:

    steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

    Solution: Install lib32stdc++6:
    • Debian-based systems:

      apt-get install lib32stdc++6

    • Red Hat-based systems:

      yum install libstdc++ libstdc++-4.4.6-4.el6.i686

Installing KillingFloor server

  1. For now it is assumed that your game server will be in /home/unreal/killingfloor (more about it in #Installation paths). You must tell SteamCmd to force install the game in that directory:

    force_install_dir /home/unreal/killingfloor

  2. Install game server. If you selected the directory that already contains the game, it will be updated:

    app_update 215360 validate

    Note: You must turn off the server before trying to update, otherwise it will fail.
    You should see progress of game server installation or update.

  3. Once finished, type quit at the Steam> prompt to properly log off of the Steam servers.


Now you may turn on the server.

Troubleshooting

  • I am getting the following error when I run app_update

    ERROR! Failed to request AppInfo update, not online or not logged into Steam

    Solution: Remove the Steam folder from root directory (rm -rf ~/Steam).

Automation

There are two ways to automate SteamCmd:

  • Via direct use of command prompt
  • Via use of a script

Command prompt

Simply enter the commands directly into command prompt, for example:

SteamCmd +login user password +force_install_dir /home/unreal/killingfloor +app_update 215360 validate

This will first login to Steam and try to update game server.

Using a script

Alternately, you can create a script that will perform a series of actions:

// update_kf_ds.txt
//
login user password
force_install_dir /home/unreal/killingfloor
app_update 215360 validate

exit

Now you can issue SteamCmd to execute the script:

SteamCmd +runscript /home/unreal/killingfloor/update_kf_ds.txt

Place the script anywhere you want, just make sure to update the paths when invoking SteamCmd +runscript.

Troubleshooting

  • I am getting errors.

    Solution: On some Linux distribution you may recieve errors with not loading some .so files, so try this (alter paths):

    #!/bin/bash
    DIR=/home/unreal/steamcmd
    export LD_LIBRARY_PATH="${DIR}/linux32:$LD_LIBRARY_PATH"
    cd ${DIR}/linux32
    ./steamcmd +runscript ${DIR}/update_kf_ds.txt

Installation paths

You can specify installation directory in various ways:

Windows

  • Absolute Path:

force_install_dir c:\KFServer\

  • Up one folder:

force_install_dir ..\KFServer\

  • In the Steam Command folder:

force_install_dir .\KFServer\

Linux

  • Absolute Path:

force_install_dir /home/unreal/killingfloor/

  • Up one folder:

force_install_dir ../killingfloor/

  • In the Steam Command folder:

force_install_dir ./killingfloor/

Beta versions

If Tripwire is currently running a beta update of the dedicated server files:

app_update 215350 -beta "branch name"

Where "branch name" is the current beta branch. Currently there is not a live dedicated server beta branch.

Starting the server

Use the batch file downloaded with the server or create your own. To launch a server with default settings on BioticsLab use the following batch script:

Windows

ucc server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6

Linux

./ucc-bin server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6 -nohomedir

Server ports

The following list of ports need to be open for a server to run successfully:

  • 7707 UDP/IP (Game Port)
  • 7708 UDP/IP (Query Port)
  • 7717 UDP/IP (GameSpy Query Port)
  • 28852 TCP/IP and UDP (Allows your Server to Connect to the Master Server Browser)
  • 8075 TCP/IP (Port set via ListenPort that your WebAdmin will run on)
  • 20560 UDP/IP (Steam Port)

Since the game is running with the Steam backend, if you are running more than 1 server per IP, you will need to make sure that you have some additional ports open beyond the default KF ports. If you change the default Game Port from 7707, this change will be reflected in the Master Server Port (28852) and the Steam Port (20560) as well.

You must also change OldQueryPortNumber=7717 under [IpDrv.UdpGamespyQuery] in the KillingFloor.ini to match the increase of the 7707 port. So if you change 7707 to 7807, then 7717 would change to 7817. If this is not done, the server will crash when starting.

Advanced admin settings

Admins looking to made changes from the default settings will find most options available in the Killingfloor.ini (or in WebAdmin once enabled in the Killingfloor.ini).

Server name and passwords

ServerName=Killing Floor Server

GamePassword=

Adminpassword=

Difficulty and Length

GameDifficulty=

Valid inputs:

  • 1.0 = Beginner - Your grandma can play the game
  • 2.0 = Normal - Quite challenging with lower level perks
  • 4.0 = Hard - Very challenging even with mid level perks
  • 5.0 = Suicidal - Incredibly difficult, even with high level perks
  • 7.0 = Hell on Earth - You'll be wishing you were one of them

KFGameLength=

Valid inputs:

  • 0 = Short - A 4 wave game
  • 1 = Normal - The standard 7 wave game
  • 2 = Long - The longer 10 wave game
  • 3 = Custom - uses the custom sandbox settings for waves, monster counts, etc (which i won't go into here, but we'll talk about in another post).

Map voting

In the [xVoting.XvotingHandler] section of the killingfloor.ini admins need to set bMapVote to true in order to enable map voting.

Admins can can also configure how soon a map can be re-voted for with RepeatLimit. The numerical value determined the number of previously played maps that should not be selectable. 0 - Map can be voted for right away. 4(Default) - Four maps must be played before the map becomes available again.

WebAdmin

To enable WebAdmin, admins need to locate the [UWeb.WebServer] section of the Killingfloor.ini and set bEnable to true.

The default webadmin port is 8075 and once enabled Admins can log into it by navigating to

YOUR_SERVER_IP:8075

in their favorite web browser and logging in with the admin name (default: admin if not set) and password.

In-game admin

When you're in game press your ~ key to open the command console and type:

adminlogin <yourpassword>

This will log you in as admin and will give you access to admin commands such as map, kick, and ban.