Nl/SteamCMD

De Steam Console Client of SteamCMD is een nieuw hulpmiddel om dedicated servers te installeren en te updaten via de opdrachtregel. Het systeem werkt alleen met games die zijn overgeschakeld op het SteamPipe bestandssysteem. Op den duur zullen alle games die gebruik maken van de HLDSUpdateTool overschakelen op SteamPipe.
== SteamCMD downloaden en uitvoeren ==
1. Download de SteamCMD Update Tool
:* Windows .zip archief
:* Linux: type wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
:: Als je gebruik maakt van een 64-bit Linux distro moet je de 32-bit libs installeren. Kijk hier voor informatie over hoe dit moet.
2. Pak de inhoud van het archief uit in een bestandsmap
: 
:* Linux: type tar -xvzf steamcmd_linux.tar.gz
3. Start SteamCMD voor de eerste keer op.
: Open een opdrachtprompt in de map waar SteamCmd staat
:* Windows: type steamcmd
:* Linux: type ./steamcmd.sh
Het programma zal zichzelf automatisch updaten en toont na het updaten een Steam> prompt. Typ help voor meer informatie.
Voor de meeste gameservers kan je anoniem inloggen
 login anonymous
Mocht anoniem inloggen niet werken voor een bepaalde game, dan zal je in moeten loggen met je Steam account.
 login <username>
Voer je wachtwoord in. Kijk daarna in je e-mail voor je Steam Guard toegangscode en voer hem in (dit hoeft maar een keer per computer).
Er komt een melding in beeld waarop staat dat je succesvol bent ingelogd.
== Een app downloaden ==
1. Start SteamCMD en stel SteamCMD in op je app installatiefolder. (hint: gebruik voorwaarde slashes (/) op Linux en backslashes (\) op Windows)
 force_install_dir <path>
: Voorbeeld: cs_go bestandsmap in de huidige map:
 force_install_dir ./cs_go/
2. Installeer of update de app. <app_id> is de Steam Application ID. Om de te installeren of the updaten app ook te valideren voeg je validate te aan het commando.
 app_update <app_id>
: Voorbeeld: instaleer en valideer CS:GO:
 app_update 740 validate
: Voorbeeld: installeeer en valideer de beta versie van HDLS (CS 1.6):
 app_update 90 -beta beta validate
: Voorbeeld: Installeer en valideer een prerelease versie van CS:S:
 app_update 232330 -beta prerelease validate
: Voorbeeld: Installeer en valideer CS:CZ:
 app_set_config 90 mod czero
 app_update 90 validate
3. Wanneer je klaar bent met de SteamCMD, type quit om de SteamCMD netjes af te melden bij de Steam Servers en om het programma te sluiten.
=== Supported Servers ===
Onderstaande lijst vereist steamcmd om te worden geïnstalleerd. Eventuele extra commando's moeten voor de app_update regel.
Server 	ID 	Extra commando's
HLDS for Half-Life and Counter-Strike 	90 	
Counter-Strike: Condition Zero dedicated server 	90 	+app_set_config 90 mod czero
Deathmatch Classic dedicated server 	90 	+app_set_config 90 mod dmc
Day of Defeat dedicated server 	90 	+app_set_config 90 mod dod
Half-Life: Opposing Force dedicated server 	90 	+app_set_config 90 mod gearbox
Ricochet dedicated server 	90 	+app_set_config 90 mod ricochet
Team Fortress Classic dedicated server 	90 	+app_set_config 90 mod tfc
Counter-Strike: Global Offensive dedicated server 	740 	
Garry's Mod dedicated server 	4020 	
Nuclear Dawn dedicated server 	111710	
Red Orchestra: Ostfront 41-45 dedicated server 	223240	
Red Orchestra 2: Heroes of Stalingrad and Rising Storm dedicated server	212542	
Red Orchestra: Rising Storm beta dedicated server 	238690	
Killing Floor Windows dedicated server 	215350	
Killing Floor Linux dedicated server 	215360	
Team Fortress 2 dedicated server 	440 	
Day of Defeat: Source dedicated server 	232290	
Counter-Strike: Source dedicated server 	232330	
Half-Life 2: Deathmatch dedicated server 	232370	
The Ship dedicated server 	2403 	
== Automatische SteamCMD ==
Er zijn twee manieren om SteamCMD te automatiseren. (vervang steamcmd door./steamcmd.sh op Linux)
1. Voeg commando's toe aan de SteamCMD opdrachtregel, voorbeeld:
 steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
Om een specifieke mod voor HL1 te installeren, zoals Counter-Strike: Condition Zero:
 steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 validate +quit
Voor een game waarvoor je moet inloogen, zoals Killing Floor
 steamcmd +login <username> <password> +force_install_dir c:\KFServer\ +app_update 215350 validate +quit
2. Maak een script
: a. Stop je SteamCMD commando's in een tekstbestand. Voorbeeld:
// update_csgo_ds.txt
//
@ShutdownOnFailedCommand 1 //maak hier 0 van als je meerdere server installeert
@NoPromptForPassword 1
login <gebruikersnaam> <wachtwoord>
//voor servers waarvoor je niet hoeft in te loggen
//login anonymous 
force_install_dir ../csgo_ds
app_update 740 validate
quit
: b. Voer SteamCMD uit met de +runscript optie. Voorbeeld:
 steamcmd +runscript csgo_ds.txt
