V-Rising

V-Rising

Docker app from Blairwin's Repository

Overview

V Rising dedicated server. V Rising ships no Linux server binary, so this pulls the Windows depot with SteamCMD and runs it under GE-Proton, the same way the ARK: Survival Ascended container here does. First boot downloads about 2GB and then builds a Proton prefix, which can sit quiet for several minutes before anything appears in the log. That is normal. Settings here are applied on every restart, so changing Max Players or the password and restarting takes effect. They are passed to the server as launch options rather than written into its config files, which means your own edits to ServerHostSettings.json and ServerGameSettings.json are never overwritten - the container seeds those two files once from the defaults the server ships with and then leaves them alone forever. Anything not listed as a field below is still reachable: the server reads its own VR_ environment variables, so adding a variable named VR_FPS with a value of 45 sets the server framerate, and every setting in Stunlock's documentation works the same way. See https://github.com/StunlockStudios/vrising-dedicated-server-instructions for the full list. The server saves when the container stops. Raise Unraid's own container stop timeout to at least 75 seconds so the save is not cut off.

V Rising — dedicated server for Unraid

V Rising ships no Linux server binary, so this container pulls the Windows depot with SteamCMD and runs VRisingServer.exe under GE-Proton — the same approach as the ARK: Survival Ascended container in this repo. It also runs the server under a virtual display, because the binary will not start without one even headless.

First boot downloads about 2GB, then builds a Proton prefix, and settles at about 4GB on disk. It can sit quiet for a few minutes before anything appears in the log. That is normal.

Get the image

docker pull ferment9348/v-rising:latest

Or build it yourself, from the repo root:

docker build -f games/v-rising/Dockerfile -t v-rising .

Install on Unraid

It is in Community Applications as V-Rising. Everything below maps to a field in that template; the variable names are what you would use with docker run.

Ports

Port Protocol What for
27015 UDP Game traffic. Required, and the one to forward.
27016 UDP Steam query. Forward it too, or the server runs fine and never appears in the browser.
25575 TCP RCON. Only expose this if you administer from outside the box.

If you also run the ARK container on this server, its Query Port defaults to 27015 as well and Docker refuses to start the second container. Change one of them. ARK's is the safer one to move: its 27015 is vestigial, since ASA's discovery goes through EOS.

To move the game port, three numbers have to agree: the container port, the host port, and GAME_PORT. Docker cannot tell the server what its host port is, so if GAME_PORT differs from the container port nothing reaches the server, and if it differs from the host port the log reports a number players cannot use. The same applies to the query pair and QUERY_PORT.

Configuration

The template's fields are passed to the server as launch options on every start, so changing one and restarting takes effect immediately.

Variable Default What it does
SERVER_NAME V Rising Server Name in the server browser.
SERVER_DESC empty Description in the browser's details panel.
WORLD_NAME world1 Save directory name. See below.
MAX_PLAYERS 40 Player slots. 128 is the documented maximum.
MAX_ADMINS 4 Admins who can join a full server.
SRV_PWD empty Join password. Blank means open.
SRV_ADMIN_PWD empty RCON password. Blank disables RCON entirely.
GAME_PORT 27015 Game port the server binds.
QUERY_PORT 27016 Steam query port.
RCON_PORT 25575 RCON port, used only with an admin password.
GAME_PRESET empty A preset from GameSettingPresets, e.g. StandardPvP.
DIFFICULTY_PRESET empty Difficulty_Easy, Difficulty_Normal, Difficulty_Brutal.
LIST_ON_STEAM true Register on the Steam server list.
LIST_ON_EOS true Register on the EOS list, where the client looks by default.
SECURE true VAC protection.
STOP_TIMEOUT 60 Seconds to wait for a save-and-exit.
PROTON_VERSION GE-Proton10-34 The GE-Proton build to run under.

Every other setting works too, without a field for it

The server reads its own VR_-prefixed environment variables, and those override the config file. So anything in Stunlock's documentation is reachable by adding a variable in the template, whether or not it appears in the table above:

Add a variable With a value And you get
VR_FPS 45 A server framerate target of 45.
VR_LAN_MODE true LAN mode.
VR_SAVE_INTERVAL 300 An autosave every 5 minutes.

