SteamCMD na Windows je jeden zip soubor: stáhni steamcmd.zip od Valve, rozbal ho do krátké cesty, například C:\steamcmd, a jednou spusť steamcmd.exe s parametrem +quit, aby se sám aktualizoval. Potom je každá instalace serveru stejný řádek - +force_install_dir s absolutní cestou, +login anonymous, +app_update <id> validate, +quit - který přesuneš do skriptového souboru, zavoláš z dávkového souboru a nakonec předáš Plánovači úloh pro aktualizace bez dozoru. Právě windowsové zvláštnosti jsou místa, kde se věci kazí: cesty s mezerami, složky pod Program Files nebo v tvém profilu, naplánovaná úloha běžící pod jiným uživatelem, než jakým jsi testoval, a Defender skenující při každé aktualizaci tisíce malých souborů. Tento článek se věnuje právě těmto částem. Samotné argumenty, tabulka chyb a princip app id jsou v článku SteamCMD explained a přepínání větví je v článku SteamCMD app IDs and beta branches.
Stažení SteamCMD a první spuštění#
Žádný instalátor neexistuje a nic se nepřidává do nabídky Start. Valve zveřejňuje zip s jediným malým spustitelným souborem a ten si zbytek stáhne sám.
- Vytvoř pro něj složku. Zaběhlá konvence je
C:\steamcmda krátká cesta se později hodí. - Stáhni
https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zipa rozbalsteamcmd.exedo té složky. - Otevři Příkazový řádek nebo PowerShell, přejdi do složky a spusť
steamcmd.exe +quit.
Stejné tři kroky z běžného (ne zvýšeného) okna PowerShellu:
PS> New-Item -ItemType Directory -Path C:\steamcmdPS> Invoke-WebRequest -Uri https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip ` -OutFile C:\steamcmd\steamcmd.zipPS> Expand-Archive C:\steamcmd\steamcmd.zip -DestinationPath C:\steamcmdPS> C:\steamcmd\steamcmd.exe +quitPrvní spuštění je samoaktualizace. SteamCMD ohlásí, že hledá aktualizace, stáhne své balíčky, rozbalí je a znovu se spustí, než se dostane k Loading Steam API...OK a promptu. Na běžném připojení to trvá minutu nebo dvě. Přesné řádky se mezi verzemi mění, ale vypadají zhruba takto:
[ 0%] Checking for available updates...[----] Downloading update (...)[----] Extracting package...[----] Installing update...[----] Cleaning up...[----] Update complete, launching Steamcmd...Loading Steam API...OKNech to dokončit. Přerušené první spuštění - zavřené okno nebo naplánovaná úloha, která vyprší - zanechá napůl rozbalený klient, který při dalším startu selhává matoucími způsoby. Pokud se to stane, smaž všechno ve složce kromě steamcmd.exe a spusť +quit znovu. Je to také standardní oprava pro SteamCMD, který po měsících bezchybného běhu začal při startu padat: bootstrapper si vše potřebné postaví od nuly a v těch souborech nic cenného neleží, pokud jsi neinstaloval servery do výchozího umístění (viz další sekce).
SteamCMD kontroluje vlastní aktualizace při každém spuštění, nejen při prvním. Když Valve vydalo nového klienta, tvá příští skriptovaná aktualizace stráví první minutu aktualizací SteamCMD, a teprve potom sáhne na hru. S tím počítej při nastavování časových limitů.
Runtime, které bude server chtít
SteamCMD samotné nepotřebuje nic navíc. Servery, které jím stahuješ, často ano. Mnoho dedikovaných serverů pro Windows je sestaveno proti Microsoft Visual C++ Redistributable a chybějící balíček se projeví tím, že se server odmítne spustit se zprávou o DLL, například VCRUNTIME140.dll nebo MSVCP140.dll. Některé starší servery nebo servery postavené na Unreal chtějí také součásti runtime DirectX. Jsou to požadavky konkrétních her, ne SteamCMD, takže se podívej do dokumentace serveru dané hry. Nainstalovat před prvním serverem aktuální x64 Visual C++ Redistributable od Microsoftu je rozumná výchozí volba na čerstvém Windows Serveru, který se dodává bez většiny věcí, které si desktop za ta léta nasbíral díky hrám.
Kam co patří: struktura složek#
Po prvním spuštění obsahuje C:\steamcmd několik desítek souborů a složek. Ty, které stojí za to znát:
| Path | Co obsahuje |
|---|---|
steamcmd.exe | Bootstrapper. Jediný soubor, který musíš zachovat |
package\ | Balíčky klienta ze samoaktualizace |
config\config.vdf | Nastavení a uložené přihlášení pro skutečné účty |
logs\ | Textové logy, včetně content_log.txt pro stahování |
steamapps\ | Výchozí umístění instalací a vlastní stav SteamCMD |
Dvě z nich si zaslouží poznámku. config\config.vdf je místo, kam SteamCMD ukládá přihlašovací údaje poté, co přihlášení skutečným účtem prošlo přes Steam Guard. Pro anonymní instalace je to jedno; u Arma 3 nebo DayZ je to soubor, který umožňuje aktualizace bez dozoru, a je třeba s ním zacházet jako s heslem. logs\content_log.txt zaznamenává s časovým razítkem každé stažení, každou změnu stavu a každé selhání. Když aktualizace přes noc selže a log samotného dávkového souboru neříká nic užitečného, přečti si tenhle.
Pokud nikdy nenastavíš +force_install_dir, servery skončí v C:\steamcmd\steamapps\common\<AppName>. Pro jeden server to funguje, pro několik je to nepohodlné: herní soubory leží uvnitř složky nástroje, oprava SteamCMD je musí obcházet a zálohy „serveru“ omylem zahrnou i klienta. Rozvržení, které zůstává přehledné, drží SteamCMD, servery a skripty odděleně:
C:\steamcmd\ SteamCMD onlyC:\servers\valheim\ one folder per server installC:\servers\satisfactory\C:\servers\scripts\ .txt runscripts, .cmd files, logsDrž kořen krátký a bez mezer. Windows má pro mnoho programů pořád limit 260 znaků na cestu, pokud nejsou dlouhé cesty zapnuté v zásadách a program to sám nepodporuje, a u herních serverů se na podporu spolehnout nedá. Položka z Workshopu několik složek hluboko v C:\Users\Administrator\Documents\Game Servers\... se tomuto limitu překvapivě blíží.
Vyhni se zejména třem místům:
- `C:\Program Files` a `C:\Program Files (x86)`. Zápis tam vyžaduje zvýšená oprávnění, takže buď každá aktualizace běží jako správce, nebo aktualizace uprostřed selže s chybou oprávnění.
- Tvůj uživatelský profil, včetně Plochy, Dokumentů a Stažených souborů. Naplánovaná úloha běžící pod jiným účtem je nevidí a Řízený přístup ke složkám v Defenderu, pokud je zapnutý, blokuje neznámým programům zápis do těchto složek.
- Složka synchronizovaná přes OneDrive. Synchronizační klienti zamykají a nahrávají soubory ve chvíli, kdy je SteamCMD nahrazuje, a herní server, který každých pár minut zapisuje svět, vyvolává nepřetržitý synchronizační provoz.
Každá instalace serveru má také vlastní steamapps\appmanifest_<appid>.acf s číslem nainstalovaného buildu. Podle toho souboru poznáš, na jaké verzi server běží; podrobně to rozebírá SteamCMD explained.
force_install_dir na Windows#
+force_install_dir přijímá absolutní cestu a na Windows jde hlavně o cesty a uvozovky.
C:\steamcmd\steamcmd.exe +force_install_dir C:\servers\valheim +login anonymous ^ +app_update 896660 validate +quitZnak ^ je pokračovací znak řádku v Příkazovém řádku a v dávkových souborech. V PowerShellu je pokračovacím znakem místo toho zpětný apostrof a v obou shellech je bezpečnější držet celý příkaz na jednom řádku, dokud nefunguje.
Na pořadí záleží. Novější buildy SteamCMD vypíšou varování v duchu „Please use force_install_dir before logon!“, pokud je +login první, a podle verze se adresář pak ignoruje a soubory jdou do výchozího umístění. Dej +force_install_dir jako první, potom +login, potom +app_update. Stejné pořadí platí uvnitř skriptových souborů.
Pokud cesta obsahuje mezeru, dej ji do uvozovek: +force_install_dir "C:\Game Servers\valheim". Uvozovky fungují, ale je to další věc, ve které se v dávkových souborech snadno udělá chyba, protože proměnná obsahující cestu v uvozovkách při použití získá druhý pár uvozovek. Jednodušší řešení je cesta bez mezer.
Nepoužívej relativní cesty. Relativní adresář se vyhodnocuje vůči složce samotného SteamCMD, ne vůči složce, ve které je tvůj dávkový soubor nebo shell, takže +force_install_dir ..\valheim skončí pokaždé jinde podle toho, kde SteamCMD leží. Špatným cílem je i mapovaný síťový disk: písmena disků platí pro konkrétní přihlašovací relaci, takže disk namapovaný v tvé desktopové relaci pro naplánovanou úlohu neexistuje, a SteamCMD přes SMB je pomalé a křehké, i když disk vidí.
Jedna složka SteamCMD zvládne spravovat libovolný počet instalací serverů, protože každá je samostatný force_install_dir. Nesmí ale běžet dvakrát současně. Dvě instance sdílejí package\, config\ i samoaktualizaci a druhé spuštění během toho, co se první aktualizuje, je spolehlivý způsob, jak klienta poškodit. Pokud se několik serverů aktualizuje podle plánu, aktualizuj je jeden po druhém v jediném skriptu nebo časově rozlož jejich úlohy tak, aby každá stihla doběhnout.
Skriptové soubory a +runscript#
Dlouhý příkazový řádek v dávkovém souboru se stane problémem při údržbě ve chvíli, kdy potřebuješ změnit jeden argument na šesti místech. SteamCMD proto umí číst příkazy z textového souboru, jeden na řádek, bez předpony +:
// Valheim dedicated server, app 896660@ShutdownOnFailedCommand 1@NoPromptForPassword 1force_install_dir C:\servers\valheimlogin anonymousapp_update 896660quitC:\steamcmd\steamcmd.exe +runscript C:\servers\scripts\update-valheim.txtŘádky začínající // jsou komentáře. Dva řádky s @ jsou nastavení: @ShutdownOnFailedCommand 1 zastaví skript u prvního selhaného příkazu místo pokračování k quit a @NoPromptForPassword 1 zabrání tomu, aby se běh bez dozoru věčně zasekl na výzvě k zadání hesla, na kterou nikdo neodpoví. Oba by měly být v každém skriptu, který běží bez tvé kontroly. Skript předávej s absolutní cestou, ze stejného důvodu jako u force_install_dir.
Všimni si, co ve skriptu není: validate. Běžná aktualizace stáhne jen změněné části; validate přečte a zahashuje celou instalaci a nahradí každý dodaný soubor, který jsi upravil. Drž druhý skript s validate pro opravy a spouštěj ho ručně, když ho potřebuješ. Zdůvodnění je v článku automating game server updates safely.
Do skriptového souboru můžeš dát i více aplikací. Několik dvojic force_install_dir a app_update může následovat za jedním login, což spustí aktualizace postupně v jednom spuštění SteamCMD a vyhne se problému se dvěma instancemi popsanému výše:
@ShutdownOnFailedCommand 1@NoPromptForPassword 1login anonymousforce_install_dir C:\servers\valheimapp_update 896660force_install_dir C:\servers\satisfactoryapp_update 1690800quitV tomto pořadí je login před adresářem, na což si stěžuje výše zmíněné varování. V praxi se pozdější řádky force_install_dir respektují pro app_update, který po nich následuje, ale chování se mezi verzemi SteamCMD měnilo, takže po prvním spuštění zkontroluj, kam soubory dopadly. Pokud ti varování vadí, spouštěj raději jeden skript na jeden server.
Dávkový soubor, který zastaví, aktualizuje a zkontroluje#
SteamCMD nemůže nahradit soubory, které běžící server drží otevřené. Aktualizace běžícího serveru buď selže s chybou o používaném souboru, nebo - hůř - napůl uspěje a zanechá instalaci, která při dalším startu spadne. Úkolem obalu je tedy: čistě zastavit server, aktualizovat, zkontrolovat výsledek, spustit server.
Tento příklad předpokládá, že server běží jako služba Windows s názvem Valheim (obvyklý způsob je NSSM - průvodce Valheim na Windows ho nastavuje se správným zastavením přes Ctrl+C, aby se svět uložil). net stop počká, až se služba zastaví, a teprve pak vrátí řízení, což je přesně to, co chceš.
@echo offsetlocalcd /d "%~dp0"set LOG=%~dp0update-valheim.logecho ==== %DATE% %TIME% ==== >> "%LOG%"net stop Valheim >> "%LOG%" 2>&1C:\steamcmd\steamcmd.exe +runscript "%~dp0update-valheim.txt" > "%~dp0last-run.log" 2>&1type "%~dp0last-run.log" >> "%LOG%"findstr /C:"Success! App '896660'" "%~dp0last-run.log" >nulif errorlevel 1 ( echo UPDATE FAILED - server left stopped >> "%LOG%" exit /b 1)net start Valheim >> "%LOG%" 2>&1exit /b 0Pár řádků potřebuje vysvětlení.
cd /d "%~dp0"přejde do složky, ve které je dávkový soubor.%~dp0se rozvine na tuto složku se zpětným lomítkem na konci. Plánovač úloh spouští úlohy vC:\Windows\System32, pokud mu neřekneš jinak, a každá relativní cesta ve skriptu, který „fungoval po dvojkliku“, se tam rozbije.- Kontrola úspěchu čte výstup SteamCMD, ne jeho návratový kód. Návratový kód se mezi verzemi neukázal jako spolehlivý signál a neúspěšné stahování může skončit kódem, který vypadá v pořádku. Řádek, který SteamCMD vypíše po úspěšné aktualizaci nebo instalaci, je
Success! App '<id>' fully installed.a když je vše aktuální, vypíšeSuccess! App '<id>' already up to date.Porovnání podle společné předpony přijme obojí. - Při selhání skript nechá server zastavený. Je to záměr. Spuštění serveru na napůl aktualizované instalaci riskuje poškození světa; když zůstane vypnutý, hráči si toho všimnou a někdo se na to podívá. U serveru, kde je výpadek horší než riziko, změň tuto větev tak, aby službu přesto spustila a dala ti vědět jiným způsobem.
%DATE%a%TIME%se formátují podle jazyka systému, takže z nich nesestavuj názvy souborů; formát se liší mezi počítači. Pokud chceš jeden log na každý běh, získej časové razítko z PowerShellu pomocíGet-Date -Format yyyyMMdd-HHmm.
Pokud server není služba, ale konzolové okno spuštěné z dávkového souboru, skript ho nemá jak čistě zastavit. Zavření okna nebo taskkill /F ukončí proces, aniž by se stihl uložit. Pokud chceš servery aktualizovat bez dozoru, provozuj je jako služby; je to jediné uspořádání, ve kterém „stop“ znamená čisté zastavení.
Plánované aktualizace přes Plánovač úloh#
Plánovač úloh je cron Windows. Dá se ovládat z grafického rozhraní (taskschd.msc) nebo z příkazového řádku přes schtasks, což se snáz dokumentuje a opakuje.
schtasks /Create /TN "Servers\Update Valheim" ^ /TR "C:\servers\scripts\update-valheim.cmd" ^ /SC WEEKLY /D MON /ST 05:00 /RU SYSTEM /RL HIGHESTTo vytvoří úlohu ve složce Servers, která běží každé pondělí v 05:00 pod vestavěným účtem SYSTEM s nejvyššími oprávněními. Hned ji otestuj a pak si přečti její poslední výsledek:
schtasks /Run /TN "Servers\Update Valheim"schtasks /Query /TN "Servers\Update Valheim" /V /FO LISTLast Result: 0 znamená, že dávkový soubor skončil s 0, což ve skriptu výše znamená, že byl nalezen řádek o úspěchu. 1 znamená, že proběhla vlastní větev skriptu pro selhání. Cokoli jiného - velké šestnáctkové číslo - obvykle znamená, že se úloha ke spuštění skriptu vůbec nedostala: špatná cesta v /TR nebo účet bez oprávnění ke složce.
Rozhodující je účet, pod kterým úloha běží.
| Běží jako | Vhodné pro | Na co si dát pozor |
|---|---|---|
SYSTEM | Anonymní instalace, služby | Plná kontrola nad počítačem |
| Vyhrazený lokální uživatel | Přihlášení skutečným účtem | Potřebuje práva ke složkám |
| Tvůj vlastní účet | Testování | Změna hesla úlohu rozbije |
SYSTEM je nejjednodušší: umí zastavovat a spouštět služby a zapisovat kamkoli. Je to ale také nejmocnější účet na počítači, takže skript, který spouští, by měl ležet ve složce, do které smějí zapisovat jen správci. Pro servery, které potřebují skutečné přihlášení do Steamu (Arma 3, DayZ), je čistší vyhrazený lokální uživatel. Přihlas se jednou jako on, spusť SteamCMD ručně a projdi Steam Guard, a uložené přihlášení v config\config.vdf pak naplánované úloze umožní přihlásit se bez promptu. Tento uživatel potřebuje práva Modify na C:\steamcmd a C:\servers, právo „Log on as a batch job“ (udělí se automaticky, když úlohu uložíš i s heslem) a právo ovládat službu, pokud ji skript zastavuje a spouští.
Možnosti, které stojí za to nastavit ve vlastnostech úlohy, ať běží pod jakýmkoli účtem:
- Run whether user is logged on or not. Jinak úloha běží, jen když je někdo přihlášen u konzole.
- Stop the task if it runs longer than nějaká rozumná hodnota, třeba dvě hodiny. Výchozí jsou tři dny, což zaseknuté SteamCMD dlouho skrývá.
- Do not start a new instance, pokud už úloha běží. Je to výchozí chování a brání překrytí dvou běhů SteamCMD.
- Run task as soon as possible after a scheduled start is missed. Hodí se, když se počítač v 05:00 restartoval kvůli aktualizacím Windows - i když kolizi týdenní aktualizace serveru s Patch Tuesday je lepší předem nepřipustit.
Jak často úlohu spouštět, záleží na serveru. Vanilkový server se může aktualizovat týdně nebo při každém restartu; server s módy by se v den herního patche neměl aktualizovat vůbec, protože aktualizace rozbije módy, dokud je jejich autoři nedoženou. Obnovu popisuje článek what to do when a mod update breaks a o tom, co dalšího patří do stejného plánu, je článek scheduled tasks worth having.
Výjimky pro Windows Defender#
Ochrana v reálném čase v Microsoft Defenderu skenuje soubory v okamžiku zápisu. Aktualizace jich zapisuje tisíce a validate čte každý soubor instalace, který Defender může znovu proskenovat. U velké instalace je to rozdíl mezi validací, která doběhne za pár minut, a takovou, která trvá mnohem déle. Defender také může čerstvě zapsaný soubor na chvíli držet otevřený, zatímco ho skenuje, což občas koliduje s tím, jak ho SteamCMD přesouvá na místo.
Vyloučení složky SteamCMD a složek serverů ze skenování odstraní obojí. Z okna PowerShellu spuštěného jako správce:
PS> Add-MpPreference -ExclusionPath "C:\steamcmd"PS> Add-MpPreference -ExclusionPath "C:\servers"PS> Get-MpPreference | Select-Object -ExpandProperty ExclusionPathPoslední řádek vypíše aktuální výjimky, takže si můžeš ověřit, že se uložily. Na počítači spravovaném přes Group Policy nebo Intune se lokální výjimky mohou ignorovat nebo přepsat a musí je nést samotná zásada.
Buď k sobě upřímný, co se obchodu týče. Výjimka znamená, že Defender se na nic v těch složkách nepodívá, včetně škodlivého pluginu, který ti někdo pošle, nebo módu stažného z webu, kterému jsi neměl věřit. Drž výjimky jen u složek, které je potřebují, nikdy nevylučuj složku se stahováním ani celý disk a plugin nebo mód proskenuj dřív, než ho dáš do vyloučené složky. Proč to není paranoia, vysvětluje malicious plugins and mods.
Výjimky v Defenderu jsou oddělené od Windows Defender Firewall. SteamCMD samotné potřebuje jen odchozí přístup k internetu, který Windows ve výchozím stavu povoluje. Herní server potřebuje příchozí pravidla pro své porty a při prvním spuštění se Windows zeptají, zda ho povolit v soukromých nebo veřejných sítích. Odpověz podle sítě, ve které server skutečně je, nebo si pravidla vytvoř sám přes New-NetFirewallRule - průvodce Valheim na Windows výše odkazovaný ukazuje obojí.
Řešení potíží se SteamCMD na Windows#
SteamCMD se po dvojkliku okamžitě zavře, nebo okno jen bliknutím zmizí. Pravděpodobně se aktualizovalo a znovu spustilo, nebo narazilo na chybu a skončilo. Spusť ho z otevřeného Příkazového řádku, aby výstup zůstal na obrazovce, a přečti si logs\bootstrap_log.txt.
`Failed to install app 'X' (Disk write failure)`. Cílová složka není zapisovatelná pro účet, pod kterým SteamCMD běží, nebo je plný disk. Pokud selhává jen z Plánovače úloh, zkontroluj nejdřív účet. U plného disku pamatuj, že aktualizace potřebuje volné místo navíc k existující instalaci - kolik, popisuje what to do when the disk is full.
`Failed to install app 'X' (Missing file permissions)` nebo odepřený přístup. Soubor v instalaci je používán (server pořád běží), je jen pro čtení, nebo patří účtu, který ho současný účet nemůže měnit. Zastav server a porovnej oprávnění složky s účtem, pod kterým úloha běží.
Aktualizace hlásí úspěch, ale server se nezměnil. Úloha spustila jiný skript, instalační adresář ve skriptu se liší od toho, ze kterého startuje služba, nebo force_install_dir přišlo po login a soubory skončily v C:\steamcmd\steamapps\common. Hledej tam druhou kopii serveru.
Last Result úlohy je nenulový, ale log je prázdný. Dávkový soubor se nespustil, nebo se spustil v System32 a log zapsal tam. Zkontroluj cestu v akci úlohy a řádek cd /d "%~dp0".
SteamCMD se u přihlášení v naplánované úloze zasekne. Čeká na heslo nebo kód Steam Guard, který nikdy nepřijde. Spusť SteamCMD jednou ručně pod účtem úlohy, aby se přihlášení uložilo, a nech ve skriptu @NoPromptForPassword 1, aby příští selhání skončilo místo zaseknutí.
Po aktualizaci Windows přestalo všechno fungovat. Obvykle to není SteamCMD. Ověř, že se služba po ruční akci pořád spustí a že úloha pořád existuje; potom smaž všechno v C:\steamcmd kromě steamcmd.exe a složky config (pokud používáš skutečný účet) a spusť +quit, aby se klient znovu postavil.
Když nechceš provozovat Windows vůbec#
Většina tohoto článku existuje proto, že Windows nebyly navrženy kolem nástrojů příkazového řádku bez dozoru, a každý krok výše - obaly služeb, účty úloh, výjimky v Defenderu - slouží k tomu, aby se tak chovaly. Některé servery existují jen jako windowsový build a pro ně se to vyplatí, případně stojí za přečtení Linux vs Windows for game servers a cesta přes Wine a Proton. U ostatních je otázka, jestli chceš ten počítač vůbec udržovat.
Na RE:NODE se krok SteamCMD spustí při vytvoření herního serveru, obvykle do minuty od připsání platby, a výstup instalace se objevuje řádek po řádku v konzoli. Proměnné hry a spouštěcí nastavení jsou pole na záložce Startup, takže není žádný skript k údržbě. Záložka Schedules spouští úlohy ve stylu cronu s uspořádanými kroky - záloha, potom restart, se zpožděním mezi nimi - což pokrývá práci, kterou výše dělá Plánovač úloh; návody ukazují, jak se to nastavuje. Hry, které potřebují tvé vlastní přihlášení do Steamu, čekají na záložce Setup, dokud ho nepřidáš.
FAQ#
Musím spouštět SteamCMD jako správce?
Ne, pokud on i složky serverů leží někde, kam účet může zapisovat, například C:\steamcmd a C:\servers. Potřeba oprávnění správce je obvykle znamením, že soubory leží pod Program Files. Jediná část tohoto nastavení, která vyžaduje zvýšená oprávnění, je přidání výjimek v Defenderu a vytváření úloh běžících jako SYSTEM.
Můžu místo SteamCMD použít knihovnu Tools v klientovi Steam?
U některých serverů ano: dedikované servery uvedené v Tools v knihovně Steamu se instalují jako každá jiná hra. Vyžaduje to ale celého klienta Steam přihlášeného na počítači a aktualizuje se, kdykoli se Steam rozhodne, což se hodí pro domácí PC, na kterém se i hraje. Počítač, který jen provozuje servery, je lépe obsloužen SteamCMD, které žádnou desktopovou relaci nepotřebuje.
Kde jsou logy SteamCMD na Windows?
Ve složce logs uvnitř adresáře SteamCMD, například C:\steamcmd\logs. content_log.txt zaznamenává stahování a selhání instalace a je prvním souborem, který si přečíst, když aktualizace selže. Log tvého dávkového souboru je samostatný a obsahuje jen to, co do něj přesměruješ.
Můžu z Windows stáhnout linuxový build serveru?
Ano. Přidej @sSteamCmdForcePlatformType linux na začátek skriptu před login. Soubory se stáhnou, ale na Windows nepoběží; hodí se to pro přípravu instalace, kterou zkopíruješ na linuxový počítač nebo do správce souborů hostingu.
Jak SteamCMD odinstaluji?
Smaž jeho složku a smaž také naplánované úlohy a výjimky v Defenderu, které jsi pro něj vytvořil. SteamCMD nezapisuje do registru ani neinstaluje vlastní služby. Instalace serverů v jiných složkách zůstanou nedotčené a dál fungují; jen přijdou o svůj aktualizátor.
Proč aktualizace trvá déle při každém vydání nového SteamCMD?
Protože se SteamCMD před spuštěním tvých příkazů aktualizuje, kdykoli Valve vydá nového klienta. První naplánovaný běh po vydání klienta tím stráví víc času. Je to normální a je to důvod, proč má být časový limit úlohy štědrý.


