Create 7 Days To Die Server

0 views
Skip to first unread message

Nella Mcnairy

unread,
Aug 3, 2024, 12:15:22 PM8/3/24
to consrestpotfai

7 Days to Die has easily become one of my favorite video games. It is essentially a cross between Minecraft and Left 4 Dead and I find it absolutely thrilling. In this tutorial you'll setup a 7D2D server on Ubuntu.

7 Days to Die is an open-world sandbox that combines a first person shooter with survival horror, tower defense and traditional RPG elements. The game takes place in a post-apocalyptic world overrun by zombies. Your goal is to gather resources, craft shelter, food, and weapons, and survive the notorious blood moons that happen every 7 days where massive hordes of zombies attack.

First thing you'll need to do is gain access to your server. If it's a local machine you can simply login via the UI or if it's a server, you should ssh in. Login as your non-root user 7d2d and update the server to the latest version so you have the most recent packages.

Next, you'll need to install some packages for running 7d2d. You'll need to install a text editor (nano, vim, emacs, etc.) to be able to modify configuration files as well as the program screen to create virtual terminal sessions for running your game server. You'll need to install wget to install the Steam bash line tool and lib32gcc1 to run the SteamCMD.

Now you're ready to install the game. Steam uses app ids to distinguish which game to download. You can view the whole list on the Steam Dedicated Servers List. The id for 7D2D is 294420 which we'll use to install the game.

Finally, 7D2D runs on port 26900 by default. If you enabled UFW from the Ubuntu initial server setup then you'll need to open this port to allow traffic along with a range within 5 other ports for other communication. Running the following bash will properly configure your firewall.

The server configuration file is named serverconfig.xml. There are many settings within this file that can be tweaked, and they are all well documented. Below is a chart of some of the more interesting settings you may wish to change. This is not a comprehensive list of all settings.

Once you have modified the file to your liking you will need to start a screen session. This will create a virtual terminal session that will persist even after you have disconnected your terminal from the server.

Once you're ready to disconnect from the virtual session you can use the bash CTRL + A + D. Now you'll be able to continue doing things on the server. Once you're ready to reconnect to the session use the bash:

Once you do this click on the Connect To IP button in the bottom right hand portion of the screen and enter your IP address. If you setup a DNS name for your server that will also work here. If you setup a password you'll be prompted for it after you click connect.

Everything points to your player files on the server being damaged. The only other small potential problem flags I have seen are a 12k world and that you had to connect with SteamNetworking which tends to be a common thing whenever people report network problems.

Could you ask the server admin to make a copy of and delete your player files again on the server. Since you only mention the ttp files, please tell him to also remove the .map file for your character and edit players.xml to remove the part with your player id.

Then connect to the server. If the problem happens again, let the server admin send you the newly created player files so you can publish them on the forum. I think a TFP tester should then be able to find out what is wrong with your character data and get a lead on this bug.

I showed the server owner your response and I was able to get on after he deleted all the files including the .map file as well as deleting my steam ID entry on the players.xml file. Thanks for the help!

I did change the windows firewall settings during my troubleshooting to allow 7daystodie for both public and private (before, the public column was checked but private was not). I'm not sure if that is enough or do I need to change any other settings in windows defender? I don't have any other anti-virus.

I would like to rsync folders from a specific date and forward.for example. I want to rsync my folders that were created from 3 days ago (and of course 2 days ago, one day ago etc.).I know I need to use find and rsync but I'm not sure how.any idea?Thanks!Dotan.

Assuming you want to sync some folder from a server to a local folder but you always want to only sync the files that have been created since the last sync. Then the following command might be useful. Putting this in, e.g., your .bashrc defines an alias that syncs all the newly created files. The files can be locally deleted and will not be synced again when calling the sync command again. Only files that have been created after the last sync on the server will be copied to the local folder.

I've recently started playing the Steam version of "Day of Defeat", and have been trying to create a server that some of my Intenet friends can join (so we can play DoD together, with me hosting the game). I have a DSL modem with a built-in wireless router, which is what my PC connects to the Internet with.

I start DoD, and then begin a new game ("Create Server"), and then go into the game. I then send an "Invite" to a buddy of mine who is online at the time, but when he attempts to join the game (accepts the invite), he gets the error message "Server is unavailable".

I've checked the DSL modem/wireless router's configuration, and have added the required entry to open the correct ports and such. Mine is a Westell VersaLink 7500 Gateway, and the built-in software in the firmware for it has options for "Enable an online game connection", and quite a few presets for various games (the one that I selected was "Half-Life Server").

1. find out which ports are used by DoD
2. disable your router firewall or open the DoD ports for incoming connections
3. forwards the port(s) to the internal IP of the machine hosting the game
4. enable incoming connections for the ports used by DoD on the host machine's firewall (or disable it)
5. look up your external IP (router interface or ) and tell your friends to connect via the game console (command usually "connect (:)")

I've never used Steam-based game to host sessions before, so I'm not sure how the "invite" feature works. But if your friends are getting your internal IP adress in the invite they're not going to be able to join. Maybe Steam can be configured to use the external IP, but anyway typing the correct IP or hostname in the console will work 100% so why bother with the invites.

That's not "static", that's a dynamically assigned IP. If you had static you'd get the same IP all the time. Static IP usually costs extra, and isn't useful for most home users. On the contrary, it can be a security risk.

I am new to SSL and letsencrypt so I have created a certificate manually in my desktop ubuntu16.04 to understand the process, then uploaded the certificates to my server and all went smoothly. I feel safe doing things this way and it would be awesome if there was a way to automate this, I mean using a desktop or another server to generate all certificates and then upload them in the correct servers without giving root access to certbot. I know this is hard work and maybe not even safe so I will just close my eyes and trust certbot for now ( maybe this should even be a discussion for another thread or not even a thread at all )

So I have decided to go for certbot after understanding the manual process. Once again everything went smoothly. I also tried to --dry-run and --force-renew and certificates were renewed without any problem. Now what I find really weird is that I had to change my Apache config and the certificates still renew when I think they were not supposed to.

That "magic" is because validated authorizations have a lifetime, previously was 60 days and since a week ago the lifetime is 30 days, so, doesn't matter where is your document root because Let's Encrypt boulder didn't try to validate your domain again as it has a valid authorization for it... for 30 days.

So a valid authorization will last 30 days and a certificate 90 days. To renew I need a valid authorization. A valid authorization is only extended with this test so after 30 days to renew authorization I will need to make the test again. Is that it?

I don't know what you mean by test. The first time you want to issue a certificate, Let's Encrypt needs to validate that you own the domain(s) so it uses a challenge, for example the http challenge, it puts a file with a specific content inside ./well-known/acme-challenge/ dir inside your domain document root. Let's Encrypt knows whath is the file that should try to reach and the content of this file, if Let's Encrypt can get this file from its side that means that you have proved that you control that domain and Let's Encrypt has validated it and issues a cert for your domain.

Let's Encrypt saves that authorization for your domain and keeps it for 30 days. If for whatever reason you want to renew your cert just 5 days after you issued the first one, Let's Encrypt won't try to reach your domain again to review the specific file in ./well-known/acme-challenge/ dir, as the authorization is still valid it will issue a new cert for your domain but as it has not validated again, the lifetime authorization for your domain is 25 days.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages