Dedicated Server (KillingFloor)

From Tripwire Interactive Wiki
Revision as of 15:52, 14 July 2012 by KaszpiR (talk | contribs) (→‎Installing KillingFloor server: Given info to turn off server when trying to update server.)
Jump to navigation Jump to search

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

  • You can see extra infor by using help command
help
  • Notice that you are in Steam prompt, there is Steam> in front of the line


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


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

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

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