# uname -a

Switch

Mot-clé -

Fil des billets

jeudi 23 mai 2013

Install Counter Strike: Source server using SteamCMD on Linux (and get rid of MasterRequestRestart)

You may have noticed that the legacy HLDSUpdateTool, is deprecated for a while. Since the recent udpate from Steam that forces all CSS clients to use the new SteamPipe system, the server downloaded by HLDSUpdateTool is definitely deprecated.

If you try to run a deprecated version of your server (acquired with HLDSUpdateTool), you will get one of the following :

MasterRequestRestart
Your server is out of date.  Please update and restart.

MasterRequestRestart
Server will restart on map change.

And the client is getting the following :

The server you are connecting to is running an older version of the game

You can try to update using HLDSUpdateTool but nothing will change, you will be stuck with your old version, and you will keep getting the same errors.

The key is to get the new CSS server software, that uses SteamPipe. To do so, you have to grab the new SteamCMD program, that replaces HLDSUpdateTool, and install the CSS server as explained in Valve documentation.

Here is a few-steps tutorial to install your new CSS server :

  • Make sure you create a new directory for SteamCMD files, do not install it in HLDSUpdateTool directory : mkdir steamcmd && cd steamcmd
  • Download SteamCMD : wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

  • Extract SteamCMD : tar -xzf steamcmd_linux.tar.gz

  • If you are running a 64bit system (every decent server does), install ia32-libs (for instance, in Debian : dpkg --add-architecture i386 && apt-get install ia32-libs).

  • Run SteamCMD : ./steamcmd.sh it will update automatically.

  • Install CSS dedicated server, in a custom directory (here it’s the folder css_server in upper directory) :
    ./steamcmd.sh +login anonymous +force_install_dir ../css_server/ +app_update 232330 validate +quit

  • Note that the Steam AppID is 232330.
  • Now you can run your new CSS server : get back to the upper directory (cd ..) and start it :
    ./css_server/srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game cstrike +map de_dust2 -maxplayers 20 -port 27015

Of course, you will have to copy your existing server.cfg, mapcycle, and MODs to your new CSS installation directory (in css_server/cstrike/ sub-folders).

 

I hope this post will help those who are stuck with these “server deprecated” errors and unable to use their server. Have fun !

mardi 21 mai 2013

Install Counter Strike dedicated server (Source, Condition Zero, Global Offensive) using SteamCMD on Linux

It is not recommended anymore to use HLDSUpdateTool to set up and update your Counter Strike server, it will give you a deprecated version of the server since Valve has moved his games to SteamPipe.

I will explain in this short tutorial how to set up your Counter Strike server using the new Valve bootstrap: SteamCMD.

Step 1: Your server

I am making the assumption that you have a dedicated server (virtual or not), with shell and root access. If you don't have root access, I assume that you have at least shell access, possibility to open ports, and 32bit libraries installed.

Step 2: Prepare install

Follow this if you have root access, otherwise continue to step 3.

  • Install 32bit libraries:

    • For Debian/Ubuntu:
      dpkg --add-architecture i386 && apt-get install ia32-libs

    • For Fedora/RHEL/CentOS:
      yum install glibc.i686 libstdc++.i686

    • For Arch:
      Enable Multilib and then type:
      pacman -S lib32-gcc-libs

  • Make a new user and "su" it:
    adduser --disabled-login steam
    su steam
    cd /home/steam

  • You should NEVER run a server with root user, every time you want tot start your server, do a "su steam" or log in with this user before. If you want to log in with the steam user, remove the --disabled-login from command line when creating it.

Step 4: Download and install SteamCMD

  • Create a new directory and use it as your current directory:
    mkdir steamcmd && cd steamcmd
  • Get the SteamCMD binary:
    wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

  • Extract the tarball:
    tar -xzf steamcmd_linux.tar.gz
  • Run the steamcmd binary, it will update:
    ./steamcmd.sh

Step 5: Download the Counter Strike server

The command line will force the installation directory in a separate directory. It prevents messing with SteamCMD directories when you configure and start the game server.

