Menu
 

Soulmask Dedicated Server Setup

Soulmask: Complete Dedicated Server Setup

Comprehensive guide to setting up, configuring, and managing a Soulmask dedicated server for tribal multiplayer gameplay and community building.

System Requirements

Minimum Requirements

  • CPU: Intel Core i5-8400 or AMD Ryzen 5 2600
  • RAM: 12GB DDR4
  • Storage: 25GB available space (SSD recommended)
  • Network: 15 Mbps upload for 20 players
  • OS: Windows 10/11 (64-bit) or Ubuntu 20.04+

Recommended Requirements

  • CPU: Intel Core i7-9700K or AMD Ryzen 7 3700X
  • RAM: 16GB DDR4
  • Storage: 50GB NVMe SSD storage
  • Network: 50 Mbps upload for 50+ players
  • OS: Windows 11 or Ubuntu 22.04 LTS

Installation Process

Step 1: SteamCMD Installation

# Ubuntu/Debian Installation sudo apt update && sudo apt install steamcmd # CentOS/RHEL Installation sudo yum install steamcmd # Create dedicated server user sudo useradd -m -s /bin/bash soulmask sudo usermod -aG sudo soulmask # Switch to server user sudo -u soulmask -i # Create installation directory mkdir /home/soulmask/server cd /home/soulmask/server

Step 2: Download Server Files

# Download Soulmask server using SteamCMD steamcmd +login anonymous +app_update 2978680 validate +quit # Create essential directories mkdir saves logs mods configs # Set proper permissions chmod +x SoulmaskServer.sh chmod +x SoulmaskServer.x86_64 # Verify installation ls -la # Should show SoulmaskServer executable and server files

Step 3: Initial Configuration

Create main configuration file ServerConfig.ini:

[ServerSettings] # Basic Server Information ServerName = "Tribal Adventures Server" ServerPassword = "" ServerDescription = "Join our tribal community for epic adventures!" MaxPlayers = 40 Port = 8777 QueryPort = 27015 # Network Configuration BindIP = "0.0.0.0" AutoSaveInterval = 600 NetworkUpdateRate = 30 MaxBandwidthPerClient = 50000 [Gameplay] # World Generation WorldSize = Large WorldSeed = 12345678 BiomeDistribution = Balanced TerrainComplexity = Medium # Game Balance Difficulty = Normal XPMultiplier = 1.0 GatherMultiplier = 1.0 TamingMultiplier = 1.0 CraftingSpeed = 1.0 # PvP Settings PvP = true FriendlyFire = false SiegeDamage = true StructureDecay = true [Performance] # Server Performance MaxFPS = 60 MaxStructures = 5000 MaxDroppedItems = 1000 CorpseDecayTime = 300 ViewDistance = 3000 [Security] # Access Control WhitelistEnabled = false AdminPassword = "your_secure_admin_password" RconEnabled = true RconPort = 27016 RconPassword = "your_rcon_password" [Moderation] # Server Rules ProfanityFilter = true AutoKickIdleTime = 1800 BanThreshold = 5 BanDuration = 86400

Advanced Configuration

Tribal System Settings

[TribalSystem] # Tribe Configuration MaxTribeSize = 20 MaxAlliances = 5 TribeCreationCost = 1000 AllianceFormationCost = 500 # Territory Control TerritoryMarkerCost = 100 MaxTerritoriesPerTribe = 10 TerritoryUpkeepCost = 50 TerritoryCaptureTime = 300 # Diplomacy TreatyNegotiationTime = 600 AllianceBenefitsEnabled = true TribalWarfareEnabled = true NeutralTerritories = false

Economy Settings

[Economy] # Resource System ResourceRespawnTime = 300 RareResourceChance = 0.1 MaxResourceNodes = 100 GatherRangeBonus = 1.5 # Trading System GlobalMarketEnabled = true TradeTaxRate = 0.05 PlayerShopsEnabled = true CaravanSystemEnabled = true # Currency System StartingCurrency = 100 CurrencyDropRate = 1.0 BankSystemEnabled = true LoanSystemEnabled = false

