Steam, server, steamcmd

From Funiaita
Jump to: navigation, search

get your Debian to Stretch

Please be careful, if at your time of reading "Stretch" is not any longer the current version.


I am doing this with Debian 9 "Stretch", so if you are using an older version, you "can" try the following to upgrade:

  • make your system current:
apt-get update && apt-get upgrade
  • edit /etc/apt/sources.list
    • replace all occurrences of "jessie" or whatever with "stretch"
    • add "non-free" behind main, example:
deb http://ftp.de.debian.org/debian/ stretch main non-free
  • do the upgrade to the new version
apt-get update
apt-get upgrade
apt-get dist-upgrade
shutdown -r now

install steamcmd

dpkg --add-architecture i386
apt-get update
apt-get install lib32gcc1
apt-get install steamcmd

Info: I did not see steamcmd via "apt-cache search" until I added i386 AND did the "apt-get update"

get screen too, you will want to run the server inside a screen

apt-get install screen

login to the steam server

Now you switch to a normal user, someone who is not root.

steamcmd
Steam> login anonymous

Do NOT use a fresh account for Wurm Unlimited. It will only work for anonymous and perhaps for accounts which possess the game for real.

For other games, where you can't use anonymous: After you give the password and perhaps the Steam Guard code, you should not use logout. If you use logout the caching file which will allow you to login without giving the password will get deleted.

install server, example Wurm Unlimited

Steam> force_install_dir ./wurm/
Steam> app_update 402370

402370 is the application id, get the one for your server here: https://developer.valvesoftware.com/wiki/Dedicated_Servers_List If your server is not there, you'll have to google or just ask in the forum of the game.

You could do the whole thing in one line directly from the command line, but you should first try the slow approach:

steamcmd +login anonymous +force_install_dir ./wurm/ +app_update 402370 +quit

If your current user was named 'petra' you'd now find the game inside

/home/petra/.steam/steamcmd/wurm

From here it depends on the game how to start it.

starting the server, examle Wurm Unlimited

This is of course for most server different from each other. For Wurm Unlimited I got it running - no idea yet if it is good - with the following:

  • create start-wurm.sh
  • make is executable for the current user
chmod u+x
  • put the following into the file
cd /home/petra/.steam/steamcmd/wurm
./WurmServerLauncher start=Adventure servername=Fun pvp=false maxplayers=3 externalport=3724 ip=192.168.0.77

It was important to give the port and ip, otherwise I always got Java errors:

java.net.BindException: Cannot assign requested address

Of course you have to use your ip, not mine.

If you are using a virtual server, give it enough memory, for Wurm 800 MB could be enough, but I think you should adjust the file

/home/petra/.steam/steamcmd/wurm/LaunchConfig.ini

because the entries

InitialHeap=512m
MaxHeapSize=1024m

have to make sense. If you give only 800 MB to the server and here Java thinks it gets 1GB something is going wrong.


I am currently VERY unsure if the following, which I did because I read I need it, is really needed:

apt-get install libswt-gtk-3-java xvfb
Xvfb :99 &
export DISPLAY=:99

I would have to play around and uninstall and install again to be sure. I mentioned it, you can try it :-)


Wurm Unlimited only, change settings

Fields grow and ever hour you have to take care of the fields. After ca. 4 to 5 of these intervals they are grown. If you don't harvest, they will spoil. You can change the interval between the care taking actions. In the database the value is set as milliseconds. It defaults for the already mentioned hour to 1000*60*60=3600000. So, if you want to have intervals of 10 minutes you need 1000*60*10=600000.

cd /home/petra/.steam/steamcmd/wurm/Adventure/sqlite
sqlite3 wurmlogin.db
.header on
.mode columns
select server, fieldgrowth from servers;

Now you need to change the following command:

update servers set fieldgrowth=600000 where server=11455; 

"11455" is of course wrong for your, you will need to use the value from the select which is shown below "server". If the select gave you only one line as result (AND ONLY THEN!) you can instead use:

update servers set fieldgrowth=600000;

crontab

If you put the following line into your crontab:

@reboot . /etc/profile && screen -S Wurm -d -m /home/petra/start-wurm-server.sh

your Wurm server will automatically get started after a server reboot.