For Counter Strike Source:
./steamcmd.sh +login anonymous +force_install_dir ../css_server/ +app_update 232330 validate +quit

For Counter Strike Condition Zero:
./steamcmd.sh +login anonymous +force_install_dir ../cscz_server/ +app_update 90 +app_set_config 90 mod czero validate +quit

For Counter Strike Global Offensive:
./steamcmd.sh +login anonymous +force_install_dir ../csgo_server/ +app_update 740 validate +quit

Of course, you can change the name of the installation directory. Just don't forget the ../ before the folder name to install it in the upper directory, otherwise you will mess your SteamCMD installation with game files.

Use the same command to update your server when needed.

Step 6: Configure your server

I can't learn you anything here: just place your server.cfg, mods, and maps accordingly in the installation folder.

Step 7: Start your server

  • Get back to the steam user home directory
    cd /home/steam

  • Start the server:

    • For Counter Strike Source:
      ./css_server/srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game cstrike +map de_dust2 -maxplayers 20

    • For Counter Strike Condition Zero:
      ./cscz_server/srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game czero +map de_aztec -maxplayers 20

    • For Counter Strike Global Offensive:
      ./css_server/srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust

      See Valve documentation for other game modes.

Please adapt the command line if you changed the name of installation directory.

Step 8: Enjoy !

Again, nothing much to say, just enter your server IP address in the game.

Just one more thing: if you didn't had root access during the installation, you may have to forward ("open") ports to let your server be accessible by anyone.

mercredi 15 mai 2013

Install Team Fortress 2 server using SteamCMD on Linux (and get rid of MasterRequestRestart)

You may have noticed that the legacy HLDSUpdateTool, is deprecated for a while. Since the recent udpate from Steam that forces all TF2 clients to use the new SteamPipe system, the server downloaded by HLDSUpdateTool is definitely deprecated. The Team Fortress’ wiki is giving wrong informations, that procedure is deprecated.

If you try to run a deprecated version of your server (acquired with HLDSUpdateTool), you will get one of the following :

MasterRequestRestart
Your server is out of date.  Please update and restart.

MasterRequestRestart
Server will restart on map change.

And the client is getting the following :

The server you are connecting to is running an older version of the game

You can try to update using HLDSUpdateTool but nothing will change, you will be stuck with your old version, and you will keep getting the same errors.

The key is to get the new TF2 server software, that uses SteamPipe. To do so, you have to grab the new SteamCMD program, that replaces HLDSUpdateTool, and install the TF2 server as explained in Valve documentation.

Because the documentation is not quite clear (in particular, concerning the new AppID to use), here is a few-steps tutorial to install your new TF2 server :

  • Make sure you create a new directory for SteamCMD files, do not install it in HLDSUpdateTool directory : mkdir steamcmd && cd steamcmd
  • Download SteamCMD : wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

  • Extract SteamCMD : tar -xzf steamcmd_linux.tar.gz

  • If you are running a 64bit system (every decent server does), install ia32-libs (for instance, in Debian : dpkg --add-architecture i386 && apt-get install ia32-libs).

  • Run SteamCMD : ./steamcmd.sh it will update automatically.

  • Install TF2 dedicated server, in a custom directory (for me it’s the folder tf2_server in upper directory) :
    ./steamcmd.sh +login anonymous +force_install_dir ../tf2_server/ +app_update 232250 validate +quit

  • Note that the Steam AppID is now 232250 and not 440 as HLDSUpdateTool used to prompt.
  • Now you can run your new TF2 server : get back to the upper directory (cd ..) and start it :
    ./tf2_server/srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game tf +map cp_dustbowl -maxplayers 16

Of course, you will have to copy your existing server.cfg, mapcycle, and MODs to your new TF2 installation directory (in tf2_server/tf/ sub-folders, indeed). If you have no clue of what I am talking about, please read the Team Fortress Wiki.

 

I hope this post will help those who are stuck with these “server deprecated” errors and unable to use their server. Have fun !