Server Launch Scripts

Linux Startup Script

#!/bin/bash # start_soulmask.sh # Configuration SERVER_DIR="/home/soulmask/server" STEAM_DIR="$HOME/Steam" APP_ID="2978680" CONFIG_FILE="ServerConfig.ini" # Function to check if server is running is_server_running() { pgrep -f "SoulmaskServer" > /dev/null return $? } # Function to start server start_server() { echo "Starting Soulmask server..." cd "$SERVER_DIR" # Update server if needed echo "Checking for updates..." "$STEAM_DIR/steamcmd.sh" +login anonymous +app_update $APP_ID +quit # Start server with configuration ./SoulmaskServer.sh -config "$CONFIG_FILE" -log echo "Server started successfully" } # Function to stop server stop_server() { echo "Stopping Soulmask server..." if is_server_running; then # Graceful shutdown echo "shutdown 60" | nc localhost 27016 2>/dev/null sleep 60 # Force kill if still running if is_server_running; then pkill -f "SoulmaskServer" sleep 10 fi echo "Server stopped" else echo "Server is not running" fi } # Function to restart server restart_server() { echo "Restarting Soulmask server..." stop_server sleep 5 start_server } # Function to show status show_status() { if is_server_running; then echo "Server is running (PID: $(pgrep -f "SoulmaskServer"))" echo "Memory usage: $(ps -p $(pgrep -f "SoulmaskServer") -o pid,vsz,rss,pcpu,pmem --no-headers)" else echo "Server is not running" fi } # Main script logic case "$1" in start) start_server ;; stop) stop_server ;; restart) restart_server ;; status) show_status ;; update) echo "Updating Soulmask server..." stop_server "$STEAM_DIR/steamcmd.sh" +login anonymous +app_update $APP_ID validate +quit start_server ;; *) echo "Usage: $0 {start|stop|restart|status|update}" exit 1 ;; esac

Windows Batch File

@echo off REM start_soulmask.bat SET SERVER_DIR="C:\Soulmask\Server" SET STEAM_DIR="C:\Program Files (x86)\Steam" SET APP_ID=2978680 SET CONFIG_FILE=ServerConfig.ini :menu echo Soulmask Server Manager echo 1. Start Server echo 2. Stop Server echo 3. Restart Server echo 4. Update Server echo 5. Check Status echo 6. Exit set /p choice="Enter your choice (1-6): " if "%choice%"=="1" goto start if "%choice%"=="2" goto stop if "%choice%"=="3" goto restart if "%choice%"=="4" goto update if "%choice%"=="5" goto status if "%choice%"=="6" goto end :start echo Starting Soulmask server... cd /d "%SERVER_DIR%" "%STEAM_DIR%\steamcmd.exe" +login anonymous +app_update %APP_ID% +quit start "" /B SoulmaskServer.exe -config %CONFIG_FILE% -log echo Server started! timeout /t 5 >nul goto menu :stop echo Stopping Soulmask server... taskkill /f /im "SoulmaskServer.exe" >nul 2>&1 echo Server stopped! timeout /t 3 >nul goto menu :restart echo Restarting Soulmask server... call :stop timeout /t 5 >nul call :start goto menu :update echo Updating Soulmask server... taskkill /f /im "SoulmaskServer.exe" >nul 2>&1 "%STEAM_DIR%\steamcmd.exe" +login anonymous +app_update %APP_ID% validate +quit echo Update completed! goto menu :status tasklist /fi "imagename eq SoulmaskServer.exe" 2>nul | find /i "SoulmaskServer.exe" >nul if %errorlevel% equ 0 ( echo Server is running ) else ( echo Server is not running ) timeout /t 3 >nul goto menu :end exit

Systemd Service (Linux)

