Soulmask

games
Report Issue

Escaping a deadly sacrificial ritual, you find an ancient mystical mask on your journey. This mask holds potent knowledge, changing the world you knew. Face the harsh challenges of nature, survive, rally followers, and build your own tribe. Explore and unveil the truths behind the enigmatic mask.

Contributors:
README

Soulmask

Game Description

Escaping a deadly sacrificial ritual, you find an ancient mystical mask on your journey. This mask holds potent knowledge, changing the world you knew. Face the harsh challenges of nature, survive, rally followers, and build your own tribe. Explore and unveil the truths behind the enigmatic mask.

Useful links

Steam: https://store.steampowered.com/app/2646460/Soulmask/

Author & Contributers

Name Github Profile Buy me a Coffee
QuintenQVD0 https://github.com/QuintenQVD0 ko-fi

Server Ports

Soulmask requires up to 4 ports. You can choose every port you want.

Port default
Game 7777
Query 27015
EchoPort 18888
ClusterPort 2000

Important Server Files Locations

File Path
World Save WS\Saved\Worlds\Dedicated(selectedmap)\world.db
Server Config WS\Saved\Config\LinuxServer\
Gameplay Settings WS\Saved\Gameplaysettings\GameXishu.json
Server Logs WS\Saved\Logs
Backups WS\Saved\Worlds\Dedicated(selectedmap\backup

Special Note

  • A single game process requires at least 16GB of memory and 2-4 CPU cores.
  • Bandwidth requirements: Each game server's inbound/outbound bandwidth is about 100kbps/player.
  • The game package size is about 1-2GB, requiring about 20GB of free disk space for operation.
  • Cluster Port : The TCP broadcast port that client server will connect to. The presence of this parameter designates the server as a main server for a cluster. This port should not be open to the public, but needs to be accessible to servers within the cluster. Any server with access to the port can register as a client server.

Mods

  • When you want to join your modded server, activate the mods ingame in the Main menu before joining your server.
  • When adding mods , be sure there are no spaces as example: MODID1,MODID2,MODID3

Extra Info

Extra info can be found on saraserenity.net

Docker Images (1)
Name Image
SteamCMD ghcr.io/ptero-eggs/steamcmd:debian
Startup Command
/home/container/WS/Binaries/Linux/WSServer-Linux-Shipping WS {{MAP}} -log -server -UTF8Output -serverid={{SERVER_ID}} -mainserverport={{CLUSTER_MAIN_PORT}} -clientserverconnect={{CLUSTER_MAIN_IP}}:{{CLUSTER_MAIN_PORT}} -SteamServerName="{{SERVER_NAME}}" -saving={{SAVE_TIME}} -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -EchoPort={{ECHO_PORT}} -forcepassthrough -adminpsw={{ADMIN_PASSWORD}} -PSW={{SERVER_PASSWORD}} -MaxPlayers={{MAX_PLAYERS}} -gamedistindex={{region}} -backup={{BACKUP_TIME}} -MULTIHOME=0.0.0.0 -mod=\"{{MOD_ID}}\"
Variables (17)

App ID

Environment:
SRCDS_APPID
Default:
3017300
User Viewable:
User Editable:
Rules:
required|string|in:3017300

Auto Update

Auto update the server on start

Environment:
AUTO_UPDATE
Default:
1
User Viewable:
User Editable:
Rules:
required|boolean

Server Name

Specifies the name of the game instance displayed in the server list

Environment:
SERVER_NAME
Default:
Soulmask Server
User Viewable:
User Editable:
Rules:
required|string|max:85

Map Players

Specifies the maximum number of players the game instance can support.

Environment:
MAX_PLAYERS
Default:
60
User Viewable:
User Editable:
Rules:
required|numeric|between:1,70

Backup Interval

Specifies the interval for writing the game database to disk (unit: seconds).

Environment:
BACKUP_TIME
Default:
960
User Viewable:
User Editable:
Rules:
required|numeric

Save Time Interval

Specifies the interval for writing game objects to the database (unit: seconds).

Environment:
SAVE_TIME
Default:
600
User Viewable:
User Editable:
Rules:
required|numeric

Query Port

Specifies the Steam query port, UDP, needs to be open to the public.

Environment:
QUERY_PORT
Default:
27015
User Viewable:
User Editable:
Rules:
required|numeric|between:1024,65536

Echo Port

Maintenance port, used for local telnet server maintenance, TCP, does not need to be open.

Environment:
ECHO_PORT
Default:
18888
User Viewable:
User Editable:
Rules:
required|numeric|between:1024,65536

Server Password

Server password, private servers can specify a password, players must enter the password to enter the server.

Environment:
SERVER_PASSWORD
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:32

Admin Password

GM activation password.Open GM Panel (gm key [password])

Environment:
ADMIN_PASSWORD
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:32

Mods

Specifies the order and which mods are loaded. ModIDs need to be comma-separated such as: ModID1,ModID2,ModID3

Environment:
MOD_ID
Default:
None
User Viewable:
User Editable:
Rules:
nullable|regex:/^[0-9,]+$/

Region

0: Test (events allowed any time) 1= Asia 2=North America 3=Europe 4=Mainland China 5=South America 6=Oceania 7=Africa

Environment:
region
Default:
0
User Viewable:
User Editable:
Rules:
required|digits:1

Map

Which map to load . Level01_Main = Cloud Mist Forest (default) DLC_Level01_Main = Shifting Sands

Environment:
MAP
Default:
Level01_Main
User Viewable:
User Editable:
Rules:
required|in:Level01_Main,DLC_Level01_Main

Server ID

Server ID is unique for every server you want connect. !! If this value is changed after starting server, all save data is reset !!

Environment:
SERVER_ID
Default:
1
User Viewable:
User Editable:
Rules:
required|numeric

Cluster Server Port

The TCP broadcast port that client server will connect to. The presence of this parameter designates the server as a main server for a cluster. This port should not be open to the public, but needs to be accessible to servers within the cluster. Any server with access to the port can register as a client server.

Environment:
CLUSTER_MAIN_PORT
Default:
2000
User Viewable:
User Editable:
Rules:
required|integer|between:1,65535

Main Server Address

The IP of the main server to connect to. The presence of the parameter designates the server as a client server in a cluster. 127.0.0.1 = Standalone Mode/Main Server

Environment:
CLUSTER_MAIN_IP
Default:
127.0.0.1
User Viewable:
User Editable:
Rules:
nullable

Enable Character Transfers

Enable Character Transfers

Environment:
ENABLE_CROSS_SERVER
Default:
0
User Viewable:
User Editable:
Rules:
required|boolean
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/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} +app_update 1007 $( [[ -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
## Maybe this path is just needed?
mkdir -p /mnt/server/WS/Saved/Config/LinuxServer
#Create settings file for first time startup .
mkdir -p /mnt/server/WS/Saved/GameplaySettings

if [ "${ENABLE_CROSS_SERVER}" = "1" ]; then
    echo '{"0":{"KaiQiKuaFu":1},"1":{"KaiQiKuaFu":1},"2":{"KaiQiKuaFu":1}}' > /mnt/server/WS/Saved/GameplaySettings/GameXishu.json
fi

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