Create a Dedicated The Isle Evrima Server on Ubuntu 22.04 Linux
So you want to create your own dedicated The Isle Evrima server on Linux? No sweat, follow the steps below to get a working server. This guide assumes basic knowledge of linux, meaning you can copy and paste my commands, and have some basic familiarity with the command line. Proceed below to create a Dedicated The Isle Evrima Server on Linux
Cloud or Home?
The first chocie you have to make is to either host your server at home, or in the cloud. Either way we will be using Ubuntu 22.04 LTS. I’ve chosen to host my server on Linode. You want to have at least 8G of ram for the server. On Linode, an 8 GB shared CPU will run you about 40$ a month, and can probably host 100 players. It doesn’t matter where you choose to host your server so long as you follow the steps. Again, the steps below assume a fresh Ubuntu 22.04 server.
Create a User
Once your server is booted, we will login as root via ssh. From here, we will create our user(press enter to skip through the questions), and then add it to the “sudoers” group, and switch over to it. I’ve made my new user named “theisle” but you can name yours whatever you like. Please note if you change your username from what I have, you will need to edit some of the commands we use later on.
sudo adduser theisle
sudo usermod -aG sudo theisle
su - theisle
Now that we are logged in as our new user, we will proceed to install updates, and steamcmd. Before proceeding make sure you are logged in as the user we just created. Again, use “su – usernamehere”
Open/Forward your ports
Locate your servers local ip address with the following command.
ip a
If you are using linode like me, this will just be your servers public address, and you only need to note it down, and Skip down to “Installing SteamCMD”
But if you are NOT using Linode/Cloud, and are using your home internet, you will probably need to preform the following extra steps.
Forward your ports on the router. You will need to forward port 7777, 7778, 10000, 8888(for RCON). I’m not sure if it’s necessary, but I also forward 27015, and 27016. Do both UDP AND TCP to cover yourself. There are 1 million different resources on the internet for port forwarding on a router, so we won’t cover it here.
You also need to open the port on your servers firewall. If you are using Ubuntu 22.04 server as a suggest above, you can use the following commands, if not you will need to lookup how to open ports on your specific distribution.
sudo ufw allow 7777
sudo ufw allow 7778
sudo ufw allow 10000
sudo ufw allow 8888
sudo ufw allow 27015
sudo ufw allow 27016
Installing SteamCMD
Now we will update, add necessary repository’s for steamcmd, and install it. We will also go ahead and create the folder for our game, and call it “theisle”. Just issue the commands in order.
sudo apt-get update
sudo apt-get upgrade
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc1 lib32stdc++6 libc6-i386 libcurl4-gnutls-dev:i386 libsdl2-2.0-0:i386
cd ~
mkdir steamcmd
mkdir theisle
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C steamcmd
cd steamcmd
Run SteamCMD and install the Server
We will make the steamcmd script executable, and then run SteamCMD. This should start steamcmd.
sudo chmod +x steamcmd.sh
./steamcmd.sh
Now we will set our install directory to the folder we wish to install the game. If you ran the commands above, this will be /home/theisle/theisle. We will then login to steam, and download/install the game. Please note that if you used a different username/gamefodlername, your install path will be different.
Steam>force_install_dir /home/theisle/theisle
Steam>login anonymous
Steam>app_update 412680 -beta evrima +quit
Steam>exit
Now our Server is installed but there is one more thing we must do.
Install the 64 bit Steam Libraries
The server is expecting the 64 bit version of “steamclient.so” to be in /home/theisle/.steam/sdk64/steamclient.so”. It is currently in “/home/theisle/steamcmd/linux64/steamclient.so” We will simply create the folder and move it there.
mkdir /home/theisle/.steam/sdk64
mv /home/theisle/steamcmd/linux64/steamclient.so /home/theisle/.steam/sdk64/steamclient.so
Configure the Server
Now we will create the folder that our config files will be located in, download the config files, and edit them. This will be different if you have a different username, or game install folder name than the one we used in the commands.
mkdir /home/theisle/theisle/TheIsle/Saved
mkdir /home/theisle/theisle/TheIsle/Saved/Config
mkdir /home/theisle/theisle/TheIsle/Saved/Config/LinuxServer
cd /home/theisle/theisle/TheIsle/Saved/Config/LinuxServer
wget https://raw.githubusercontent.com/modernham/The-Isle-Evrima-Server-Tools/main/Engine.ini
wget https://raw.githubusercontent.com/modernham/The-Isle-Evrima-Server-Tools/main/Game.ini
Now we have the files its time to edit Game.ini with your information My editor of choice is nano, but you can use whatever you like. Your steam ID and the base64 version. I will be using nano, so I issue the command, make the edits, and to same them I press “Ctrl +x” – “Shift + Y” – ” Enter”. Please make sure to change the RCON password if you are going to leave it enabled.
nano Game.ini
Run the Server
Now we will execute the server to see everything went well. And again, if you chose a different username/ install folder, your command will be slightly different. Make sure to replace the below IP address with your public ip address. If you are using Linode, this is the one we grabbed from the Port Opening section.
cd /home/theisle/theisle
./TheIsleServer.sh MultiHome=192.53.167.22?Port=7777?QueryPort=7778 -log
If all goes well your sever will end up like this, you will see a lot of “yellow” text warnings, but this is normal behavior, and you are golden!
Now we will set it up a service that will run on crash and reboot!
We will create a service file, input our startup command, set it to auto restart, and then enable/start it. You can view or copy/paste the service file from here. You may need to modify the user or game path if you deviated form the guide. Make sure to change the IP in the startup command. Again, “Ctrl + X” – “Shift -Y” – Enter to save.
sudo nano /etc/systemd/system/isle.service
sudo systemctl daemon-reload
systemctl start isle.service
systemctl enable isle.service
Great! You’re server should now be running in the background, you can check the status with:
systemctl status isle.service
Troubleshooting Errors
First off, this is what a successful evrima server start looks like. If you see this, your server is running fine, (yes even with the yellow text). If you see this and still have problems, it’s most definitely due to ports being blocked somewhere, or router hairpinning, which we talk about here.
Nobody can connect, and you see this in the console on connection.
Resolution: The game is looking for /home/theisle/.steam/sdk64/steamclient.so, but can’t find it. Make sure steamclient.so is in the folder, and if it’s not, place it there.
This message repeats over and over again
Resolution: Your Engine.ini file does not contain the following:
[EpicOnlineServices]
DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW
DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8
Make sure your Engine.ini file contains this text, and is located in “/home/theisle/theisle/TheIsle/Saved/Config/LinuxServer”
See any other issues here.
Does a server not in Evrima can run on Linux? I’m not able to do it even if I didn’t specified -bet evrima in the App_Update comand.
The example above downloads the evrima in linux. Make sure you use “app_update 412680 -beta evrima +quit”
./steamcmd.sh: line 37: /home/theisle/steamcmd/linux32/steamcmd: No such file or directory
This was an outstanding write up thank you!
I would recommend passing `-p` when creating the /home/theisle/.steam/sdk64 path so it creates the parent folders as well in one go!
eg: mkdir -p /home/theisle/.steam/sdk64
Thanks again!
So in order to get working on Ubuntu I actually had to run the server start command / service like this:
./TheIsleServer.sh Port=7777?MaxPlayers=120 -log -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8
Otherwise I kept getting LogTemp: Session Failed, using the command I get “LogTemp: Display: Session started successfully!”