V Rising – Running a Server on CentOS Linux

Currently there is only a Windows version of the V Rising Server available. It is possible though to run the server on a Linux system using wine.

How to Host Your Own Server (Rental Service Provider)

You can host a server at game server hosting provider:

Note: Every gaming server goes online immediately! A welcome email including your connection information (guide) will be sent to you when your gaming server is created.

Introduction and Prerequisites

Shortly after I bought this game and played around for a while in single player, I wanted to play together with friends. And since I already had a VPS (with CentOS installed) at my disposal I thought why not use that.

So I read the official guide and found out there’s only a server execuabtle for windows. I remembered other guides I’d seen showing how to use wine to run windows executables and I decided to try with this game and it worked. So here’s my guide on how to do it.

As said before and in the title I did this on a CentOS system but I guess this solution in principle would also work on other Linux distributions.

I tried to make this guide easily understandable for everyone. The only things you’d need to know is how to use the terminal and how to edit files. CentOS comes with vi as a text editor which can be used to follow this guide but an explaination on how to use vi is not part of this guide.

In this guide commands start with $,# or >. Commands that start with # have to be executed when logged in as root or using sudo. Commands with $ can be executed by a regular user and commands with > are commands for the steamcmd.

$, #, > are not part of the actual commands.

Requirements

In order to run the Server we will need wine and xvfb. Wine is used to execute Windows executables on LInux and we will use xvfb to create a virtual monitor, so we don’t have to have an actual monitor attached to the server.

We also need the steamcmd to download and update the server files.

Install the steamcmd requirements with:

# yum install glibc.i686 libstdc++.i686 -y

The easiest way to install wine is by using the EPEL Repository, so we add it like this:

# yum install epel-release -y

Then to install wine and xvfb:

# yum install wine -y
# yum install xorg-x11-server-Xvfb -y

Installing SteamCMD

Before we install steamcmd or the server, we should create a user that we will use to run steamcmd and later the game server itself. Using the root user for the steamcmd or the game server is a security risk. I’ll call this user steam but you can choose any name you like.

Create the user and log in as this new user:

# useradd steam
# su steam

We then move to home directory of the new user and create a directory in which we will install the steamcmd and another directory for the game server:

$ cd
$ mkdir steamcmd
$ cd steamcmd 
$ mkdir VRising 

Now we download and extract the steamcmd:

$ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - 

Installing the Game Server

We start the steamcmd using the script that was extracted in the previous step:

$ ./steamcmd.sh 

The first time starting the steamcmd will take some time and download updates. After the updating is done we can use the steamcmd and as first step we specify the previously created directory as the install directory for the game:

> force_install_dir VRising

Before we download the server files we need to log in to steam but we can use the anonymous login:

> login anonymous

The app ID for the V Rising server is 1829350 so we can install the server like this:

> app_update 1829350

After the server has been installed type

> quit

To exit the steamcmd.

Running and Configuring the Game Server

Move to the directory where we installed the server:

$ cd VRising

And then start the server like this:

$ export WINEARCH=win64
$ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine VRisingServer.exe -persistentDataPath ./save-data -logFile server.log 

This will start the server and create the savegame in the directory we specified in the previous command as persistent data path, in this case the save-data folder.

Wait a bit and then close the server again by pressing Ctrl-C.

Configuration

Create the Settings folder inside the save-data directory:

$ mkdir save-data/Settings

Now we copy the default settings to this new directory:

$ cp VRisingServer_Data/StreamingAssets/Settings/*.json save-data/Settings

The Settings folder now contains two configuration files, ServerHostSettings.json for host configuration like server name, password, ports, etc and ServerGametSettings.json for game settings like crafting rates, damage multipliers etc.

You can use your preferred text editor to edit the settings in those files.

Using Systemd to Control the Server

We now could use the command we used before to start the server but this would require us to always keep the terminal we’re using open to keep the server running. Instead we will systemd to configure the server as service that runs in the background.

To make things easier we will first create shell script to start the server. Create a new file using a text editor of your choice with the following content:

#!/bin/bash
export WINEARCH=win64
/usr/bin/xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' /usr/bin/wine VRisingServer.exe -persistentDataPath server1_saves/ -logFile server.log

Save the file as run_server.sh in directory of the game server. Make the file an excutable with this command:

$ chmod ug+x run_server.sh

This is everything we need to do as the steam user. We can now switch back to a user with root privileges using:

$ exit

Create a new file for the systemd service with the following content:

[Unit]
After=network.target

[Service]
User=steam
Group=steam
WorkingDirectory=/home/steam/steamcmd/VRising
ExecStart=/home/steam/steamcmd/VRising/run_server.sh

[Install]
WantedBy=multi-user.target

And save the file as:

/etc/systemd/system/VRising.service

We can now use systemctl to start and stop the server. To start the server use:

# systemctl start VRising

If we want to stop the server we can use:

# systemctl stop VRising

We can also check if the process is still running:

# systemctl status VRising

Note that if the server crashes this might still show that the process is active because only the server process crashed but wine is still running.

Configuring the Firewall

Now that we got the server running using systemd, the only thing left to do is to configure the firewall.

Unless you changed this in ServerHostSettings.json the game uses the udp ports 9876 and 9877.

Add rules for these two ports to the firewall:

# firewall-cmd --add-port=9876/udp
# firewall-cmd --add-port=9877/udp

Then we persist the new rules so the port stay open even after a restart and reload the firewall:

# firewall-cmd --runtime-to-permanent
# firewall-cmd --reload

Updating the Game

Updating is simple. First shut down the server and just like when installing the game login to the user we created for the steamcmd and start the steamcmd:

# systemctl stop VRising
# su steam
$ cd ~/steamcmd
$. ./steamcmd

Login to anonymous steam profile, update the game, wait for the update to finish and close the steamcmd:

> login anonymous
> app_update 1829350
> quit

The game is now updated and we can start the server again.

# systemctl start VRising
Volodymyr Azimoff
About Volodymyr Azimoff 8048 Articles
I love games and I live games. Video games are my passion, my hobby and my job. My experience with games started back in 1994 with the Metal Mutant game on ZX Spectrum computer. And since then, I’ve been playing on anything from consoles, to mobile devices. My first official job in the game industry started back in 2005, and I'm still doing what I love to do.

2 Comments

  1. Finally a good step by step guide on setting up V Rising server on Linux. May I know the server requirement for around 30-40 active users? Cheers

  2. Thanks for this Sweet and Short Guide.
    Took me around 30 minutes to do the same on Debian (Ubuntu) with some minor differences but is working 100% !!

Leave a Reply

Your email address will not be published.


*