Sign inSign up

solareon/vrising-svr

By solareon

•Updated over 4 years ago

V-Rising server using Docker and WINE

Image
1

10K+

solareon/vrising-svr repository overview

⁠Docker container for linux vrising server

Based upon steamcmd with WINE added. Supports modifying server config via environment variables in addition to manual changes to the ServerGameSettings.json

Docker Pulls Docker Stars Docker Image Size Github stars Github forks Github issues Github last-commit

⁠V Rising Dedicated Server Instructions

The V Rising Dedicated Server is as it sounds a dedicated server application running under WINE inside Docker for the game V Rising⁠.

⁠Running the Server

There are two methods to run the server. Docker Compose is the recommended version as it will all you to easily modify environment variables and restart/shutdown your server without remembering a complicated command line

⁠docker compose
version: "3"
services: 
  vrising:
    container_name: vrising-server
    image: solareon/vrising-svr:latest
    volumes: 
      - ~/vrising/server:/mnt/vrising/server
      - ~/vrising/persistentdata:/mnt/vrising/persistentdata
    environment:
      - "TZ=Europe/Berlin"
      - "SERVER_NAME=A V-Rising Server"
      - "SERVER_DESCRIPTION=A server for my friends"
      - GAME_PORT=27015
      - QUERY_PORT=27016
      - MAX_USERS=40
      - MAX_ADMIN=4
      - SERVER_FPS=30
      - "SAVE_NAME=world1"
      - "SERVER_PASS=password"
      - STEAM_LIST=true
      - AUTOSAVE_NUM=50
      - AUTOSAVE_INT=300
      - "GAME_PRESET=StandardPvP"
      - RCON_ENABLE=true
      - RCON_PORT=25575
      - "RCON_PASSWORD=rconpassword"
    ports: 
      - "27015:27015/udp"
      - "27016:27016/udp"
      - "25575:25575/tcp"
    restart: unless-stopped
⁠docker cli
    docker run -d --name='vrising-server' \
    -e "TZ=Europe/Berlin" \
    -e "SERVER_NAME=A V-Rising Server" \ 
    -e "SERVER_DESCRIPTION=A server for my friends" \
    -e GAME_PORT=27015 \
    -e QUERY_PORT=27016 \
    -e MAX_USERS=40 \
    -e MAX_ADMIN=4 \
    -e "SAVE_NAME=world1" \
    -e "SERVER_PASS=password" \
    -e STEAM_LIST=true \
    -e AUTOSAVE_NUM=50 \
    -e AUTOSAVE_INT=300 \
    -e "GAME_PRESET=StandardPvP" \
    -e RCON_ENABLE=true \
    -e RCON_PORT=25575 \
    -e "RCON_PASSWORD=rconpassword" \
    -v '/home/user/vrising-server/server':'/mnt/vrising/server':'rw' \
    -v '/home/user/vrising-server/persistentdata':'/mnt/vrising/persistentdata':'rw' \
    -p 27015:27015/udp \
    -p 27016:27016/udp \
    -p 25575:25575/tcp \
    'solareon/vrising-svr:latest'

⁠Configuring the Server

There are two main settings files that the server is using.

  • ServerHostSettings.json
  • ServerGameSettings.json

As the names suggest, one of them is for hosting related settings and the other one is for game play related settings.

The default settings of these can be found in /server/VRisingServer_Data/StreamingAssets/Settings/. These are only for reference and not used during the running over the server

After the server has loaded the default files it looks for local overrides. These are located in: /persistentdata/Settings

Note: ServerHostSettings.json is overwritten on startup using information from server variables. If you do not define the environment variables they will be filled with the defaults from the table below.

Definitions for ServerGameSettings.json are available here (PDF)⁠

⁠Environment Variables

The most important settings exposed as environment variables are the following:

SettingValue TypeExample ValueComment
SERVER_NAMEstring"My V Rising Server"Name of server.
SERVER_DESCRIPTIONstring"This is a role playing server"Short description of server purpose, rules, message of the day.
SERVER_ADDRESSip_address"10.20.0.3"IP address to bind server to, useful for servers with multiple addresses and you only want VRising to run on a particular one.
GAME_PORTnumber27015UDP port for game traffic.
QUERY_PORTnumber27016UDP port for Steam server list features.
MAX_USERSnumber40Max number of concurrent players on server.
MAX_ADMINnumber4Max number of admins to allow connect even when server is full.
SERVER_FPSnumber30Target FPS for server.
VAC_ENABLEbooleantrueEnable VAC protection for server. VAC banned clients will not be able to connect.
SAVE_NAMEstring"world1"Name of save file/directory.
SERVER_PASSstring"password"Set a password or leave empty.
STEAM_LISTbooleantrueSet to true to list on server list, else set to false.
AUTOSAVE_NUMnumber50Number of autosaves to keep.
AUTOSAVE_INTnumber300Interval in seconds between each auto save.
GAME_PRESETstring"StandardPvP"Name of a GameSettings preset found in the GameSettingPresets folder. Using this will prevent any changes from ServerGameSettings.json from taking effect.
LAN_MODEbooleanfalseEnable/Disable LAN Mode (Unknown functionality).
RCON_ENABLEbooleanfalseEnable or disable RCON functionality.
RCON_PORTnumber25575Port for RCON to listen on.
RCON_PASSWORDstring"password"Sets password for RCON access. (REQUIRED) to access RCON.
RCON_ADDRESSip_address"10.20.0.3"IP address to bind RCON port to, useful for servers with multiple addresses.

