SOP: Game Server Setup (Technical)
SOP: Game Server Setup (Technical)
Section titled “SOP: Game Server Setup (Technical)”Document Type: Standard Operating Procedure (SOP)
Version: 1.0
Status: Approved for Use
Audience: Technician
Service Tiers: Basic ($30), Standard ($45), Advanced ($60)
Estimated Time: 1-4 hours (varies by game and complexity)
1. Purpose
Section titled “1. Purpose”To provide standardized procedures for setting up, configuring, and optimizing game servers across multiple platforms, ensuring stable performance, security, and reliability for multiplayer gaming communities.
2. Scope
Section titled “2. Scope”This SOP applies to Game Server Setup service for:
- New server installations
- Server migrations and transfers
- Performance optimization
- Mod installation and configuration
- Security hardening
Supported Games:
- Minecraft (Java Edition)
- Valheim
- Project Zomboid
- Palworld
- Rust
- Ark: Survival Evolved
- FiveM
- Terraria
- Stardew Valley
- Factorio
- Space Engineers
- And other popular multiplayer games
3. Responsibilities
Section titled “3. Responsibilities”Lead Technician Responsibilities
- Execute server installation and configuration
- Optimize server performance for player count
- Install and configure mods and plugins
- Implement security measures and backup systems
- Validate server functionality and performance
- Document all configurations and procedures
Client Responsibilities
- Provide hosting access and credentials
- Specify game requirements and preferences
- Approve mod selections and configurations
- Test server functionality with users
- Provide feedback on performance
4. Requirements
Section titled “4. Requirements”4.1 Client Requirements
Section titled “4.1 Client Requirements”- Hosting provider access (control panel, SSH, FTP)
- Game selection and player count requirements
- Mod list and configuration preferences
- Administrative requirements (whitelist, permissions)
- Performance expectations and budget constraints
4.2 Technical Requirements
Section titled “4.2 Technical Requirements”- Server hardware meeting game specifications
- Stable internet connection with adequate upload speed
- SSH/FTP access for file management
- Database access (if required)
- Domain configuration (if using custom domain)
4.3 Software Requirements
Section titled “4.3 Software Requirements”- Game server software (latest stable versions)
- Mod management tools (Forge, Fabric, etc.)
- Administrative tools (RCON, web panels)
- Monitoring and backup software
- Security software (firewall, DDoS protection)
5. Pre-Setup Checklist
Section titled “5. Pre-Setup Checklist”5.1 Information Gathering
Section titled “5.1 Information Gathering”- Game type and version confirmed
- Player count and performance requirements
- Hosting provider and access credentials
- Mod list and compatibility requirements
- Administrative preferences (whitelist, permissions)
- Security requirements and constraints
5.2 Technical Preparation
Section titled “5.2 Technical Preparation”- Server hardware specifications verified
- Network connectivity tested
- File access permissions confirmed
- Backup storage location prepared
- Monitoring tools installed
- Security software configured
5.3 Resource Planning
Section titled “5.3 Resource Planning”- CPU and memory requirements calculated
- Storage space allocated
- Network bandwidth requirements assessed
- Backup strategy planned
- Performance benchmarks established
6. Procedure
Section titled “6. Procedure”6.1 Server Environment Setup
Section titled “6.1 Server Environment Setup”6.1.1 Operating System Configuration
Section titled “6.1.1 Operating System Configuration”-
System Updates:
Terminal window # Ubuntu/Debiansudo apt update && sudo apt upgrade -y# CentOS/RHELsudo yum update -y -
User and Directory Setup:
Terminal window # Create dedicated server usersudo useradd -m -s /bin/bash gameserversudo usermod -aG sudo gameserver# Create server directory structuresudo mkdir -p /opt/gameservers/{minecraft,valheim,zomboid,palworld}sudo chown gameserver:gameserver /opt/gameservers -R -
Firewall Configuration:
Terminal window # UFW (Ubuntu)sudo ufw allow 25565/tcp # Minecraftsudo ufw allow 2456-2458/udp # Valheimsudo ufw allow 16261/udp # Project Zomboidsudo ufw allow 8211/udp # Palworldsudo ufw enable# iptables (CentOS)sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPTsudo iptables -A INPUT -p udp --dport 2456:2458 -j ACCEPTsudo iptables -A INPUT -p udp --dport 16261 -j ACCEPTsudo iptables -A INPUT -p udp --dport 8211 -j ACCEPTsudo service iptables save
6.1.2 Performance Optimization
Section titled “6.1.2 Performance Optimization”-
System Performance Tuning:
Terminal window # Configure sysctl for network performanceecho 'net.core.rmem_max = 16777216' | sudo tee -a /etc/sysctl.confecho 'net.core.wmem_max = 16777216' | sudo tee -a /etc/sysctl.confecho 'net.ipv4.tcp_rmem = 4096 87380 16777216' | sudo tee -a /etc/sysctl.confecho 'net.ipv4.tcp_wmem = 4096 65536 16777216' | sudo tee -a /etc/sysctl.conf# Apply changessudo sysctl -p -
CPU Governor Configuration:
Terminal window # Set CPU to performance modeecho 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor -
Virtual Memory Configuration:
Terminal window # Configure swap for better memory managementsudo fallocate -l 4G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfileecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
6.2 Game-Specific Server Setup
Section titled “6.2 Game-Specific Server Setup”6.2.1 Minecraft Java Server Setup
Section titled “6.2.1 Minecraft Java Server Setup”-
Java Installation:
Terminal window # Install OpenJDK 17 (recommended for most versions)sudo apt install openjdk-17-jre-headless -y# Verify installationjava -version -
Server Download and Setup:
Terminal window # Download server JARcd /opt/gameservers/minecraftwget https://launcher.mojang.com/v1/objects/84194a2f286ef7c14ed7ce0090dba59902951553/server.jar# Accept EULAecho 'eula=true' > eula.txt# Create start scriptcat > start.sh << 'EOF'#!/bin/bashcd /opt/gameservers/minecraftjava -Xms4G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -jar server.jar noguiEOFchmod +x start.sh -
Server Configuration:
server.properties motd=Custom Minecraft Serverserver-port=25565difficulty=normalgamemode=survivalmax-players=20level-type=minecraft:normalgenerate-structures=trueview-distance=10enable-command-block=trueenforce-whitelist=falsepvp=true -
Plugin Installation (Optional):
Terminal window # Create plugins directorymkdir plugins# Download essential pluginscd pluginswget https://download.spigotmc.org/essentials/EssentialsX-2.19.2.jarwget https://dev.bukkit.org/projects/worldedit/files/latestwget https://dev.bukkit.org/projects/worldguard/files/latest
6.2.2 Valheim Server Setup
Section titled “6.2.2 Valheim Server Setup”-
SteamCMD Installation:
Terminal window # Install SteamCMDsudo apt install steamcmd -y# Or compile from sourcesudo apt install lib32gcc1 lib32stdc++6 libc6-i386 -ywget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gztar -xvzf steamcmd_linux.tar.gzsudo mv steamcmd /opt/ -
Server Installation:
Terminal window # Create Valheim directorymkdir -p /opt/gameservers/valheimcd /opt/gameservers/valheim# Download Valheim dedicated server/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir ./ +app_update 896660 +quit -
Server Configuration:
# Create start scriptcat > start_valheim.sh << 'EOF'#!/bin/bashcd /opt/gameservers/valheimexport LD_LIBRARY_PATH=./linux64./valheim_server.x86_64 -name "My Server" -port 2456 -world "Dedicated" -password "yourpassword" -public 1EOFchmod +x start_valheim.sh# Configure server settingscat > start_server.sh << 'EOF'#!/bin/bashcd /opt/gameservers/valheimexport LD_LIBRARY_PATH=./linux64./valheim_server.x86_64 -nographic -batchmode -name "My Server" -port 2456 -world "Dedicated" -password "yourpassword" -public 1 -saveinterval 300 -backupinterval 3600EOFchmod +x start_server.sh -
Mod Support (Optional):
Terminal window # Install BepInEx for mod supportwget https://github.com/BepInEx/BepInEx/releases/download/v5.4.22/BepInEx_x64_5.4.22.0.zipunzip BepInEx_x64_5.4.22.0.zip -d /opt/gameservers/valheim/# Configure BepInExecho "enabled=true" > /opt/gameservers/valheim/BepInEx/config/BepInEx.cfg
6.2.3 Project Zomboid Server Setup
Section titled “6.2.3 Project Zomboid Server Setup”-
SteamCMD Installation:
Terminal window # Install dependenciessudo apt install lib32stdc++6 lib32gcc1 libcurl4-gnutls-dev:i386 -y# Download and install SteamCMDwget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gztar -xvzf steamcmd_linux.tar.gzsudo mv steamcmd /opt/ -
Server Installation:
Terminal window # Create Zomboid directorymkdir -p /opt/gameservers/zomboidcd /opt/gameservers/zomboid# Download Project Zomboid dedicated server/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir ./ +app_update 380870 +quit -
Server Configuration:
server.ini [Default]Name=My Zomboid ServerDescription=Project Zomboid Dedicated ServerPort=16261MaxPlayers=20Password=yourpasswordPublic=truePauseOnEmpty=trueAutosaveInterval=15RestartTimer=24SaveWorldID=ServertestModFolders=ModsWorkshopItems=SteamPort=8766SteamQueryPort=27016RCONPort=27015RCONPassword=yourrconpassword -
World Configuration:
servertest.ini [Default]DoLootRespawn=trueRespawnHours=48.0MaxItemsForLootRespawn=4ConstructionChecks=trueDayLength=12.0StartDay=1StartTime=8.0WaterShut=trueWaterShutModifier=1.0WaterElectricShut=trueWaterElectricShutModifier=1.0Frozen=trueFoodRotSpeed=1.0FridgeFactor=1.0LootRespawn=trueStatsDecrease=trueGlobalChat=trueChatColor=trueGlobalChatColor=0,0,0AdminChatColor=255,0,0PlayerColor=255,255,255SafehouseAllowTrepass=falseSafehouseAllowFire=falseAllowRespawn=trueMultiHitZombies=falseRearVehicles=falseZombieLore=trueZombiesRun=0ZombiesSprint=0ZombieLore=trueZombieConfig=0Map=Muldraugh, KYSeed=ZombieCount=2ZombieDistribution=0ZombieIntensity=0.0ZombieSpeed=2.0ZombieStrength=2.0ZombieToughness=2.0ZombieRage=2.0ZombieCrawlers=2.0ZombieSprinters=2.0ZombieCrawlersSpeed=2.0ZombieCrawlersStrength=2.0ZombieCrawlersToughness=2.0ZombieSprintersSpeed=2.0ZombieSprintersStrength=2.0ZombieSprintersToughness=2.0ZombieSprintersCrawlers=trueZombieSprintersCrawlersSpeed=2.0ZombieSprintersCrawlersStrength=2.0ZombieSprintersCrawlersToughness=2.0ZombieConfig=0
6.2.4 Palworld Server Setup
Section titled “6.2.4 Palworld Server Setup”-
SteamCMD Installation:
Terminal window # Install dependenciessudo apt install lib32stdc++6 lib32gcc1 libcurl4-gnutls-dev:i386 -y# Download and install SteamCMDwget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gztar -xvzf steamcmd_linux.tar.gzsudo mv steamcmd /opt/ -
Server Installation:
Terminal window # Create Palworld directorymkdir -p /opt/gameservers/palworldcd /opt/gameservers/palworld# Download Palworld dedicated server/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir ./ +app_update 2394010 +quit -
Server Configuration:
PalWorldSettings.ini [/Script/Pal.PalGameWorldSettings]OptionSettings=(Difficulty=None,DayTimeSpeedRate=1.000000,NightTimeSpeedRate=1.000000,ExpRate=1.000000,PalCaptureRate=1.000000,PalSpawnNumRate=1.000000,PalDamageRateAttack=1.000000,PalDamageRateDefense=1.000000,PlayerDamageRateAttack=1.000000,PlayerDamageRateDefense=1.000000,PlayerStomachDecreaceRate=1.000000,PlayerStaminaDecreaceRate=1.000000,PlayerAutoHPRegeneRate=1.000000,PlayerAutoHpRegeneRateInSleep=1.000000,PalStomachDecreaceRate=1.000000,PalStaminaDecreaceRate=1.000000,PalAutoHPRegeneRate=1.000000,PalAutoHpRegeneRateInSleep=1.000000,BuildObjectDamageRate=1.000000,BuildObjectDeteriorationDamageRate=1.000000,CollectionDropRate=1.000000,CollectionObjectHpRate=1.000000,CollectionObjectRespawnSpeedRate=1.000000,EnemyDropItemRate=1.000000,DeathPenalty=All,bEnablePlayerToPlayerDamage=False,bEnableFriendlyFire=False,bEnableInvaderEnemy=True,bActiveUNKO=False,bEnableAimAssistPad=True,bEnableAimAssistKeyboard=False,DropItemMaxNum=3000,DropItemMaxNum_UNKO=100,BaseCampMaxNum=128,BaseCampWorkerMaxNum=15,DropItemAliveMaxHours=1.000000,bAutoResetGuildNoOnlinePlayers=False,AutoResetGuildTimeNoOnlinePlayers=72.000000,GuildPlayerMaxNum=20,PalEggDefaultHatchingTime=72.000000,WorkSpeedRate=1.000000,bIsMultiplay=False,bIsPvP=False,bCanPickupOtherPlayerDeathItemDrop=False,bEnableNonLoginPenalty=True,bEnableFastTravel=True,bIsStartLocationSelectByMap=True,bExistPlayerAfterLogout=False,bEnableDefenseOtherGuildPlayer=False,CoopPlayerMaxNum=4,ServerPlayerMaxNum=32,ServerName="My Palworld Server",ServerDescription="Welcome to my Palworld server!",AdminPassword="youradminpassword",ServerPassword="yourserverpassword",PublicPort=8211,PublicIP="",RCONEnabled=True,RCONPort=25575,Region="",bUseAuth=True,BanListURL="https://api.palworldgame.com/api/banlist.txt") -
Start Script:
# Create start scriptcat > start_palworld.sh << 'EOF'#!/bin/bashcd /opt/gameservers/palworld./PalServer.shEOFchmod +x start_palworld.sh
6.3 Mod Installation and Configuration
Section titled “6.3 Mod Installation and Configuration”6.3.1 Minecraft Mod Management
Section titled “6.3.1 Minecraft Mod Management”-
Forge Installation:
Terminal window # Download Forge installerwget https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.2-43.2.0/forge-1.19.2-43.2.0-installer.jar# Install Forgejava -jar forge-1.19.2-43.2.0-installer.jar --installServer# Update start script for Forgesed -i 's/server.jar/forge-1.19.2-43.2.0.jar/' start.sh -
Mod Installation:
Terminal window # Create mods directorymkdir mods# Download mods (example with popular mods)cd modswget https://media.forgecdn.net/files/3819/950/jei-1.19.2-forge-11.6.0.1002.jarwget https://media.forgecdn.net/files/3813/385/journeymap-1.19.2-5.9.0-forge.jarwget https://media.forgecdn.net/files/3818/950/ironchest-1.19.2-13.2.11.jar -
Mod Configuration:
Terminal window # Configure mod settingsmkdir config# Edit mod configuration files as needed
6.3.2 Valheim Mod Management
Section titled “6.3.2 Valheim Mod Management”-
BepInEx Configuration:
Terminal window # Configure BepInEx pluginsmkdir -p /opt/gameservers/valheim/BepInEx/plugins# Download popular modscd /opt/gameservers/valheim/BepInEx/pluginswget https://github.com/Valheim-Modding/Jotunn/releases/download/v2.1.6/Jotunn2.1.6.zipunzip Jotunn2.1.6.zip -
Mod Configuration:
Terminal window # Configure mod settingsmkdir -p /opt/gameservers/valheim/BepInEx/config# Edit mod configuration files as needed
6.4 Security Configuration
Section titled “6.4 Security Configuration”6.4.1 Basic Security Setup
Section titled “6.4.1 Basic Security Setup”-
Firewall Configuration:
Terminal window # Configure UFW for game-specific portssudo ufw allow 25565/tcp # Minecraftsudo ufw allow 2456-2458/udp # Valheimsudo ufw allow 16261/udp # Project Zomboidsudo ufw allow 8211/udp # Palworldsudo ufw allow 27015/tcp # RCONsudo ufw enable -
Fail2Ban Installation:
Terminal window # Install Fail2Bansudo apt install fail2ban -y# Configure Fail2Ban for game serverscat > /etc/fail2ban/jail.local << 'EOF'[DEFAULT]bantime = 3600findtime = 600maxretry = 3[minecraft]enabled = trueport = 25565filter = minecraftlogpath = /opt/gameservers/minecraft/logs/latest.logmaxretry = 5bantime = 86400EOFsudo systemctl enable fail2bansudo systemctl start fail2ban -
DDoS Protection:
Terminal window # Install DDoS protectionsudo apt install iptables-persistent -y# Configure rate limitingsudo iptables -A INPUT -p tcp --dport 25565 -m limit --limit 25/min --limit-burst 100 -j ACCEPTsudo iptables -A INPUT -p udp --dport 2456 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
6.4.2 Access Control
Section titled “6.4.2 Access Control”-
Whitelist Configuration:
Terminal window # Minecraft whitelistecho "player_username" >> /opt/gameservers/minecraft/white-list.txt# Valheim password protection (configured in start script)# Project Zomboid password (configured in server.ini)# Palworld password (configured in PalWorldSettings.ini) -
Admin Access Setup:
Terminal window # Minecraft ops fileecho "player_username" >> /opt/gameservers/minecraft/ops.txt# RCON configurationecho "enable-rcon=true" >> /opt/gameservers/minecraft/server.propertiesecho "rcon.port=25575" >> /opt/gameservers/minecraft/server.propertiesecho "rcon.password=yourrconpassword" >> /opt/gameservers/minecraft/server.properties
6.5 Backup Configuration
Section titled “6.5 Backup Configuration”6.5.1 Automated Backup Script
Section titled “6.5.1 Automated Backup Script”-
Create Backup Script:
# Create backup scriptcat > /opt/gameservers/backup.sh << 'EOF'#!/bin/bash# ConfigurationBACKUP_DIR="/opt/backups/gameservers"DATE=$(date +%Y%m%d_%H%M%S)RETENTION_DAYS=7# Create backup directorymkdir -p $BACKUP_DIR# Backup Minecraftif [ -d "/opt/gameservers/minecraft" ]; thenecho "Backing up Minecraft..."tar -czf "$BACKUP_DIR/minecraft_$DATE.tar.gz" -C /opt/gameservers minecraft/fi# Backup Valheimif [ -d "/opt/gameservers/valheim" ]; thenecho "Backing up Valheim..."tar -czf "$BACKUP_DIR/valheim_$DATE.tar.gz" -C /opt/gameservers valheim/fi# Backup Project Zomboidif [ -d "/opt/gameservers/zomboid" ]; thenecho "Backing up Project Zomboid..."tar -czf "$BACKUP_DIR/zomboid_$DATE.tar.gz" -C /opt/gameservers zomboid/fi# Backup Palworldif [ -d "/opt/gameservers/palworld" ]; thenecho "Backing up Palworld..."tar -czf "$BACKUP_DIR/palworld_$DATE.tar.gz" -C /opt/gameservers palworld/fi# Clean old backupsfind $BACKUP_DIR -name "*.tar.gz" -mtime +$RETENTION_DAYS -deleteecho "Backup completed: $DATE"EOFchmod +x /opt/gameservers/backup.sh -
Schedule Automated Backups:
Terminal window # Add to crontab(crontab -l 2>/dev/null; echo "0 2 * * * /opt/gameservers/backup.sh") | crontab -
6.5.2 Cloud Backup Integration
Section titled “6.5.2 Cloud Backup Integration”- AWS S3 Backup:
Terminal window # Install AWS CLIsudo apt install awscli -y# Configure AWS credentialsaws configure# Create S3 backup scriptcat > /opt/gameservers/backup_s3.sh << 'EOF'#!/bin/bashS3_BUCKET="your-backup-bucket"BACKUP_DIR="/opt/backups/gameservers"DATE=$(date +%Y%m%d_%H%M%S)# Upload latest backups to S3aws s3 sync $BACKUP_DIR s3://$S3_BUCKET/ --deleteecho "S3 backup completed: $DATE"EOFchmod +x /opt/gameservers/backup_s3.sh
6.6 Monitoring and Performance Tuning
Section titled “6.6 Monitoring and Performance Tuning”6.6.1 System Monitoring
Section titled “6.6.1 System Monitoring”-
Install Monitoring Tools:
Terminal window # Install htop and iotopsudo apt install htop iotop -y# Install netdata for comprehensive monitoringbash <(curl -Ss https://my-netdata.io/kickstart.sh) -
Performance Monitoring Script:
# Create performance monitoring scriptcat > /opt/gameservers/monitor.sh << 'EOF'#!/bin/bashLOG_FILE="/var/log/gameserver_monitor.log"DATE=$(date '+%Y-%m-%d %H:%M:%S')# System metricsCPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}')MEM_USAGE=$(free | grep Mem | awk '{printf("%.2f", $3/$2 * 100.0)}')DISK_USAGE=$(df -h /opt/gameservers | awk 'NR==2 {print $5}')# Log metricsecho "$DATE - CPU: $CPU_USAGE%, Memory: $MEM_USAGE%, Disk: $DISK_USAGE" >> $LOG_FILE# Check if server processes are runningif pgrep -f "java.*server.jar" > /dev/null; thenecho "$DATE - Minecraft server is running" >> $LOG_FILEelseecho "$DATE - Minecraft server is NOT running" >> $LOG_FILEfiEOFchmod +x /opt/gameservers/monitor.sh -
Schedule Monitoring:
Terminal window # Add monitoring to crontab(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/gameservers/monitor.sh") | crontab -
6.6.2 Performance Optimization
Section titled “6.6.2 Performance Optimization”-
JVM Tuning for Minecraft:
Terminal window # Optimized JVM argumentsJAVA_OPTS="-Xms4G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs" -
Network Optimization:
Terminal window # Optimize network settingsecho 'net.core.rmem_max = 16777216' | sudo tee -a /etc/sysctl.confecho 'net.core.wmem_max = 16777216' | sudo tee -a /etc/sysctl.confecho 'net.ipv4.tcp_rmem = 4096 87380 16777216' | sudo tee -a /etc/sysctl.confecho 'net.ipv4.tcp_wmem = 4096 65536 16777216' | sudo tee -a /etc/sysctl.confecho 'net.ipv4.tcp_congestion_control = bbr' | sudo tee -a /etc/sysctl.confsudo sysctl -p
7. Testing and Validation
Section titled “7. Testing and Validation”7.1 Server Functionality Tests
Section titled “7.1 Server Functionality Tests”- Server starts without errors
- Players can connect successfully
- Game mechanics work correctly
- Mods load without conflicts
- Performance meets expectations
- Network connectivity stable
7.2 Security Tests
Section titled “7.2 Security Tests”- Firewall rules working correctly
- Only authorized ports accessible
- Access control functioning
- Backup system operational
- Monitoring tools collecting data
7.3 Performance Tests
Section titled “7.3 Performance Tests”- CPU usage within acceptable limits
- Memory usage optimized
- Network latency acceptable
- Disk I/O performance adequate
- No memory leaks detected
8. Troubleshooting
Section titled “8. Troubleshooting”| Problem | Cause | Fix |
|---|---|---|
| Server won’t start | Missing dependencies or incorrect configuration | Install required dependencies, check config files |
| Players can’t connect | Firewall blocking ports or incorrect IP | Open required ports, verify IP address |
| High CPU usage | Insufficient hardware or inefficient mods | Upgrade hardware, remove problematic mods |
| Server crashes | Memory leaks or mod conflicts | Check logs, update/remove problematic mods |
| Poor performance | Incorrect JVM settings or network issues | Optimize JVM arguments, check network configuration |
| Backup failures | Insufficient disk space or permissions | Check disk space, verify permissions |
| Mods not loading | Incorrect installation or version conflicts | Verify mod compatibility, reinstall correctly |
9. Documentation and Delivery
Section titled “9. Documentation and Delivery”9.1 Server Documentation
Section titled “9.1 Server Documentation”Create comprehensive server documentation:
Server Documentation Contents:- Server specifications and configuration- Login credentials and access methods- Mod list and configuration details- Backup and recovery procedures- Maintenance schedule and procedures- Troubleshooting guide- Support contact information9.2 Client Training Materials
Section titled “9.2 Client Training Materials”Prepare client training materials:
Training Materials:- Server management guide- Admin commands reference- Mod management procedures- Backup and recovery instructions- Performance monitoring guide- Security best practices9.3 Configuration Backup
Section titled “9.3 Configuration Backup”Create backup of all configurations:
Configuration Backup:- Server configuration files- Mod configuration files- Scripts and automation- Security configurations- Monitoring setups10. Post-Delivery Support
Section titled “10. Post-Delivery Support”10.1 Included Support (30 Days)
Section titled “10.1 Included Support (30 Days)”- Basic Support: Email support within 48 hours
- Standard Support: Priority email support within 24 hours
- Advanced Support: Priority support with phone option
10.2 Support Scope
Section titled “10.2 Support Scope”- Server access issues
- Performance optimization
- Mod installation and configuration
- Security troubleshooting
- Backup and recovery assistance
11. Maintenance Recommendations
Section titled “11. Maintenance Recommendations”11.1 Regular Maintenance Tasks
Section titled “11.1 Regular Maintenance Tasks”- Daily: Monitor server performance and logs
- Weekly: Check for updates and security patches
- Monthly: Review backup integrity and performance metrics
- Quarterly: Comprehensive security audit and optimization
11.2 Client Education
Section titled “11.2 Client Education”- Server management best practices
- Mod compatibility and update procedures
- Performance monitoring and optimization
- Security awareness and incident response
12. Quality Assurance
Section titled “12. Quality Assurance”12.1 Pre-Delivery Review
Section titled “12.1 Pre-Delivery Review”- Verify all requirements met
- Test all server functionality
- Validate performance benchmarks
- Confirm client satisfaction
- Document any deviations
12.2 Post-Delivery Follow-up
Section titled “12.2 Post-Delivery Follow-up”- Contact client after 3 days
- Address any issues immediately
- Gather feedback on performance
- Make necessary adjustments
- Schedule maintenance review
13. Revision Control
Section titled “13. Revision Control”- Version: 1.0
- Created: February 2026
- Author: Wizard Tech Services
- Next Review: Within 30 days
- Approved By: Lead Technician
14. Appendices
Section titled “14. Appendices”14.1 Game Server Requirements Reference
Section titled “14.1 Game Server Requirements Reference”| Game | Min Players | Min RAM | Min CPU | Min Storage | Network Ports |
|---|---|---|---|---|---|
| Minecraft | 2 | 4GB | 2 cores | 50GB | 25565 TCP |
| Valheim | 2 | 4GB | 2 cores | 10GB | 2456-2458 UDP |
| Project Zomboid | 2 | 3GB | 2 cores | 20GB | 16261 UDP, 8766 UDP |
| Palworld | 2 | 10GB | 4 cores | 40GB | 8211 UDP |
| Rust | 10 | 8GB | 4 cores | 20GB | 28015 UDP |
| Ark: Survival | 10 | 8GB | 4 cores | 30GB | 7777 UDP, 27015 TCP |
14.2 Common Port Reference
Section titled “14.2 Common Port Reference”Game Server Ports:- Minecraft: 25565 TCP- Valheim: 2456-2458 UDP- Project Zomboid: 16261 UDP, 8766 UDP, 27015 TCP- Palworld: 8211 UDP- Rust: 28015 UDP, 28016 UDP- Ark: Survival: 7777 UDP, 27015 TCP- FiveM: 30120 TCP, 30110 UDP- Terraria: 7777 TCP- Stardew Valley: 24242 TCP14.3 Performance Optimization Commands
Section titled “14.3 Performance Optimization Commands”# System Performance Commandshtop # Monitor CPU and memory usageiotop # Monitor disk I/Onetstat -tulnp # Check network connectionsss -tulnp # Alternative network commanddf -h # Check disk usagefree -h # Check memory usageuptime # Check system uptime
# Game Server Commandsscreen -r servername # Attach to server screenscreen -ls # List running screenstmux attach -t session # Attach to tmux sessionps aux | grep java # Check Java processestail -f server.log # Monitor server logsEnd of SOP