Service Configuration

# Create systemd service file sudo nano /etc/systemd/system/soulmask.service [Unit] Description=Soulmask Dedicated Server After=network.target [Service] Type=simple User=soulmask Group=soulmask WorkingDirectory=/home/soulmask/server ExecStart=/home/soulmask/server/SoulmaskServer.x86_64 -config ServerConfig.ini -log ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutStopSec=30 Restart=always RestartSec=10 StandardOutput=journal StandardError=journal SyslogIdentifier=soulmask # Security settings NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true ReadWritePaths=/home/soulmask/server [Install] WantedBy=multi-user.target

Service Management

# Reload systemd to recognize new service sudo systemctl daemon-reload # Enable automatic startup on boot sudo systemctl enable soulmask # Start the service sudo systemctl start soulmask # Check service status sudo systemctl status soulmask # View live logs sudo journalctl -u soulmask -f # Stop the service sudo systemctl stop soulmask # Restart the service sudo systemctl restart soulmask # Check boot configuration sudo systemctl list-unit-files | grep soulmask

Network and Firewall

Port Configuration

Required Ports

  • Game Port (TCP+UDP): 8777 (default) - Player connections
  • Query Port (UDP): 27015 - Server browser queries
  • RCON Port (TCP): 27016 - Remote administration

Optional Ports

  • Web Interface (TCP): 8080 - Web admin panel
  • Mod Server (TCP): 27017 - Mod distribution

Firewall Configuration

# Ubuntu/Debian (UFW) sudo ufw allow 8777/tcp comment "Soulmask Game Port TCP" sudo ufw allow 8777/udp comment "Soulmask Game Port UDP" sudo ufw allow 27015/udp comment "Soulmask Query Port" sudo ufw allow 27016/tcp comment "Soulmask RCON Port" sudo ufw reload # CentOS/RHEL (firewalld) sudo firewall-cmd --permanent --add-port=8777/tcp --add-port=8777/udp --add-port=27015/udp --add-port=27016/tcp sudo firewall-cmd --reload # iptables (direct) sudo iptables -A INPUT -p tcp --dport 8777 -j ACCEPT sudo iptables -A INPUT -p udp --dport 8777 -j ACCEPT sudo iptables -A INPUT -p udp --dport 27015 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 27016 -j ACCEPT sudo iptables-save # Windows Firewall (PowerShell as Administrator) New-NetFirewallRule -DisplayName "Soulmask Game TCP" -Direction Inbound -Protocol TCP -LocalPort 8777 -Action Allow New-NetFirewallRule -DisplayName "Soulmask Game UDP" -Direction Inbound -Protocol UDP -LocalPort 8777 -Action Allow New-NetFirewallRule -DisplayName "Soulmask Query" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow New-NetFirewallRule -DisplayName "Soulmask RCON" -Direction Inbound -Protocol TCP -LocalPort 27016 -Action Allow

Administration and Monitoring

RCON Setup

# Enable RCON in ServerConfig.ini [RCON] Enabled = true Port = 27016 Password = "your_secure_rcon_password" AllowedIPs = "127.0.0.1,your_admin_ip" # Using rcon-cli for administration npm install -g rcon-cli # Connect to server rcon-cli -H localhost -p 27016 -P your_rcon_password # Common RCON commands save # Force save world shutdown 300 # Shutdown in 5 minutes kick player_name # Kick player ban player_name 3600 # Ban player for 1 hour list # List connected players status # Server status info # Server information

Web Admin Panel

# Install web admin (optional) # Download web interface files cd /home/soulmask/server wget https://github.com/soulmask/web-admin/archive/refs/heads/main.zip unzip main.zip -d web-admin/ # Configure web admin in ServerConfig.ini [WebAdmin] Enabled = true Port = 8080 Username = "admin" Password = "your_web_password" AllowedIPs = "127.0.0.1,your_admin_ip" # Access web admin # URL: http://your_server_ip:8080 # Login with configured credentials

