SteamCMD
O Console do Cliente Steam ou SteamCMD é uma versão de linha de comando do cliente Steam. Seu principal uso é instalar e atualizar vários servidores dedicados disponíveis no Steam usando uma interface de linha de comando. Funciona com jogos que usam o sistema de conteúdo SteamPipe . Todos os jogos foram migrados da ferramente obsoleta HLDSUpdateTool para o SteamCMD.
Baixando o SteamCMD
Windows
1. Crie uma pasta para o SteamCMD.
Por exemplo
C:\steamcmd
2. Faça o download do SteamCMD para Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
3. Extraia o conteúdo do zip para a pasta.
Linux
Crie uma conta de usuário chamada steam tpara executar o SteamCMD com segurança, isolando-o do resto do sistema operacional. Não execute o steamcmd enquanto estiver operando como usuário root - isso é um risco de segurança.
1. Como usuário root, crie o usuário steam:
useradd -m steam
2. Vá para sua pasta inicial:
cd /home/steam
Pacote de repositórios
1. É recomendado instalar o pacote SteamCMD a partir dos seus repositórios de distribuição, se disponível:
Ubuntu/Debian
sudo apt-get install steamcmd
RedHat/CentOS
yum install steamcmd
Para o Arch Linux: instale steamcmd do AUR.
2. Vincule o executável do steamcmd:
ln -s /usr/games/steamcmd steamcmd
Manualmente
1. Antes de começar, você deve primeiro instalar as dependências necessárias para executar o SteamCMD:
Ubuntu/Debian 64-Bit
sudo apt-get install lib32gcc1
RedHat/CentOS
yum install glibc libstdc++
RedHat/CentOS 64-Bit
yum install glibc.i686 libstdc++.i686
2. Como usuário root, escalonar para o usuário de steam:
su - steam
Se você não estiver efetuando login como root e usar sudo
a administração para escalonar para o usuário steam da seguinte maneira:
sudo -iu steam
3. Crie um diretório para o SteamCMD e mude para ele.
mkdir ~/Steam && cd ~/Steam
4. Faça o download e extraia o SteamCMD para Linux.
curl -sqL
"https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
OS X
1. Abra o Terminal.app e crie um diretório para o SteamCMD.
mkdir ~/Steam && cd ~/Steam
2. Faça o download e extraia o SteamCMD para o OS X.
curl -sqL
"https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz" | tar zxvf -
Executando o SteamCMD
Na primeira execução, o SteamCMD atualizará automaticamente e entrará em você em um promptSteam>
. Digite help
para mais informações.
Windows
Abra um prompt de comando e inicie o SteamCMD.
cd C:\steamcmd steamcmd
Linux/OS X
Abra um terminal e inicie o SteamCMD.
Se você instalou usando o pacote de repositórios:
cd ~ steamcmd
Se você instalou manualmente:
cd ~/Steam ./steamcmd.sh
Login no SteamCMD
Anônimo
Para baixar a maioria dos servidores de jogos, você pode fazer o login anonimamente.
login anonymous
Com uma conta Steam
Alguns servidores exigem que você faça o login com uma conta Steam.
login <username>
Em seguida, digite sua senha.
Se o Steam Guard estiver ativado na conta do usuário, verifique seu e-mail em busca de um código de acesso do Steam Guard e insira-o. Isto é requerido apenas na primeira vez que você efetua login (assim como quando você exclui os arquivos onde o SteamCMD armazena as informações de login).
Você deverá ver uma mensagem informando que fez login com sucesso em sua conta.
Baixando um aplicativo
1. Inicie o SteamCMD e faça o login.
2. Defina seu diretório de instalação do aplicativo. (Nota: use barras para o Linux / OS X e barras invertidas para o Windows.)
force_install_dir <path>
por exemplo, um diretório chamado cs_go
dentro do diretório atual:
force_install_dir ./cs_go/
Para Windows: force_install_dir c:\cs_go\
3. Instale ou atualize o aplicativo usando o comando app_update
(sfornecendo um ID de aplicativo do Steam ). Por favor, verifique aqui a lista de servidores dedicados: Lista de servidores dedicados . Para validar também o aplicativo, adicione o comando validate
. Para baixar uma branch(ramificação) beta, use a opção -beta <betaname>
– Por exemplo, a branch(ramificação) beta do HLDS é chamada beta
e a branch(ramificação) do SrcDS é chamada de prerelease
. Algumas branches(ramificações) são protegidas por senha; para poder fazer o download a partir delas, adicione também a opção -betapassword <password>
.
app_update <app_id> [-beta <betaname>] [-betapassword <senha>] [validate]
O HLDS é um caso especial: o ID do aplicativo é sempre 90 e um mod
deve ser escolhido primeiro. Isso é feito configurando a opção de configuração do aplicativo modpara o valor solicitado.
app_set_config <app_id> <option_name> <option_value>
- Exemplo: Instale e valide o servidor dedicado do Counter-Strike: Global Offensive:
app_update 740 validate
- Exemplo: Instale e valide o HLDS com o Team Fortress Classic:
app_set_config 90 mod tfc app_update 90 validate
app_update antes que todos os arquivos necessários sejam instalados com sucesso. Basta executar app_update 90 validate
várias vezes até que não ocorram mais atualizações. [todo tested in?]
- Exemplo: Instale e valide a versão beta do HLDS (Half-Life):
app_update 90 -beta beta validate
- Exemplo: instale e valide a instalação do servidor dedicado do Counter-Strike: Source:
app_update 232330 -beta prerelease validate
- Exemplo: instalar e validar uma versão beta privada do servidor dedicado Natural Selection 2 (nome
alpha
, senha natsel
):
- [beta name] is the name of the private beta branch
- [beta code] is the password for the private beta branch
app_update 4940 -beta alpha -betapassword natsel validate
3. Uma vez terminado, digite quit
para fazer logoff corretamente dos servidores Steam.
quit
Validar
validate
Validate é um comando que verificará todos os arquivos do servidor para garantir que correspondam aos arquivos do SteamCMD. Este comando é útil se você acha que os arquivos podem estar ausentes ou corrompidos.
Nota:A validação substituirá todos os arquivos que foram alterados. Isso pode causar problemas com servidores personalizados. Por exemplo, se você personalizar mapcycle.txt
, esse arquivo será substituído pelo padrão do servidor. Todos os arquivos que não fazem parte da instalação padrão não serão afetados.
É recomendado que você use este comando somente na instalação inicial e se houver problemas no servidor.
Servidores Suportados
Uma lista de servidores conhecidos que usam o SteamCMD para instalar está disponível na página Lista de servidores dedicados . Note que qualquer comando extra listado precisa ser executado antes da linha app_update.
Automatizando o SteamCMD
Existem duas maneiras de automatizar o SteamCMD. (Substitua steamcmd
por ./steamcmd.sh
no Linux/OS X.)
Linha de comando
Nota:Ao usar a -betaopção
na linha de comando, ela deve ser citada de maneira especial, como +app_update "90 -beta beta"
.
Nota:Se isso não funcionar, tente colocá-lo como em seu lugar "+app_update 90 -beta beta"
.
Acrescente os comandos à linha de comando prefixados com mais caracteres, por exemplo:
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit
Para instalar um mod de jogo específico para HL1, como Counter-Strike: Condition Zero:
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
Para um jogo que requer logins, como Killing Floor:
steamcmd +login <username> <password> +force_install_dir c:\KFServer\ +app_update 215350 +quit
Criando um script
1. Coloque seus comandos do SteamCMD em um arquivo de texto. (Você pode adicionar comentários que começam com //
.) Exemplo:
// update_csgo_ds.txt
//
@ShutdownOnFailedCommand 1 //definido como 0 se atualizar vários servidores de uma só vez
@NoPromptForPassword 1
login <username> <password>
//para servidores que não precisam de login
//login anônimo
force_install_dir ../csgo_ds
app_update 740 validate
quit
2. Execute o SteamCMD com a +runscriptopção
, referindo-se ao arquivo que você criou anteriormente. Exemplo:
steamcmd +runscript csgo_ds.txt
Instalação entre plataformas
É possível escolher a plataforma para a qual o SteamCMD deve baixar arquivos, mesmo que não seja a plataforma em que está atualmente sendo executada. Isso é feito usando a variavel @sSteamCmdForcePlatformType
. (Sim, esses são dois "s" no início do nome da variável.) For example, Por exemplo, para baixar o servidor dedicado do Windows CSGO no Linux, você pode executar o seguinte comando:
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
ou use o seguinte script:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit
Os valores são suportados são windows
, macos
e linux
.
Windows Software/Scripts
condenser
o condenser é um bootstrapper para instalar, configurar e iniciar aplicativos de servidor dedicados do Steam.
SteamCMD AutoUpdater
Instalar e atualizar automaticamente qualquer servidor de jogo
GitHub Repo:
https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver
SteamCMD GUI
Esta ferramenta permite ao usuário usar o SteamCMD no Windows sem linhas de comando e / ou arquivos em lote.
GitHub Repo:
https://github.com/DioJoestar/SteamCMD-GUI
SteamCMD Guardian 1.2
Veja e faça o download aqui: http://pastebin.com/BRUbsGQh
Linux Scripts
Linux Game Server Managers
O LinuxGSM é a ferramenta de linha de comando para implementação e gerenciamento rápidos e simples de servidores de jogos dedicados, usando o SteamCMD.
Recursos
- Cópia de segurança
- Console
- Detalhes
- Instalador (SteamCMD)
- Monitor
- Alertas (Email, Pushbullet)
- Atualização (SteamCMD)
- Iniciar / Parar / Reiniciar servidor
Servidores Suportados
Existem agora mais de 70 servidores de jogos diferentes suportados e em ascensão. Para uma lista completa, visite o site
Links
Website: https://gameservermanagers.com
GitHub Repo: https://github.com/GameServerManagers/LinuxGSM
SteamCMD Guardian 1.2
O seguinte script foi testado no Debian Wheezy.
Veja e faça o download aqui:
http://pastebin.com/hcpMpmaZ
Instalação
Para fazer este script funcionar, precisamos de um local. De preferência você criou um usuário (por exemplo, steam) com seu próprio diretório pessoal (/home/steam) e está logado como via SSH, tty ou usando su.
- Faça o arquivo.
nano updateserver.sh
- Cole o código
- Modifique o código, adicione pelo menos 1 jogo as linhas
DL_SV*=
.
- Feche o arquivo Ctrl+O, seguido por ↵ Enter e concluindo com Ctrl+X.
- Give the file execute rights for the user
chmod u+x ./updateserver.sh
- Run the file
./updateserver.sh
O arquivo irá baixar automaticamente o SteamCMD, atualizá-lo e instalar todos os jogos escolhidos (até 4). Execute o arquivo novamente para atualizar os jogos.
Problemas Conhecidos
ERROR! Failed to install app 'xxxxxx' (No subscription)
ISe você receber o erro 'No subscription',o jogo/servidor que você está tentando baixar requer um login ou que você compre o jogo. Você terá que fazer o login com um nome de usuário e senha Steam - se isso não ajudar, talvez seja necessário adquirir uma cópia do jogo no Steam primeiro Veja Lista de servidores dedicados .
Nota:Por razões de segurança, é recomendável que você crie uma nova conta Steam apenas para seus servidores dedicados.
Por exemplo
steamcmd +login <username> <password>
Bibliotecas de 32 bits em sistemas Linux de 64 bits
Como o SteamCMD é um binário de 32 bits, são necessárias bibliotecas de 32 bits.
O seguinte erro pode ocorrer:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
A resolução depende da sua distribuição:
Distribuições baseadas em Debian (Ubuntu, Mint, etc.)
sudo apt-get install lib32stdc++6
Nota:ia32-libs
não são necessários para instalar o SteamCMD; lib32gcc1
basta.
Com o Debian 7 "Wheezy" você pode encontrar este erro:
The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
E: Unable to correct problems, you have held broken packages.
Para corrigir isso, faça o seguinte:
dpkg --add-architecture i386
apt-get update
apt-get install lib32gcc1
Distribuições baseadas no Red Hat (RHEL, Fedora, CentOS, etc.)
yum install glibc.i686 libstdc++.i686
Arch Linux
Não se esqueça de primeiro ativar o multilib.
pacman -S lib32-gcc-libs
Falha de login: sem conexão
Em servidores Linux, você pode enfrentar um erro "Falha de logon: sem conexão". Isso está relacionado a falta de regras do iptables. Você vai querer algo ao longo destas linhas:
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
A lista de portas encontra-se aqui: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
Em servidores Windows, você pode experimentar "SteamUpdater: Erro: Falha no download: erro HTTP http" e "SteamUpdater: Erro: o Steam precisa estar online para atualizar. Confirme sua conexão de rede e tente novamente." Isso geralmente é corrigido, verificando "Detectar automaticamente as configurações" no IE (Internet Explorer) através das configurações de lan no menu de opções da Internet.
- Abra o Internet Explorer (IE).
- Clique em Ferramentas → Opções da Internet
- Clique na guia Conexões
- Na parte inferior, você deve ver as configurações da rede local (LAN).
- Marque a primeira caixa (Detectar automaticamente as configurações)
- Clique em OK e em Aplicar. Tente executar o SteamCMD novamente; se ainda não funcionar. tente reduzir sua zona de nível de segurança da Internet para médio ou baixo. Você pode encontrar isso na guia Segurança em Opções da Internet.
Erros de inicialização do SteamCMD
Não é possível localizar uma instância em execução do Steam
Você pode obter o seguinte erro ao iniciar um servidor com o Linux:
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
Resolva o problema ligando steamclient.so
para o diretório ~/.steam/sdk32/steamclient.so
:
ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
ulimit erro de inicialização do Linux
Alguns usuários podem receber um erro ulimit
(sem permissão / não é possível abrir o arquivo) enquanto o script está sendo iniciado. TEste erro causado por uma configuração baixa do parâmetro -n
(número de descritores de arquivo) de ulimit
. O SteamCMD usa comandos padrão dentro do script de shell de inicialização para alterar o ulimit
automaticamente, mas alguns servidores podem proibir ulimit
valores crescentes após a inicialização (ou além de um limite definido por root
).
Isso pode ser corrigido alterando o número do descritor de arquivo ulimit:
ulimit -n 2048
Se aparecer um erro (sem permissão), você precisará fazer o login como root para alterar o parâmetro. Para verificar a configuração atual, digite ulimit -a ; o sistema irá responder com muitas linhas, você precisa encontrar um:
open files (-n) 1024
Nesse caso, 1024 é o valor atual.
root
também pode modificar os limites no /etc/security/limits.conf
arquivo.
Na maioria dos casos, você simplesmente receberá uma mensagem de aviso, mas não impedirá a execução do SteamCMD.
Apenas o mecanismo HLDS é baixado
Ao tentar baixar um mod HL1 como o TFC, inicialmente ele só baixa os arquivos de mecanismo do HLDS, mas não o mod. Isso acontece com a versão regular e a versão beta. Você pode ter que tentar várias vezes até que todos os arquivos necessários sejam baixados, mas uma vez feito isso, os arquivos devem atualizar corretamente na próxima vez.
Solução alternativa para este problema aqui: http://danielgibbs.co.uk/2017/10/hlds-steamcmd-workaround-appid-90-part-ii/
Apenas apagar os arquivos do appmanifest, sem baixar os substitutos de terceiros, pode funcionar também! Você vai ter um erro no início, porém, reclamando que algo deu errado, o que é devido aos arquivos excluídos.
Em uma nota lateral, por algum motivo, o CS também é instalado.
Veja também