Gaming Servers

Soulmask

Install and configure a Soulmask dedicated server on Linux with SteamCMD

Soulmask is a third-person survival game with tribal mechanics, released in 2024. It supports dedicated Linux servers via SteamCMD with up to 40 concurrent players.


System Requirements

  • RAM: 8GB minimum, 16GB recommended for 20+ players
  • CPU: 4 vCPU minimum
  • Storage: 50GB free disk space
  • OS: Linux x64 (Ubuntu 20.04+ recommended)
  • Network: Stable connection, ports 7777 (UDP) and 27015 (UDP) open

Install SteamCMD and Dependencies

Install required 32-bit libraries:

apt update && apt install lib32gcc-s1 -y

Create directory and download SteamCMD:

mkdir -p /opt/steamcmd
cd /opt/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Verify installation:

./steamcmd.sh +quit

Download Soulmask Server

Create server directory and download Soulmask server files:

mkdir -p /opt/soulmask-server
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /opt/soulmask-server +app_update 3017310 validate +quit

This downloads App ID 3017310 (Soulmask Server). The download may take 10-15 minutes depending on your connection.


Server Startup

Navigate to server directory and start the server:

cd /opt/soulmask-server
./WS/Binaries/Linux/WSServer-Linux-Shipping \
  -server \
  -SteamServerName="MyServer" \
  -port=7777 \
  -QueryPort=27015 \
  -MaxPlayers=20 \
  -adminpsw="admin_password" \
  -PSW="server_password" \
  -log

Startup Parameters

ParameterDescription
-serverRun as dedicated server
-SteamServerNameServer name displayed in browser
-portGame port (UDP)
-QueryPortSteam query port (UDP)
-MaxPlayersMaximum concurrent players (max 40)
-adminpswAdmin password for in-game commands
-PSWServer password (leave empty for public)
-logLog output to console

Example for public 40-player server:

./WS/Binaries/Linux/WSServer-Linux-Shipping \
  -server \
  -SteamServerName="Public Soulmask x2 [EN]" \
  -port=7777 \
  -QueryPort=27015 \
  -MaxPlayers=40 \
  -adminpsw="secret_admin_pass" \
  -log

Configuration Files

The main configuration file is located in the server directory:

/opt/soulmask-server/WS/Saved/Config/LinuxServer/GameUserSettings.ini

Key configuration options:

[/Script/Engine.GameSession]
MaxPlayers=20

[/Script/Engine.GameNetworkManager]
bUseDistanceBasedRelevancy=True

Restart the server after modifying configuration files.

Soulmask auto-saves every 30 minutes. For manual backups, copy the /opt/soulmask-server/WS/Saved/ directory.


Firewall Configuration

Open required ports on your firewall:

# UFW (Ubuntu)
ufw allow 7777/udp
ufw allow 27015/udp

# iptables
iptables -A INPUT -p udp --dport 7777 -j ACCEPT
iptables -A INPUT -p udp --dport 27015 -j ACCEPT

Verify ports are open:

netstat -uln | grep -E '7777|27015'

Systemd Service (Auto-Start)

Create a systemd service for automatic startup on boot:

sudo tee /etc/systemd/system/soulmask-server.service > /dev/null <<EOF
[Unit]
Description=Soulmask Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=gameserver
WorkingDirectory=/opt/soulmask-server
ExecStart=/opt/soulmask-server/WS/Binaries/Linux/WSServer-Linux-Shipping -server -SteamServerName="MyServer" -port=7777 -QueryPort=27015 -MaxPlayers=20 -adminpsw="admin_password" -log
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

Create dedicated user:

useradd -r -s /bin/false gameserver
chown -R gameserver:gameserver /opt/soulmask-server
chown -R gameserver:gameserver /opt/steamcmd

Enable and start service:

systemctl daemon-reload
systemctl enable soulmask-server
systemctl start soulmask-server

Check status:

systemctl status soulmask-server
journalctl -u soulmask-server -f

Server Updates

Update the server to the latest version using SteamCMD:

systemctl stop soulmask-server
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /opt/soulmask-server +app_update 3017310 validate +quit
systemctl start soulmask-server

Monitor the service after update:

journalctl -u soulmask-server -f

In-Game Admin Commands

Connect with your admin password to use these commands:

CommandDescription
/kick [Player]Remove player from server
/ban [Player]Ban player permanently
/unban [Player]Unban player
/time [HH:MM]Set server time
/weather [0-4]Set weather (0=clear, 4=rain)
/saveForce save world
/restartGraceful server restart

Monitoring and Logging

Server logs are stored in:

/opt/soulmask-server/WS/Saved/Logs/

Monitor real-time logs:

tail -f /opt/soulmask-server/WS/Saved/Logs/WS.log

Check for startup errors:

journalctl -u soulmask-server --no-pager | grep -i error

If the server crashes or doesn't start, verify firewall rules, port availability, and check logs for specific error messages. Common issues: port already in use, insufficient memory, missing dependencies.


Backup Strategy

Set up automated backups of game world data:

#!/bin/bash
BACKUP_DIR="/opt/soulmask-backups"
SOURCE_DIR="/opt/soulmask-server/WS/Saved"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p "$BACKUP_DIR"
cp -r "$SOURCE_DIR" "$BACKUP_DIR/backup_$DATE"

# Keep only last 7 backups
find "$BACKUP_DIR" -type d -mtime +7 -exec rm -rf {} \;

Add to crontab for daily backups at 4 AM:

0 4 * * * /usr/local/bin/soulmask-backup.sh

On this page