Mod Support

Installing Mods

# Create mods directory mkdir -p /home/soulmask/server/mods # Download mods from Steam Workshop or direct URLs # Example: Tribal Wars mod cd /home/soulmask/server/mods wget https://example-mods.com/tribal-wars.zip unzip tribal-wars.zip # Configure mods in ServerConfig.ini [Mods] Enabled = true ModDirectory = "mods" RequiredMods = "tribal-wars,enhanced-ui" OptionalMods = "custom-sounds,extra-items" WorkshopMods = "workshopid1,workshopid2" ModValidation = true # Restart server to load mods systemctl restart soulmask

Popular Mod Categories

  • Gameplay Enhancements: New mechanics and features
  • Tribal Systems: Enhanced tribe management
  • Building Materials: New construction options
  • Creatures & Wildlife: New animals and enemies
  • UI Improvements: Better interface and menus
  • Administrative Tools: Enhanced server management

Performance Optimization

Linux Performance Tuning

# Create performance configuration file sudo nano /etc/sysctl.d/99-soulmask.conf # Add network optimizations net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.udp_mem = 8388608 net.ipv4.udp_rmem_min = 8192 net.ipv4.udp_wmem_min = 8192 # Apply changes sudo sysctl -p # Set CPU governor to performance mode echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # Optimize server process priority # Add to startup script renice -n -5 $(pgrep SoulmaskServer)

Configuration Optimization

[Performance] # Network optimizations NetworkUpdateRate = 60 MaxBandwidthPerClient = 100000 CompressionLevel = 6 TimeoutDuration = 30 # Server performance MaxFPS = 60 ViewDistance = 2000 LODDistance = 1500 MaxNPCs = 500 MaxConcurrentConnections = 100 # Memory management MaxMemoryUsage = 8192 GarbageCollectionInterval = 300 AssetPreloading = true TextureStreaming = false [Advanced] # Optimizations for large servers Multithreading = true WorkerThreads = 8 AsyncSaving = true DatabaseCaching = true PrefabPoolSize = 1000

Troubleshooting

Common Issues

❌ Server Not Starting

Check configuration file syntax, verify permissions, and ensure required ports are available.

  • Validate ServerConfig.ini with JSON validator
  • Check file permissions: chown -R soulmask:soulmask
  • Verify no other service using ports 8777/27015

❌ Players Cannot Connect

Check firewall settings, network connectivity, and server visibility.

  • Open ports 8777/TCP+UDP and 27015/UDP
  • Verify server is bound to 0.0.0.0
  • Check router port forwarding if behind NAT

❌ High Memory Usage

Reduce player count, optimize configuration, or increase server RAM.

  • Lower MaxPlayers and ViewDistance settings
  • Enable database caching and compression
  • Monitor with top or htop for memory leaks

❌ Server Crashes

Check logs for errors, update server software, and verify mod compatibility.

  • Review logs in /home/soulmask/server/logs/
  • Update to latest server version
  • Disable mods one by one to identify conflicts

Backup and Recovery

Automated Backup Script

#!/bin/bash # soulmask_backup.sh SERVER_DIR="/home/soulmask/server" BACKUP_DIR="/home/backups/soulmask" DATE=$(date +%Y%m%d_%H%M%S) MAX_BACKUPS=7 mkdir -p "$BACKUP_DIR" # Create backup echo "save" | rcon-cli -H localhost -p 27016 -P your_rcon_password sleep 5 tar -czf "$BACKUP_DIR/soulmask_backup_$DATE.tar.gz" \ -C "$SERVER_DIR" saves/ configs/ mods/ # Clean old backups ls -t "$BACKUP_DIR"/soulmask_backup_*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs -r rm echo "Backup completed: soulmask_backup_$DATE.tar.gz"

Pro Tip: Always test your server with a few players before opening to the public to ensure configuration and performance are optimal.

Top