If you want others to connect to your server, make sure you allow the server through your firewall. You might also need to forward ports on your router. To do this, please follow your manufacturer's instructions for your particular router.

If you want your server to show up on the server list you need to make sure that both the specified queryPort and gamePort is open in your firewall and forwarded on your router, otherwise just opening/forwarding the gamePort will be enough.

⁠Server Administration (In-Game)

To become an administrator in the game you will first need to modify the adminlist.txt file under /persistentdata/Settings/ with your steamId (one steamId per line). This can be done without restarting your server. To become an administrator in the game you need to enable the console in the options menu, bring it down with ~ and authenticate using the adminauth console command. Once an administrator you can use a number of administrative commands like banuser, bancharacter, banned, unban and kick.

If you ban users through the in-game console the server will automatically modify the banlist.txt located under /persistentdata/Settings/ but you can also modify this manually (one steamId per line).

⁠Admin Commands

Below is a list of some admin commands available in the console. This documentation is a work in progress

CommandArgumentsComment
Alias(Alias, Command)Removes target alias
AddtimenumberAdds up to 12 hours of in-game time. Game time only goes forward
AdminauthN/AGrants admin privileges
AdmindeauthN/ARelinquishes admin privileges
Bancharacter(Character Name)Bans the user playing with the specified character name from the server
BannedN/ALists all banned players
Banuser(Steam ID)Bans the user with the specified Steam ID from the server
ChangedurabilityN/AChange durability of equipped items
ClearN/AClears all text from the console
GatherAllAlliesN/ATeleports all allies to mouse cursor position
GatherAllAlliesExceptMeN/ATeleports all allies, except you, to mouse cursor position
GatherAllNonAlliesN/ATeleport all non-allies to mouse cursor position
GatherAllPlayersN/ATeleports all players to mouse cursor position
GatherAllPlayersExceptMeN/ATeleports all players, except you, to mouse cursor position
Give(What, Amount)Set value on the nearest entity
Giveset(What)Set value on the nearest entity
Hidecursor(Unnamed Argument)Set whether the cursor should be hidden or not
Kick(Character Name)Kicks a player from the server
KillN/AKills your character
List(Optional: Category)Lists all existing commands and categories
Listusers(Include Disconnected)Lists users that are active on the server
MultiCommand(Commands)Executes multiple commands separated by the semi colon (;) character
PlayerTeleportN/ATeleport player to mouse cursor position
ReconnectN/AReconnects to the server
Setadminlevel(user, level)Set or change the admin level of a user
TeleportPlayerToMe(User)Teleports a player to your location
TeleportPlayerToMousePosition(User)Teleports a player to current mouse cursor position
TeleportToChunk(Unnamed Argument)Teleport player to chunk co-ordinate
TeleportToChunkWaypoint(Unnamed Argument)Teleport player to entered waypoint
TeleportToNetherN/ATeleport to nether
TeleportToPlayer(User)Teleport to player location
Unban(User Index)Unbans a player from the server. You need to run the banned command first to get a list of banned players

⁠Save Files

The default location for save files are: /persistentdata/Saves/

⁠Backups

It is highly recommended to backup the save files often and before patching or before starting the server after having patched.

The current auto save settings allows you to set save interval and save count. So with the same amount of disk space you either save often but maybe not have that many save files (not so far back in time), or save less often (longer rollback in-case of crash) and have more save files, or high number of on both and consume more disk space. So, again, regularly backing up you save files is highly recommended in case your game state becomes corrupted.

For a point of comparison most save games are around 50-70MB per save. The default configuration will use around 3GB

⁠RCON

Altough currently with limited functionality, you can configure the server to listen to RCON connections. If you are not familiar with RCON you can read more about it here: https://developer.valvesoftware.com/wiki/Source_RCON_Protocol⁠.

To enable RCON, enable the appropriate environment variables

These are the currently available commands:

CommandParameterComment
announcestringSends a message to all players connected to the server.
announcerestartnumberSends a pre-configured message that announces server restart in x minutes to all players connected to the server. Less flexible than announce but has the benefit of being localized to each users language.

To connect to the server you need an RCON client. There are multiple available, one known to work with V Rising is https://github.com/Tiiffi/mcrcon⁠.

Tag summary

Content type

Image

Digest

Size

519.3 MB

Last updated

over 4 years ago

docker pull solareon/vrising-svr