Skip to content

V Rising BepInEx

Awaken as a vampire. Hunt for blood in nearby settlements to regain your strength and evade the scorching sun to survive. Raise your castle and thrive in an ever-changing open world full of mystery. Gain allies online and conquer the land of the living.

egg-v-rising-bepinex.json

updated

Ports

Add an allocation on the node for each port.

  • Game (Primary Port in Pterodactyl) 9876
  • Query 9877
  • RCON 25575

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Steam app
1829350
Steam login
not required
Install script
169 lines

Image

  • Wine ghcr.io/ptero-eggs/yolks:wine_latest

Panel features

  • steam_disk_space

    The Panel tells the user when SteamCMD does not have enough disk space.

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

27 variables

Startup command

WINEDLLOVERRIDES="winhttp=n,b"; xvfb-run wine ./VRisingServer.exe -persistentDataPath save-data -address 0.0.0.0
  • Quickly checks for any server updates on startup, and updates if necessary.

    AUTO_UPDATEUsers can edit

    boolean

  • Leave empty (no value) for OFF or type "true" or "1" for ON. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.

    VALIDATEUsers can edit

    string|nullable

  • Used for installation and updates. Rarely needs to be changed.

    SRCDS_APPIDUsers cannot see

    required|integer

  • Tells the installer/updater to only download the Windows branch of the server (the only branch currently available) so that it can run on Wine. Cannot be changed.

    WINDOWS_INSTALLUsers cannot see

    required|string|in:1

  • WINEDEBUGUsers cannot see

    required|string|max:20

  • WINEARCHUsers cannot see

    required|string|max:20

  • WINEPATHUsers cannot see

    required|string|max:20

  • UDP port for Steam server list features.

    QUERY_PORTUsers can see

    required|integer|between:1024,65536

  • What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~/save-data/Settings/` directory.

    GAME_SETTINGS_PRESETUsers can edit

    nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP

  • Name of the server that will appear in the server list.

    SERVER_NAMEUsers can edit

    required|string

  • Short description of server purpose, rules, and the message of the day.

    DESCRIPTIONUsers can edit

    nullable|string

  • Max number of concurrent players on the server.

    MAX_PLAYERSUsers can edit

    required|integer|min:1

  • Max number of admins to allow connection even when the server is full.

    MAX_ADMINSUsers can edit

    required|integer|min:0

  • Password required to join the server. Leave blank to have no password.

    SERVER_PASSWORDUsers can edit

    nullable|string

  • Name of save file / directory.

    SAVE_NAMEUsers can edit

    required|string

  • Number of autosaves to keep.

    SAVE_COUNTUsers can edit

    required|integer|min:0

  • Interval in seconds between each autosave.

    SAVE_INTERVALUsers can edit

    required|integer|min:1

  • Set to true to list on the server list, else set to false.

    SERVER_LISTUsers can edit

    required|string|in:true,false

  • How often the server refreshes. (Default: 30)

    FPSUsers can edit

    required|integer|min:1

  • See the following link for info on how to connect and use RCON: https://github.com/StunlockStudios/vrising-dedicated-server-instructions#rcon

    RCONUsers can edit

    required|string|in:true,false

  • Password required to connect to RCON if it is enabled.

    RCON_PASSUsers can edit

    required|string

  • Port used to connect to RCON. Must be allocated to the server for RCON to work.

    RCON_PORTUsers can see

    required|integer|between:1024,65536

  • (true or false)

    SERVER_SECUREUsers can edit

    required|string|in:true,false

  • (true or false)

    ADMIN_ONLY_DEBUG_EVENTSUsers can edit

    required|string|in:true,false

  • (true or false)

    DEBUG_EVENTSUsers can edit

    required|string|in:true,false

  • XVFBUsers cannot see

    boolean

  • WINETRICKS_RUNUsers cannot see

    required|string|max:50

Wings

Stop command
^C (SIGINT)
Running when the console shows
Loaded ServerGameSettings

Files Wings edits

Wings sets these values in these files before each start.

save-data/Settings/ServerHostSettings.json json

Name
{{server.build.env.SERVER_NAME}}
Description
{{server.build.env.DESCRIPTION}}
Port
{{server.build.default.port}}
QueryPort
{{server.build.env.QUERY_PORT}}
MaxConnectedUsers
{{server.build.env.MAX_PLAYERS}}
MaxConnectedAdmins
{{server.build.env.MAX_ADMINS}}
ServerFps
{{server.build.env.FPS}}
SaveName
{{server.build.env.SAVE_NAME}}
Password
{{server.build.env.SERVER_PASSWORD}}
Secure
{{server.build.env.SERVER_SECURE}}
ListOnSteam
{{server.build.env.SERVER_LIST}}
ListOnEOS
{{server.build.env.SERVER_LIST}}
AutoSaveCount
{{server.build.env.SAVE_COUNT}}
AutoSaveInterval
{{server.build.env.SAVE_INTERVAL}}
GameSettingsPreset
{{server.build.env.GAME_SETTINGS_PRESET}}
AdminOnlyDebugEvents
{{server.build.env.ADMIN_ONLY_DEBUG_EVENTS}}
DisableDebugEvents
{{server.build.env.DEBUG_EVENTS}}
Rcon.Enabled
{{server.build.env.RCON}}
Rcon.Password
{{server.build.env.RCON_PASS}}
Rcon.Port
{{server.build.env.RCON_PORT}}

Readme

V Rising BepInEx

NOTE: Server version currently marked as Early Access by the V Rising developers. Your mileage may vary as updates are released.

_NOTE: Serverstart can take up to 15mins on first start!!!

Authors / Contributors


Game Description

From Stunlock Studios's Website:

Awaken as a vampire. Hunt for blood in nearby settlements to regain your strength and evade the scorching sun to survive. Raise your castle and thrive in an ever-changing open world full of mystery. Gain allies online and conquer the land of the living.


Egg Capabilities

  • Currently runs the Windows build of the server via Wine. This egg will be updated when a proper, native Linux server binary is released.
  • Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable.
  • All ServerHostSettings.json settings can be automatically configured via Startup variables.
    • This includes: Server name, game settings preset, password, max players, auto save settings, and more...
  • RCON ready (*requires extra port – see Server Ports). See the RCON section under Manual Configuration Topics for more info.
  • Load BepInEx so you can install mod on your server

Server Ports

  • Default server ports are listed below, but all three ports can be changed freely.
  • The only required port is the Game port, but the Query port is needed for the server to appear in the server list (Direct connect is still possible without the Query port). There have also been reports that servers only appear in the server list if they are popular, so consider this when troubleshooting.
  • Clients connect via the Game port.
  • The RCON port is optional and only required if the server owner enables/uses RCON.
Port Default Protocol
Game (Primary Port in Pterodactyl) 9876 UDP
Query 9877 UDP
RCON 25575 TCP

Installation/System Requirements

Bare Minimum Recommended
Processor Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. Unsubstantiated reports say that RCON uses significantly more CPU when enabled, but I have not been able to replicate myself.
RAM 3072 MiB 4096-6144 MiB
Storage 3.5 GB 5-10 GB (or more, depending on save size or frequency)
Game Ownership Not required at all. ----

Manual Configuration Topics

The following are various topics covering manual configuration procedures the egg does not handle automatically that may be useful to server owners:

Save File and Custom Settings Location

You can find the game settings and saves in the ~/save-data/ directory.

Server Game Settings

Standardized game settings can be applied via the "Game Settings Preset" startup parameter. If you would like a more custom array of settings to adjust, you can copy the ServerGameSettings.json file located in ~/VRisingServer_Data/StreamingAssets/Settings/ to ~/save-data/Settings/ and adjust as needed. Also, ensure "Game Settings Preset" is set to empty/null. A list of settings, with a description of what each setting does and the min/max values where applicable, can be found here.

Becoming an Administrator

To become an administrator in the game you will first need to open the adminlist.txt file under ~/VRisingServer_Data/StreamingAssets/Settings/ and add your steamID64 (one steamID64 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 file, but you can also modify this manually (one steamID64 per line).

Transfer Local/Client Save to the Server

Follow these instructions by the developer very carefully. Note: The -saveName <name> command line parameter and GameSettingsPreset setting are handled automatically by the Egg's "Save Name" and "Game Settings Preset" startup parameters, respectively. Also, if a custom ServerGameSettings.json file exists for any reason in the ~/save-data/Settings directory, delete it.

RCON

RCON can allow general and restart announcements to be made to the server remotely (functions which are not currently supported by the console command line). You can enable RCON by properly configuring the relevant variables under the Startup tab of your Pterodactyl server. The RCON port must be allocated to the server. Click here for list of valid commands and recommended RCON client.

Changes

  1. VRising (BepInEx): Fix not loading due to missing files

    · Daniel Barton · f1b020f

  2. V Rising (BepInEx): Correct version sorting (#161)

    · Daniel Barton · 1643e6d

  3. Move several games to wine_latest

    · Daniel Barton · 7b08ba7

  4. SteamCMD + Other fixes

    · yesBad · edbf925

  5. Add steamcmd based eggs

    · Daniel Barton · 60ef9fb

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 169 lines /bin/bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash

## File: Pterodactyl V Rising Egg - egg-v-rising.json
## Authors: David Wolfe (Red-Thirten), Kapatheus
## Date: 2022/05/28
## License: MIT License
## Image to install with is 'ghcr.io/ptero-eggs/installers:debian'

clear
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.
apt -y update
apt -y --no-install-recommends install curl jq unzip wget
# Download and install SteamCMD
echo -e "${YELLOW}download and install steamcmd${NC}"

export HOME=/mnt/server
cd /tmp
mkdir -p $HOME/steamcmd $HOME/steamapps
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C $HOME/steamcmd
cd $HOME/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt

# Install game server using SteamCMD
echo -e "${YELLOW}install V Rising with SteamCMD${NC}"

./steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +quit

# Set up 32 and 64 bit libraries
mkdir -p $HOME/.steam/sdk{32,64}
cp -v linux32/steamclient.so $HOME/.steam/sdk32/steamclient.so
cp -v linux64/steamclient.so $HOME/.steam/sdk64/steamclient.so

# Enable BEPINEX (Credits to: https://github.com/ricin/vrising-bepinex-linux/blob/main/scripts/start-server.sh)
echo -e "${YELLOW}installing BepInex${NC}"

#variables
BEPINEX_VR_TS_URL=https://v-rising.thunderstore.io/package/BepInEx/BepInExPack_V_Rising/
CUR_V="$(find ${HOME} -maxdepth 1 -name "BepInEx-*" | cut -d '-' -f2)"
BEPINEX_VR_API_DATA="$(curl -s -X GET https://thunderstore.io/c/v-rising/api/v1/package/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4/ -H "accept: application/json")"
LAT_V="$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions | sort_by(.date_created) | reverse | .[0].version_number')"

if [ -z "${LAT_V}" ] && [ -z "${CUR_V}" ]; then
    echo -e "${RED}Can't get latest version of BepInEx for V Rising!${NC}"
    echo -e "${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}"
    exit 1
fi

if [ -f ${HOME}/BepInEx.zip ]; then
    rm -rf ${HOME}/BepInEx.zip
fi
if [ -f ${HOME}/doorstop_config.ini ]; then
    sed -i "/enabled=false/c\enabled=true" ${HOME}/doorstop_config.ini
fi

echo -e "${YELLOW}BepInEx for V Rising Version Check${NC}"
echo -e "${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}"

BEPINEX_VR_TS_DOWNLOAD_URL="$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions | sort_by(.date_created) | reverse | .[0].download_url')"
if [ -z "${CUR_V}" ]; then
    echo -e "${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}"
    
    cd ${HOME}
    rm -rf ${HOME}/BepInEx-*
    if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c "${BEPINEX_VR_TS_DOWNLOAD_URL}" ; then
        echo -e "${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}"
    else
        echo -e "${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}"
        exit 1
    fi
    
    mkdir -p /tmp/BepInEx
    unzip -o ${HOME}/BepInEx.zip -d /tmp/BepInEx
    if [ $? -eq 0 ];then
        rm -fR /mnt/server/dotnet
        touch ${HOME}/BepInEx-${LAT_V}
        cp -rf /tmp/BepInEx/BepInEx*/* ${HOME}/
        cp /tmp/BepInEx/README* ${HOME}/README_BepInEx_for_VRising.txt
        rm -rf ${HOME}/BepInEx.zip /tmp/BepInEx
    else
        echo -e "${RED}Unable to unzip BepInEx archive! Exiting.${NC}"
        exit 1
    fi
elif [ "$CUR_V" != "${LAT_V}" ]; then
    echo -e "${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V}  ...${NC}"
    
    cd ${HOME}
    rm -rf ${HOME}/BepInEx-$CUR_V
    mkdir /tmp/Backup
    cp -R ${HOME}/BepInEx/config /tmp/Backup/
    if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c "${BEPINEX_VR_TS_DOWNLOAD_URL}" ; then
        echo -e "${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}"
    else
        echo -e "${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}"
        exit 1
    fi
    
    unzip -o ${HOME}/BepInEx.zip -d /tmp/BepInEx 
    
    if [ $? -eq 0 ];then
        rm -fR /mnt/server/dotnet
        cp -rf /tmp/BepInEx/BepInEx*/* ${HOME}/
        cp /tmp/BepInEx/README* ${HOME}/README_BepInEx_for_VRising.txt
        touch ${HOME}/BepInEx-${LAT_V}
        cp -R /tmp/Backup/config ${HOME}/BepInEx/
        rm -rf ${HOME}/BepInEx.zip /tmp/BepInEx /tmp/Backup
    else
        echo -e "${RED}Unable to unzip BepInEx archive! Exiting.${NC}"
        exit 1
    fi
elif [ "${CUR_V}" == "${LAT_V}" ]; then
    echo -e "${GREEN}BepInEx v$CUR_V up-to-date!${NC}"
fi


## V Rising Setup
mkdir -p $HOME/save-data/Settings && cd "$_"
cat > ServerHostSettings.json << EOF
{
  "Name": "${SERVER_NAME}",
  "Description": "${DESCRIPTION}",
  "Port": ${SERVER_PORT},
  "QueryPort": ${QUERY_PORT},
  "MaxConnectedUsers": ${MAX_PLAYERS},
  "MaxConnectedAdmins": ${MAX_ADMINS},
  "ServerFps": ${FPS},
  "SaveName": "${SAVE_NAME}",
  "Password": "${SERVER_PASSWORD}",
  "Secure": ${SERVER_SECURE},
  "ListOnMasterServer": ${SERVER_LIST},
  "AutoSaveCount": ${SAVE_COUNT},
  "AutoSaveInterval": ${SAVE_INTERVAL},
  "GameSettingsPreset": "${GAME_SETTINGS_PRESET}",
  "AdminOnlyDebugEvents": ${ADMIN_ONLY_DEBUG_EVENTS},
  "DisableDebugEvents": ${DEBUG_EVENTS},
  "Rcon": {
    "Enabled": ${RCON},
    "Password": "${RCON_PASS}",
    "Port": ${RCON_PORT}
  }
}
EOF

## cleanup to prevent errors
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${RED}deleting old wine dirs... please wait...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"

if [ ! -d "/mnt/server/.wine" ]; then
    rm -fR /mnt/server/.wine
    rm -fR /mnt/server/.config
    rm -fR /mnt/server/.cache
    rm -fR /mnt/server/.local
    rm -fR /mnt/server/appcache
fi
echo -e "${GREEN}..done..${NC}"

echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${GREEN}Installation completed${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"