All apps · 0 apps
V-Rising
Docker app from Blairwin's Repository
Overview
Readme
View on GitHubV 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.
Requirements
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
ferment9348/v-rising:latestRuntime arguments
- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--restart=unless-stopped
Template configuration
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
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
Steam server list traffic. Forward this too, or the server runs fine and never appears in the browser.
- Target
- 27016
- Default
- 27016
- Value
- 27016
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. 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
The RCON port the server binds. Keep it equal to RCON Port above.
- Target
- RCON_PORT
- Default
- 25575
- Value
- 25575
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
SteamCMD itself. Small, and shareable with other SteamCMD containers.
- Target
- /serverdata/steamcmd
- Default
- /mnt/user/appdata/steamcmd
- Value
- /mnt/user/appdata/steamcmd
Name shown in the server browser. Applied on every restart.
- Target
- SERVER_NAME
- Default
- V Rising Server
- Value
- V Rising Server
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
Player slots. 128 is the documented maximum. Applied on every restart.
- Target
- MAX_PLAYERS
- Default
- 40
- Value
- 40
Join password. Leave blank for an open server. Applied on every restart.
- Target
- SRV_PWD
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
Shown in the server browser's details panel, and printed in chat as players connect.
- Target
- SERVER_DESC
Admins allowed to connect even when the server is full.
- Target
- MAX_ADMINS
- Default
- 4
- Value
- 4
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_Easy, Difficulty_Normal or Difficulty_Brutal. Blank leaves the setting alone.
- Target
- DIFFICULTY_PRESET
Register on the Steam server list. true or false.
- Target
- LIST_ON_STEAM
- Default
- true
- Value
- true
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
VAC protection. VAC banned clients cannot connect. true or false.
- Target
- SECURE
- Default
- true
- Value
- true
Appended to the launch line verbatim. Most settings do not need this - see the Overview about VR_ variables.
- Target
- GAME_PARAMS_EXTRA
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
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
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
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
Leave blank. The V Rising server downloads anonymously.
- Target
- USERNAME
Leave blank.
- Target
- PASSWRD
User ID. 99 is the Unraid default.
- Default
- 99
- Value
- 99
Group ID. 100 is the Unraid default.
- Default
- 100
- Value
- 100
Mode applied to the top of the server directory.
- Target
- DATA_PERM
- Default
- 775
- Value
- 775
umask for files the server creates. 000 keeps them editable over the share.
- Default
- 000
- Value
- 000