Dedicated Server (KillingFloor)

From Tripwire Interactive Wiki
Revision as of 17:32, 23 October 2012 by Yoshiro (talk | contribs)
Jump to navigation Jump to search

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: - 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 setup a local HTTP proxy to cache all steamcmd requests, making updates from multiple machines stay on your local network.

- Alfred

Notice: WARNING

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

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 - Windows Installer

MD5SUM

1aa2b3206b9626f20dface42b9bcf7f0 *steamcmd.zip
  • 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):
set_steam_guard_code yourcodehere
login username password

Installing KillingFloor server

Notice: Turn off server when trying to update it

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


Notice: Error recieved

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)


You should see progress of game server installation or update.

  • 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:

  • all set in command prompt
  • use script

All in command prompt

Add commands to the command line. Example:

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.

Use script

  • 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:
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.

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.
  • Create installation dir just for new SteamCMD, example: /home/unreal/steamcmd
mkdir -p /home/unreal/steamcmd
cd /home/unreal/steamcmd
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:

b803e6adc6dd051039cbbfdd846d804d *steamcmd.tar.gz
  • Unpack it
tar zxf steamcmd.tar.gz
  • run the command
./steam.sh

Notice, it should make ~/Steam directory

Notice: Errors?

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

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

To fix this install lib32stdc++6

  • For Debian based systems
apt-get install lib32stdc++6
  • For Red Hat based systems
yum install libstdc++ libstdc++-4.4.6-4.el6.i686
  • 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



It should update the Steam framework, then you should be able to run it in order to install games.

  • 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):
set_steam_guard_code yourcodehere
login username password

Installing KillingFloor server

Notice: Turn off server when trying to update it

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
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: Error recieved

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.

  • 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

There are two ways to automate SteamCmd:

  • all set in command prompt
  • use script

All in command prompt

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.

Use script

  • 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:
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.


Notice: Errors

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

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.


force_install_dir 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:

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


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.

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=