Steam, server, steamcmd
upgrading your Debian
It is in most cases the same list of actions, only v10 to v11 was different.
This is an example for 11=>12 (bullseye=>bookworm), just look at the ONE place the words are and replace them with the actually needed words. As of 2024-03-07 'bookworm' is the current version.
cat /etc/issue apt-get update apt-get upgrade apt-get dist-upgrade sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list apt-get update apt-get upgrade apt-get dist-upgrade apt-get -y autoremove shutdown -r now cat /etc/issue
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 every 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 you, 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.