Dedicated Server (KillingFloor): Difference between revisions

From Tripwire Interactive Wiki
Jump to navigation Jump to search
No edit summary
(Wrong page, my searching skills are bad.)
 
(12 intermediate revisions by 8 users not shown)
Line 1: Line 1:
= About =
== About ==
SteamCMD Update Tool is a new method 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==
 
===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>
 
{{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}}
 
===Installing KillingFloor server===
 
# 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>
# 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/>
# 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 (rd /s c:\Steam).
{{troubleshoot end}}
 
===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:
 
<blockquote><code>SteamCmd +login user password +force_install_dir c:\KFServer\ +app_update 215350 validate</code></blockquote>
 
This will first login to Steam and try to update game server.
 
====Using a script====


''- 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.''
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>


''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.''
Now you can issue SteamCmd to execute the script:


''- Alfred''
<blockquote><code>SteamCmd +runscript C:\SteamCmd\update_kf_ds.txt</code></blockquote>


{{Notice
Place the script anywhere you want, just make sure to update the paths when invoking ''SteamCmd +runscript''.
|title=WARNING
|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.
}}


=Windows=
==Linux==
==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.
* 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):
===Installing SteamCmd ===
set_steam_guard_code yourcodehere
login username password


==Installing KillingFloor server==
# 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.
{{Notice
# Create installation directory for SteamCmd, example ''home/unreal/steamcmd'':<br/><blockquote><code>mkdir -p /home/unreal/steamcmd<br/>cd /home/unreal/steamcmd</code/></blockquote>
|title=Turn off server when trying to update it
# Download the SteamCMD Update Tool - [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz Linux Installer] ''(MD5: b803e6adc6dd051039cbbfdd846d804d)''.
|text=Remember to turn off game server when trying to run game server update - otherwise it will fail.
# 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>


* 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
{{troubleshoot end}}
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


===Installing KillingFloor server===


{{Notice
# 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>
|title=Error recieved
# 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/>
|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)
# 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}}


You should see progress of game server installation or update.
===Automation===
* Once finished, type '''quit''' at the '''Steam>''' prompt to properly log off of the Steam servers.
* Now you may turn on server again.


==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
 
====Command prompt====
 
Simply enter the commands directly into command prompt, for example:


It should first login to steam and try to update game server.
<blockquote><code>SteamCmd +login user password +force_install_dir /home/unreal/killingfloor +app_update 215360 validate</code></blockquote>


=== Use script===
This will first login to Steam and try to update game server.
*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:
====Using a script====
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.
Alternately, you can create a script that will perform a series of actions:


=Linux=
<blockquote><code>
==Installing SteamCmd ==
// update_kf_ds.txt<br/>
* 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.
//<br/>
* Create installation dir just for new SteamCMD, example: /home/unreal/steamcmd
login user password<br/>
mkdir -p /home/unreal/steamcmd
force_install_dir /home/unreal/killingfloor<br/>
cd /home/unreal/steamcmd
app_update 215360 validate<br/>
* Download the SteamCMD Update Tool [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz Linux Installer]
exit</code></blockquote>
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
Now you can issue SteamCmd to execute the script:
./steam.sh
Notice, it should make ~/Steam directory


{{Notice
<blockquote><code>SteamCmd +runscript /home/unreal/killingfloor/update_kf_ds.txt</code></blockquote>
|title=Errors?
|text=
On certain Linux distributions you will see error message that something cannot be found etc, then try this instead
STEAMEXE=steamcmd ./steam.sh
if this still fails try:
export LD_LIBRARY_PATH=/home/unreal/steamcmd/linux32/
STEAMEXE=steamcmd ./steam.sh
}}
* For 64-bit Systems:


you may get the following error error
Place the script anywhere you want, just make sure to update the paths when invoking ''SteamCmd +runscript''.


<code><pre>steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory</pre></code>                                                                                                                                                    
{{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}}


To fix this install lib32stdc++6
==Installation paths==


* For Debian based systems
You can specify installation directory in various ways:


<code><pre>apt-get install lib32stdc++6</pre></code>
===Windows===


* For Red Hat based systems
* Absolute Path:
<blockquote><code>force_install_dir c:\KFServer\</code></blockquote>


<code><pre>yum install libstdc++ libstdc++-4.4.6-4.el6.i686</pre></code>
* Up one folder:
<blockquote><code>force_install_dir ..\KFServer\</code></blockquote>


* You can see extra info by using help command
* In the Steam Command folder:
help
<blockquote><code>force_install_dir .\KFServer\</code></blockquote>
* Notice that you are in Steam prompt, there is ''Steam>'' in front of the line


===Linux===


* Absolute Path:
<blockquote><code>force_install_dir /home/unreal/killingfloor/</code></blockquote>


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


It should update the Steam framework, then you should be able to run it in order to install games.
* 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
* 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==
If Tripwire is currently running a beta update of the dedicated server files:
{{Notice
<blockquote><code>app_update 215350 -beta "branch name"</code></blockquote>
|title=Turn off server when trying to update it
Where "branch name" is the current beta branch.  Currently there is not a live dedicated server beta branch.
|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
== Starting the server ==
force_install_dir /home/unreal/killingfloor
* Now we install game server, if you selected the directory that already contains the game, it will be updated:
app_update 215360 validate


{{Notice
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:
|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.
Windows
* Once finished, type '''quit''' at the '''Steam>''' prompt to properly log off of the Steam servers.
<blockquote><code>ucc server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6</code></blockquote>
* You can now turn on game server back online.


==Automation==
Linux
There are two ways to automate SteamCmd:
<blockquote><code>./ucc-bin server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6 -nohomedir</code></blockquote>
* all set in command prompt
* use script


===All in command prompt===
==Server ports==
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.
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)


=== Use script===
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.
*Create a script that will be executed by SteamCmd, it will be a simple .txt file, in /home/unreal/steamcmd/update_kf_ds.txt
// 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 script:
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.
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.
==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).


{{Notice
===Server name and passwords===
|title=Errors
|text=On some Linux distribution you may recieve errors with not loading some .so files, so try this (alter paths)


#!/bin/bash
<blockquote><code>ServerName=Killing Floor Server<br/>
DIR=/home/unreal/steamcmd
GamePassword=<br/>
export LD_LIBRARY_PATH="${DIR}/linux32:$LD_LIBRARY_PATH"
Adminpassword=</code></blockquote>
cd ${DIR}/linux32
./steamcmd +runscript ${DIR}/update_kf_ds.txt


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.
===Difficulty and Length===
}}


=force_install_dir Paths=
<blockquote><code>GameDifficulty=</code></blockquote>
You can specify installation directory in various ways:
==Windows==
*Absolute Path:
force_install_dir c:\KFServer\


*Up one folder:
Valid inputs:
force_install_dir ..\KFServer\
* 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


*In the Steam Command folder:
<blockquote><code>KFGameLength=</code></blockquote>
force_install_dir .\KFServer\
==Linux==
*Absolute Path:
force_install_dir /home/unreal/killingfloor/


*Up one folder:
Valid inputs:
force_install_dir ../killingfloor/
* 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).  


*In the Steam Command folder:
===Map voting===
force_install_dir ./killingfloor/
In the [xVoting.XvotingHandler] section of the killingfloor.ini admins need to set ''bMapVote'' to ''true'' in order to enable map voting.


=Beta versions=
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.
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.


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


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


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:
<blockquote><code>YOUR_SERVER_IP:8075</code></blockquote>
ucc server KF-bioticslab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6


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


=Server Ports=
===In-game admin===
The following list of ports need to be open for a server to run successfully:
When you're in game press your ~ key to open the command console and type:
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.
<blockquote><code>adminlogin <yourpassword></code></blockquote>


=Advanced Admin Settings=
This will log you in as admin and will give you access to admin commands such as ''map'', ''kick'', and ''ban''.
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==
[[Category:Killing Floor]]
ServerName=Killing Floor Server
GamePassword=
Adminpassword=

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.