My buddies and I have been planning a VR night where we will be playing Pavlov VR, which is a first person shooter. Looking forward to the event, I’ve spent the time setting up our own person server running on my Unraid home server, so that we can pick the maps and game types that we’ll play. Since it took a few days, I figured I’d document the process so others could leverage what I’ve learned.
We’re going to be leveraging the Docker image ich777/steamcmd:pavlovvr
, which is a tag of the wonderful ich777/steamcmd
series, which the author has setup and optimized for Unraid.
If you’re doing this outside of Unraid, it should still work, but the remaining steps will primarily assume you’re using Unraid. There’s nothing stopping you from using this image and guide for a non-unraid approach though…
Navigate to your Docker tab and find this image and get to the screen where you fill out the template. We’re going to add a few ports and a volume. The ports are so we can get the master game server to discover our server, have access to the admin panel called rcon, and so we have a directory for our community maps to be saved so we don’t inflate our docker.img
file.
My template looks like this:
The important take aways are the three ports defined and the mount path.
At this point the container should be startable, but not reachable by the master game server due to our router. We’ll want to open the following ports on our router and forward them onto our network
- external port 7777 -> [internal unraid ip]:7777 protocol UDP
- external port 8177 -> [internal unraid ip]:8177 protocol UDP
- external port 9100 -> [internal unraid ip]:9100 protocol TCP
Now at this point our server will be accessible, but we haven’t customized it at all. To set the name of our server, maps we’ll play, number of players we’ll support will all be done by the file /serverdata/serverfiles/Pavlov/Saved/Config/LinuxServer/Game.ini
. Additionally, we’ll create a file at /serverdata/serverfiles/Pavlov/Saved/Config/RconSettings.txt
to select a port to allow rcon to run on.
Lets remote into the container. Run these commands on your unraid machine.
- find the container id:
$ docker ps | grep pav
and record the output - start a bash shell in the pavlov container:
$ docker exec -it [container id] /bin/bash
- Install convenient tools:
$ apt-get update -y && apt-get install vim zsh tmux tree less -y
- Modify Game.ini:
$ vim /serverdata/serverfiles/Pavlov/Saved/Config/LinuxServer/Game.ini
(content to put in this file is below) - Modify
$ /serverdata/serverfiles/Pavlov/Saved/Config/RconSettings.txt
(content to put in this file is below)
Example Game.ini
|
|
Example RconSettings.txt
|
|
At this point, you should be able to join your server with your customized maps in game. Additionally, you should be able to access an admin panel by finding your server on pavlov horde. Be sure to have the PC servers tab selected.
A shout out to the wonderful people that helped me debug this setup:
- ich777, on the unraid forums
- invicta_nz, on the Pavlov VR discord
- MessiahPenguin, on the Pavlov VR discord