Skip to content

VEIN

VEIN is a post-apocalyptic survival multiplayer sandbox game. Gather supplies to survive, explore abandoned buildings, combat bandits, defend your home, assist friendly NPCs, and rebuild society with friends.

egg-vein.json

updated

Ports

Add an allocation on the node for each port.

  • Game 7777
  • Query 27015

Install

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

Image

  • SteamCMD, Debian ghcr.io/ptero-eggs/steamcmd:debian

Startup

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

7 variables

Startup command

./Vein/Binaries/Linux/VeinServer-Linux-Test -Port=7777 -QueryPort=27015 -log

Dotted values come from the server settings. These values are examples.

  • SRCDS_APPIDUsers cannot see

    required|string|in:2131400

  • Auto update the server on start

    AUTO_UPDATEUsers can edit

    required|boolean

  • QUERY_PORTUsers can see

    required|numeric

  • MAX_PLAYERSUsers can edit

    required|numeric

  • Change this to false if you don’t want your game to be listed in the server browser

    PUBLIC_SERVERUsers can edit

    required|string|in:True,False

  • SERVER_NAMEUsers can edit

    required|string|max:64

  • SERVER_PASSWORDUsers can edit

    required|alpha_dash|max:32|min:4A value is required.

Wings

Stop command
^C (SIGINT)
Running when the console shows
Created session GameSession.

Files Wings edits

Wings sets these values in these files before each start.

Vein/Saved/Config/LinuxServer/Game.ini file

MaxPlayers=
MaxPlayers={{server.build.env.MAX_PLAYERS}}
bShouldAdvertise=
bShouldAdvertise={{server.build.env.PUBLIC_SERVER}}
ServerName=
ServerName={{server.build.env.SERVER_NAME}}
BindAddr=
BindAddr=0.0.0.0
Password=
Password={{server.build.env.SERVER_PASSWORD}}
GameServerQueryPort=
GameServerQueryPort={{server.build.env.QUERY_PORT}}

Readme

VEIN

From their Steam

Documentation

Installation/System Requirements

Bare Minimum Recommended
Processor Almost any proccessor will work (AMD64 only) -
RAM 12 GiB 16 GiB
Storage 15 GiB 20 GiB
Network Any reasonable speed -
Game Ownership Not needed *

Server Ports

Ports required to run the server in a table format.

Port default
Game 7777
Query 27015

Config

Some config values can be changed under the startup tab. Everything else must manual be changed in Vein/Saved/Config/LinuxServer/Game.ini

See here what every option means.

Warning

Do not touch the Vein/Saved/Config/LinuxServer/Engine.ini file, it will brake the console!

Changes

  1. Validate and update embedded URLs

    · Daniel Barton · bf9f3cb

  2. SteamCMD + Other fixes

    · yesBad · edbf925

  3. 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 63 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server
# Image to install with is 'ghcr.io/ptero-eggs/installers:debian'

 ##

# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.
#apt -y update
#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates

## just in case someone removed the defaults.
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
    echo -e "steam user is not set.\n"
    echo -e "Using anonymous user.\n"
    STEAM_USER=anonymous
    STEAM_PASS=""
    STEAM_AUTH=""
else
    echo -e "user set to ${STEAM_USER}"
fi

## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/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
export HOME=/mnt/server

## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6

## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so

## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so

## add below your custom commands if needed
FILE=/mnt/server/Vein/Saved/Config/LinuxServer/Game.ini
if [ -f "$FILE" ]; then
    echo "Config file exitis, skipping"
else 
    echo "Config file does not exits, making one"
    mkdir -p /mnt/server/Vein/Saved/Config/LinuxServer/
    ## Will only work if the egg is merged
    curl -sSL -o /mnt/server/Vein/Saved/Config/LinuxServer/Game.ini https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/vein/Game.ini
    curl -sSL -o /mnt/server/Vein/Saved/Config/LinuxServer/Engine.ini https://pteropaste.com/lt75qughcmfj
fi

## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"