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 -yCreate 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 +quitDownload 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 +quitThis 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" \
-logStartup Parameters
| Parameter | Description |
|---|---|
-server | Run as dedicated server |
-SteamServerName | Server name displayed in browser |
-port | Game port (UDP) |
-QueryPort | Steam query port (UDP) |
-MaxPlayers | Maximum concurrent players (max 40) |
-adminpsw | Admin password for in-game commands |
-PSW | Server password (leave empty for public) |
-log | Log 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" \
-logConfiguration Files
The main configuration file is located in the server directory:
/opt/soulmask-server/WS/Saved/Config/LinuxServer/GameUserSettings.iniKey configuration options:
[/Script/Engine.GameSession]
MaxPlayers=20
[/Script/Engine.GameNetworkManager]
bUseDistanceBasedRelevancy=TrueRestart 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 ACCEPTVerify 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
EOFCreate dedicated user:
useradd -r -s /bin/false gameserver
chown -R gameserver:gameserver /opt/soulmask-server
chown -R gameserver:gameserver /opt/steamcmdEnable and start service:
systemctl daemon-reload
systemctl enable soulmask-server
systemctl start soulmask-serverCheck status:
systemctl status soulmask-server
journalctl -u soulmask-server -fServer 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-serverMonitor the service after update:
journalctl -u soulmask-server -fIn-Game Admin Commands
Connect with your admin password to use these commands:
| Command | Description |
|---|---|
/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) |
/save | Force save world |
/restart | Graceful 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.logCheck for startup errors:
journalctl -u soulmask-server --no-pager | grep -i errorIf 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