That is the answer to "can I set X" for every X: yes, name it VR_<SETTING> and the server picks it up.

Your config edits are never overwritten

On first boot the container copies the two settings files the server ships with into save-data/Settings/, and after that it never writes them again — not on restart, not on update. ServerGameSettings.json, which holds the ~60 gameplay balance knobs, the container never touches at all: edit it freely and restart.

This is why the template's fields are launch options rather than file rewrites. Both can be right at once, and neither clobbers the other.

Save Name is not a rename

Changing WORLD_NAME points the server at a different save directory. If that directory does not exist, a new world is generated — the old one stays on disk under save-data/Saves/ and setting the name back returns to it. Nothing is renamed and nothing is deleted.

Sending console commands

RCON is off unless you set an admin password. With one set:

docker exec V-Rising /opt/scripts/rcon-cli.sh announce "Restarting in 5 minutes"
docker exec V-Rising /opt/scripts/rcon-cli.sh "shutdown 60,30,10 Server restarting"
docker exec V-Rising /opt/scripts/rcon-cli.sh version

The full command list is help, announce, announcerestart, shutdown, cancelshutdown, name, description, password, version and time.

Stopping safely

V Rising saves when the container stops, so a normal docker stop or the Unraid stop button is safe. Measured: the save is written about a second after the stop begins and the container is down in about four. STOP_TIMEOUT (default 60) is how long it waits for that save before forcing the issue, so there is a wide margin.

Raise Unraid's own container stop timeout to at least 75 seconds. Docker's default is 10, and if that fires first it kills the container mid-save. The setting is under Settings → Docker.

You do not need RCON for this. The shutdown path signals the server directly, so a server with no admin password still saves cleanly. RCON's own shutdown command saves too, but it schedules rather than acts — a one-minute notice really does wait, which is useful for warning players and useless for stopping a container.

Troubleshooting

Nothing in the log at all, for a long time. First boot is genuinely slow: 2GB of download, then a Proton prefix build. If it stays silent well past that, the Proton build is the first suspect — this repo has been bitten by exactly that before, on ARK. Set DEBUG=true and restart to capture wine and Proton output, and check PROTON_VERSION is GE-Proton10-34.

The server starts but is not in the server browser. Check the query port: 27016 has to be forwarded as well as the game port, and LIST_ON_EOS / LIST_ON_STEAM have to be true.

A CPU without AVX. Handled automatically. lib_burst_generated.dll is compiled for AVX and aborts the server on a CPU that lacks it, so the container moves it aside and says so in the log.

License

MIT, same as the rest of this repo.

Install V-Rising on Unraid in a few clicks.

Find V-Rising in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for V-Rising Review the template variables and paths Click Install

Requirements

About 4GB once installed - 1.6GB of server files, 2.1GB for the GE-Proton build and its wine prefix - so allow 6GB of free space for saves and updates. It is not a light server, so give it several GB of RAM. The array is fine; a cache drive or SSD makes world loads and saves noticeably quicker.

Categories

Download Statistics

74
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
ferment9348/v-rising:latest
Last Updated2026-09-07
First Seen2026-09-07

Runtime arguments

Network
bridge
Shell
bash
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

Game PortPortudp

Game traffic. UDP. This is the one to forward. To change it, set the Container Port, the Host Port and Server Port below all to the same number - Docker cannot tell the server what its host port is, so the three have to agree for the log to report the port players actually type. If you also run the ARK: Survival Ascended container on this server, its Query Port defaults to 27015 as well and Docker will refuse to start the second container. Change one of them - ARK's is the safer one to move, since its 27015 is vestigial and discovery goes via EOS.

Target
27015
Default
27015
Value
27015
Server PortVariable

The port the server binds. Keep it equal to Game Port above, both the Container Port and the Host Port.

Target
GAME_PORT
Default
27015
Value
27015
Query PortPortudp

Steam server list traffic. Forward this too, or the server runs fine and never appears in the browser.

Target
27016
Default
27016
Value
27016
Server Query PortVariable

The query port the server binds. Keep it equal to Query Port above, both the Container Port and the Host Port.

Target
QUERY_PORT
Default
27016
Value
27016
RCON PortPorttcp

