7 days to die has multiple mods created by fans that change the mechanics of the game. This post will document the install steps to host this mod on Ubuntu via Steam. I have performed these steps on Ubuntu 22.04.2 LTS.
This mod uses a tremendous amount of memory. I will mention later in this tutorial the type of settings to use to reduce the amount of memory if needed. Hosting a very large map 13000 generation size yielded a runtime of nearly 19GB of RAM.
Requirements
Undead legacy uses SDL. Install this if you have not already.
sudo apt install libsdl2-2.0-0
1) It'd be a good idea to add a new ubuntu user to run the UL server. My strategy is to have a user for each overhaul mod.
sudo adduser undeadlegacy
2) This method uses steamcmd to host the game. You must install this with the root user
sudo apt update && sudo apt install steamcmd
Read the disclaimer if you choose, otherwise click the right arrow button and click enter to acknowledge. The following page will require you to agree to the terms.
3) Switch to your newly created user
su undeadlegacy
4) Configure SteamCmd
steamcmd
Once open, SteamCmd will likely do an update. Now you may login anonymously to steam and install the 7DaysToDie dedicated server.
login anonymous
app_update 294420
The "app_update 294420" command if not obvious is a command you must run to update the dedicated server in the event that an update has been pushed by the 7days developers
Running this command the first time will create a folder in your Ubuntu user account folder. Once the install of the server is completed, press CTRL+C or type exit to leave the Steam Cmd window.
5) Install the Undead Legacy mod
SteamCmd has created a directory. Use the following command to navigate to that directory
cd ~/Steam/steamapps/common/7\ Days\ to\ Die\ Dedicated\ Server
You may go to Subquake's website to fetch the stable build. On that page there is also an option to donate to Subquake via PayPal or Patreon. https://ul.subquake.com/download
Yes, the client files are included in this download too. Unfortunately, there is not a server-only download
Otherwise you may use this command line to download the archive.
wget https://ul.subquake.com/dl?v=stable
This downloads the archive, however this download command will save the file as 'dl?v=stable' within the 7 days to die directory.
Unzip the file.
unzip dl?v=stable
Move contents of UndeadLegacyStable-main into current directory
mv ./UndeadLegacyStable-main/* ./
Remove the UndeadLegacyStable-main directory
rm -r UndeadLegacyStable-main
6) Configure desired undead legacy world
Subquake has documentation on configuration. That is found at https://ul.subquake.com/dedicated-servers.
Native 7days to die configuration is used with the mod. These configurations attributes are outlined at Valve. https://developer.valvesoftware.com/wiki/7_Days_to_Die_Dedicated_Server
The UL mod introduces attributes, two of which above all are worth considering the configuration for.
For this tutorial, I'm providing my configuration for my last play-through.
If you would like to use it. Perform the following commands
rm serverconfig.xml
wget https://cwcreations.net/blog/downloads/serverconfig.xml
For clarity, the serverconfig.xml should be placed in the 7 Days to Die Dedicated Server directory. If you were following the guide, performing the wget command above resulted with serverconfig.xml in the correct location.
Remember to set the server name and password if wanted.
The two attributes to consider that were added with UL, as mentioned above, is Death Penalty and Recipe Filter. We chose Death Penalty 3, which includes the death debuff of health/stamina with loss of random action skills. Death Penalty set to 1 would emulate a vanilla experience, according to Subquake.
Recipe filter, according to ul.subquake.com
" 0 - Shows all recipes
1 - Shows unknown recipes, search limited by workstation
2 - Shows only known and workstation relevant recipes "
We went with 0 for the recipe filter.
Some original 7 days to die attributes were changed from defaults in the server config provided above. GameDifficulty: 3, XPMultiplier: 125, DayNightLength: 120, DayLightLength: 20, MaxSpawnedZombies: 40, MaxSpawnedAnimals: 40, LootAbundance: 150, LootRespawnDays 1000 (helps establish realism)
7) World map configuration
The serverconfig file provided is set to use the Navezgane so no need to change any attributes unless wanted.
I enjoyed the experience of randomly generating a map. The mystery element made it fun. Maybe I got lucky. Randomly generating a map with a size of 12288 took approximately 30 minutes to generate. If not already known, a generating of a map will occur on first load. As mentioned above, running the game with this sized map and other configuration options considered, 19GB of RAM was used.
To randomly generate a map, just set the attribute GameWorld to "RWG" without quotes. Subsequently modify the WorldGenSize to the size you want. The value must be a multiple of 2048 with a max constraint of 16384.
8) World configuration that impacts performance
Map size impacts performance as mentioned in "World Map Configuration". Other important attributes are ServerMaxAllowedViewDistance, MaxSpawnedZombies, MaxSpawnedAnimals. I recommend view distance of 9, 40 zombies and animals. Find the configuration that works for you.
The more players you have online on the server also affects performance.
9) Firewall
If needed, remember to port forward or open up the required ports. Open or forward the 26900 TCP and UDP, UDP 26901,26902,26903.
10) Setting admin permissions for player
To modify rights of a user. You must use the serveradmin.xml file located within directory
~/.local/share/7DaysToDie/Saves
The file will not exist until you run the server for the first time.
To add an admin to the file, you must know the steam user id of the player. The easiest way I have found to do this is to have them connect to the server. In the server logs, there are mentions of a user that connected or disconnected. You will find the steam user id there.
Find within the file <admins> . Add an entry within <admins></admins> tags as such:
<user platform="Steam" userid="numericsteamuserid" name="Username" permission_level="0"/>
11) Launching the server
To launch the server enter the following commands in the Ubuntu terminal
cd ~/Steam/steamapps/common/7\ Days\ to\ Die\ Dedicated\ Server/
./run_bepinex_server.sh
You may not have sufficient rights to execute the run_bepinex_server.sh. Modify the file permissions:
chmod 700 ./run_bepinex_server.sh
Remember, you can use the key combination CTRL + C to close the server execution within the terminal.