== Voorbeeld Batchcode voor Windows ==
::=======================::
:: SteamCMD Guardian 1.2 ::
:: ckynick254 ::
::=======================::
set programname=SteamCMD Guardian 1.1
::=======================::
:: STEL WAARDEN IN! ::
::=======================::
set servername=
set username=
set password=
::=======================::
:: Servermap ::
:: Vervang achter = ::
::=======================::
set runcmd=E:\Games\
::=======================::
:: Einde van variabelen ::
::=======================::
:: Dit houd het scherm mooi leesbaar
@ECHO off
:: Stel de titel van het scherm in
title %programname% - %servername%
:: Leegt het scherm, mocht er iets staan
cls
COLOR 1f
CD %runcmd%
:: Geeft aan dat het programma is gestart
ECHO %programname% is gestart
:start
ECHO.
ECHO.
ECHO ##############################################################
ECHO # Dedicated Server #
ECHO # 1 - Half-Life: Deathmatch en Counter-Strike #
ECHO # 2 - Counter-Strike: Global Offensive #
ECHO # 3 - Nuclear Dawn Dedicated Server #
ECHO # 4 - Red Orchestra Dedicated Server #
ECHO # 5 - Red Orchestra 2: Heroes of Stalingrad Dedicated Server #
ECHO # 6 - Killing Floor Dedicated Server #
ECHO # 7 - Team Fortress 2 Dedicated Server Beta #
ECHO # 8 - HELP! #
ECHO # 9 - Afsluiten #
ECHO ##############################################################
ECHO.
ECHO.
:: Delete variable %A%
SET "A="
SET /P A=Kies het nummer van je keuze en druk op [ENTER]
ECHO Laden.........
IF "%A%"=="1" set app=90 
IF "%A%"=="2" set app=740
IF "%A%"=="3" set app=111710
IF "%A%"=="4" set app=223240
IF "%A%"=="5" set app=212542
IF "%A%"=="6" set app=215350
IF "%A%"=="7" set app=229830
IF "%A%"=="8" START https://developer.valvesoftware.com/wiki/SteamCMD:nl
IF "%A%"=="8" goto start
IF "%A%"=="9" EXIT
:: Dit is een terugkeerpunt, mocht de server vastlopen
:restart
ECHO.
ECHO (%date%)(%time%) %servername% is nu ONLINE
ECHO %servername% wordt in de gaten gehouden voor eventuele crashes
>> "%servername%.log" ECHO.
>> "%servername%.log" ECHO (%date%)(%time%) %servername% is nu ONLINE
>> "%servername%.log" ECHO (%date%)(%time%) %servername% wordt in de gaten gehouden voor eventuele crashes
::Start het daadwerkelijke updatescherm
start /wait steamcmd +login %username% %password% +force_install_dir %runcmd%%app%Server\ +app_update %app% validate
ECHO (%time%) WAARSCHUWING: srcds was afgesloten of is gecrasht. Herstarten...
ECHO.
ECHO (%date%)(%time%) Crash or Close detected!
ECHO %servername% wordt opnieuw opgestart...
>> "%servername%.log" ECHO.
>> "%servername%.log" ECHO (%date%)(%time%) Server gecrasht of afgesloten.
>> "%servername%.log" ECHO (%date%)(%time%) %servername% start nu opnieuw op...
::De server is gestopt, dus we gaan terug naar het terugkeerpunt
GOTO restart
= Bekende problemen =
== 32-bit libraries op 64-bit Linux systemen ==
Omdat SteamCMD een 32-bit programma is, zijn er enkele 32-bit libraries vereist, zelfs als je al het 64-bit equivalent van deze libraries hebt.
De foutmelding die bij dit probleem hoort:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
De oplossingen zijn distrospecifiek:
=== Debian en afgeleide (Ubuntu, Mint) ===
 apt-get install ia32-libs
Als je de volgende foutmelding krijgt:
The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installableE: Unable to correct problems, you have held broken packages.
Doe dan het volgende
 dpkg --add-architecture i386
 apt-get update
 apt-get install ia32-libs
=== Red Hat en afgeleide (RHEL, Fedora, CentOS) ===
 yum install glibc.i686 libstdc++.i686
=== Arch Linux ===
Vergeet niet om eerst de multilib repository aan te zetten.
 pacman -S lib32-gcc-libs
== Login Failure: No Connection ==
Op Linux server kan je de volgende fout tegenkomen: "Login Failure: No Connection". Dit komt door ontbrekende iptables regels. Je kan dit oplossen door iets in de trend van het volgende te doen:
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
Een lijst met poorten is hier: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
Op Windows Servers kan je het volgende krijgen: "SteamUpdater: Error: Download failed: http error 0", dit is meestal te repareren door "Automatically detect settings" (of "Instellingen automatisch detecteren") aan te vinken bij de LAN instellingen van de Internet Instellingen.
== SteamCmd opstartfouten ==
=== Ulimit linux startup error ===
Sommige gebruikers kunnen ulimit meldingen krijgen (geen rechten/kan bestand niet openen) terwijl het script aan het opstarten is. Deze fout wordt veroorzaakt door een te lage -n-parameter in ulimit. SteamCmd gebruikt standaard commando's om ulimit automatisch aan te passen maar sommige servers kunnen dit om veiligheidsreden blokkeren (meestal ingesteld door administrator/root).
Het probleem lost op door ulimit te verhogen tot ten minste 2048: ulimit -n 2048. Het kan zijn dat je permissiefouten krijgt (no permission), dus het kan zijn dat dit als root moet worden gedaan.
Om de instelling na te kijken, typ je: ulimit -a. Je krijgt een grote response, je moet dan zoeken naar:
 open files (-n) 1024
"1024" is de waarde van de instelling van het systeem.
Category:Dutch