RCON. Only forward this if you administer the server from outside this box - anyone who reaches it and has the admin password controls the server.

Target
25575
Default
25575
Value
25575
Server RCON PortVariable

The RCON port the server binds. Keep it equal to RCON Port above.

Target
RCON_PORT
Default
25575
Value
25575
Game FilesPathrw

Where the server, saves and settings live. Several GB - see Requires below.

Target
/serverdata/serverfiles
Default
/mnt/user/appdata/v-rising
Value
/mnt/user/appdata/v-rising
SteamCMDPathrw

SteamCMD itself. Small, and shareable with other SteamCMD containers.

Target
/serverdata/steamcmd
Default
/mnt/user/appdata/steamcmd
Value
/mnt/user/appdata/steamcmd
Server NameVariable

Name shown in the server browser. Applied on every restart.

Target
SERVER_NAME
Default
V Rising Server
Value
V Rising Server
Save NameVariable

Name of the save directory. Changing this after first boot starts a NEW world - the old one stays on disk under save-data/Saves and can be switched back to by setting this name again. It does not rename anything.

Target
WORLD_NAME
Default
world1
Value
world1
Max PlayersVariable

Player slots. 128 is the documented maximum. Applied on every restart.

Target
MAX_PLAYERS
Default
40
Value
40
Server PasswordVariable

Join password. Leave blank for an open server. Applied on every restart.

Target
SRV_PWD
Admin PasswordVariable

RCON password. Leaving this blank disables RCON entirely, which is the safe default - the server still saves and shuts down cleanly without it. Set it only if you want to run admin commands.

Target
SRV_ADMIN_PWD
Server DescriptionVariable

Shown in the server browser's details panel, and printed in chat as players connect.

Target
SERVER_DESC
Max AdminsVariable

Admins allowed to connect even when the server is full.

Target
MAX_ADMINS
Default
4
Value
4
Game Settings PresetVariable

Load one of the presets shipped in VRisingServer_Data/StreamingAssets/GameSettingPresets, e.g. StandardPvP. Blank uses ServerGameSettings.json as it stands.

Target
GAME_PRESET
Difficulty PresetVariable

Difficulty_Easy, Difficulty_Normal or Difficulty_Brutal. Blank leaves the setting alone.

Target
DIFFICULTY_PRESET
List on SteamVariable

Register on the Steam server list. true or false.

Target
LIST_ON_STEAM
Default
true
Value
true
List on EOSVariable

Register on the EOS server list, which is where the client looks by default. true or false.

Target
LIST_ON_EOS
Default
true
Value
true
Secure ModeVariable

VAC protection. VAC banned clients cannot connect. true or false.

Target
SECURE
Default
true
Value
true
Extra Game ParametersVariable

Appended to the launch line verbatim. Most settings do not need this - see the Overview about VR_ variables.

Target
GAME_PARAMS_EXTRA
Validate FilesVariable

Set to true to have SteamCMD verify every file on the next start. Slow. Use it after a crash or a failed update.

Target
VALIDATE
Debug LoggingVariable

Turns on Proton and wine logging. Noisy and slows startup - use it when the server exits without writing any log of its own.

Target
DEBUG
Default
false
Value
false
Proton VersionVariable

GE-Proton build to run the server under. This image is tested against GE-Proton10-34. A build the game does not tolerate fails silently, before any log is written - if that happens, set this back and delete the proton folder so the prefix is rebuilt.

Target
PROTON_VERSION
Default
GE-Proton10-34
Value
GE-Proton10-34
Stop TimeoutVariable

Seconds to wait for a graceful save-and-exit before force killing. Also raise Unraid's own container stop timeout to match.

Target
STOP_TIMEOUT
Default
60
Value
60
Steam UsernameVariable

Leave blank. The V Rising server downloads anonymously.

Target
USERNAME
Steam PasswordVariable

Leave blank.

Target
PASSWRD
UIDVariable

User ID. 99 is the Unraid default.

Default
99
Value
99
GIDVariable

Group ID. 100 is the Unraid default.

Default
100
Value
100
Data PermissionsVariable

Mode applied to the top of the server directory.

Target
DATA_PERM
Default
775
Value
775
UMASKVariable

umask for files the server creates. 000 keeps them editable over the share.

Default
000
Value
000