How to Start and Configure an Abiotic Factor 1.0 Cold Fusion Dedicated Server in Linux Debian, Mint, or Ubuntu How to Start and Configure an Abiotic Factor 1.0 Cold Fusion Dedicated Server in Linux Debian, Mint, or Ubuntu

How to Start and Configure an Abiotic Factor 1.0 Cold Fusion Dedicated Server in Linux Debian, Mint, or Ubuntu

Abiotic Factor is a game best enjoyed with your friends. To best do so, you’ll need to power of a dedicated server. In this guide, I will show you how to set one up in Debian Linux, but this will also work in Ubuntu, or any other derivative of Debian.

There already exists a community guide on GitHub for most of this process here, but it can be a bit difficult to find and I figured people would much enjoy a video to walk them through the proccess, especially if they’re brand new to linux.

1 - Prerequisites

This guide assumes you have a Debian machine you can access, either directly or through SSH. For this tutorial, I am running a fresh install of Debian 12.

2 - Installing the Abiotic Dedicated Server to Debian

We’re going to start by making a new user that will run the server. This is done for security reasons as we do not want to run the server as the root user. See Principle of least privilege.

For this tutorial, we will call this user “abiotic”

sudo useradd -m abiotic

You may want to set a password for this user:

sudo passwd abiotic

2.1 - Prepare the Server with Required Packages

Update repos and upgrade all packages

sudo apt update
sudo apt upgrade -y

Install some required packages

sudo apt install software-properties-common lsb-release wget

2.2 - Install Wine

Abiotic Factor, by default has no native build for linux (a tragedy, really), but there is hope for us: Wine, which allows us to run windows applications of linux!

Lets start by first adding the repositories:

sudo mkdir -pm755 /etc/apt/keyrings
wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key -

For Debian:

Then download WineHQ for your specific distro (For Ubuntu and Mint, head here for your distro-specific command!)

sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources

And lastly, install:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install --install-recommends winehq-stable
sudo apt install cabextract winbind screen xvfb

2.3 - Set Up SteamCMD

Here, we will install a command-line version of the Steam client, which is what we will use to download and update all the server files for Abiotic Factor.

sudo apt-add-repository non-free
sudo apt update
sudo apt install steamcmd

2.4 - Install Abiotic Factor Server Files

This is where you must decide where you want your server files to live. The simplest and recommended option is in our users home directory, inthis case, /home/abiotic. Wherever you decide, make a directory there.

sudo mkdir /home/abiotic/abioticserver

And now download the game via SteamCMD, and force it to use the windows files.

sudo /usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit

2.5 - Configure Server Start Script

Since we downloaded the windows files, we are unable to use the existing .bat isntructions to start the server, so we must make our own .sh isntructions

sudo touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh

And edit this file:

sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh

Now add in the startup instructions:

#!/bin/bash
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName="yourserver" -WorldSaveName="Cascade"

This is the point where you should change the max playercount of your server, the server password, steam server name, and the world save name. Save it and close (ctrl+x)

2.6 - Port Forwards Ports 7777 and 27015 to Your Server

This part is where your situation will be unique depending on your router, but the idea is much the same for any. I recommend looking up how to port forward on your specific brand of router.

Additionally, I recommend you set up your server on a static IP if you haven’t yet so you don’t need to change what IP your router is forwarding that port to every time you restart the server.

What is important here is that you forward TCP/UDP traffic through both ports 7777 and 27015 to the local IP address of your server.

2.7 - Start the Server

Using our runserver.sh we made in 2.5, we can start the server.

First, give our user permission to run runserver.sh:

sudo chown -R abiotic:abiotic /home/abiotic/abioticserver
sudo chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh

And quickly do a reboot with sudo reboot

Then run it (You may need to do so twice):

/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh

Once started, turn it off with ctrl+Z

2.8 - Updating Your Server

So, you’ve been playing for a while and you notice that your server is out of date, and your friends are complaining that they can’t connect? There is a simple solution, and all it involves is performing the same command you used when you downloaded the server files in section 2.4.

/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit

Unfortunately, this proccess can be quite tedious, especially when you are playing after a major update and must update frequently due to hotfixes. Not to mention, the startup command is quite long. There must be a better way! The answer: running our server as a service

3 - Running as a Service

First, create the service file

sudo nano /etc/systemd/system/abiotic.service

Then, fill it with this, which you should edit as necessary for your own setup:

[Unit]
Description=Abiotic Factor Server
Wants=network-online.target
After=network-online.target
[Service]
User=abiotic
Group=abiotic
WorkingDirectory=/home/abiotic/abioticserver/
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh
Restart=always
[Install]
WantedBy=multi-user.target

Save it and close

3.1 - Enable and Start the Service

Enable the service:

sudo systemctl enable abiotic

Start the service: sudo systemctl start abiotic

To disable and stop the service, use the disable and stop commands to do that respectively

That’s that, now your server will automatically update and restart on a power cycle!

4 - Sandbox Settings

So, how do we change the experience of the game for our players? This is done with the sandbox settings.

By default, the server will not generate the needed “SandboxSettings.ini” file, so lets do that.

sudo touch /home/abiotic/abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds/worldName/SandboxSettings.ini

Replace “worldName” with the world name you set in section 2.5

Next, edit the file:

sudo nano /home/abiotic/abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds/worldName/SandboxSettings.ini

And add in the defaults:

[SandboxSettings]
GameDifficulty=1
LootRespawnEnabled=False
PowerSocketsOffAtNight=True
DayNightCycleState=0
DayNightCycleSpeedMultiplier=1.0
WeatherFrequency=3
SinkRefillRate=1.0
FoodSpoilSpeedMultiplier=1.0
RefrigerationEffectivenessMultiplier=1.0
StorageByTag=True
StructuralSupportLimit=5
BridgeSupports=2
HomeWorlds=True
EnemySpawnRate=1.0
EnemyHealthMultiplier=1.0
EnemyPlayerDamageMultiplier=1.0
EnemyDeployableDamageMultiplier=1.0
DetectionSpeedMultiplier=1.0
DamageToAlliesMultiplier=0.5
HungerSpeedMultiplier=1.0
ThirstSpeedMultiplier=1.0
FatigueSpeedMultiplier=1.0
ContinenceSpeedMultiplier=1.0
PlayerXPGainMultiplier=1.0
ItemStackSizeMultiplier=1.0
ItemWeightMultiplier=1.0
ItemDurabilityMultiplier=1.0
DurabilityLossOnDeathMultiplier=0.1
ShowDeathMessages=True
AllowRecipeSharing=True
AllowPagers=True
AllowTransmog=True
DisableResearchMinigame=False
DeathPenalties=1
FirstTimeStartingWeapon=0
HostAccessPlayerCorpses=True
AllowCharacterReset=True

4.1 Custom Settings

While here, you’ll of course want to set these values to your own preffered ones. But what do they all mean? Check this out for a full breakdown of each value!

5 - Further Reading

If you are interested in additional launch parameters to the ones we used in section 2.5, check this out.

And, if you would like to migrate a player save to your server, check this out.

You may want to set up a firewall if you are opening this server to the internet. If you’re new to this, I recommend choosing something… uncomplicated. Here you can find information about Uncomplicated Firewall (ufw).

Final Comments

Having any trouble? Post a comment to the associated youtube video at the top of this article, and I or someone in the community can help you out!

Have fun, and stay safe out there in 1.0!


← Back to blog