Enhanced game documentation with comprehensive installation and configuration details

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-11-22 21:36:59 +00:00
parent b72c8ea19d
commit 0216af04ed
299 changed files with 20545 additions and 21001 deletions

View file

@ -1,529 +1,449 @@
<?php
/**
* Day of Infamy Server Documentation
* Day of Infamy Server Documentation - Comprehensive Guide
* General game server hosting information (not platform-specific)
*/
?>
<style>
.nav-menu {
background: #1a1a2e;
padding: 15px;
border-radius: 8px;
margin-bottom: 25px;
}
.nav-menu a {
color: #4a9eff;
text-decoration: none;
margin-right: 15px;
font-size: 14px;
}
.nav-menu a:hover {
color: #6bb3ff;
text-decoration: underline;
}
.info-box {
background: #1e3a5f;
padding: 20px;
border-left: 4px solid #3b82f6;
margin: 20px 0;
border-radius: 4px;
}
.warning-box {
background: #78350f;
padding: 20px;
border-left: 4px solid #f59e0b;
margin: 20px 0;
border-radius: 4px;
}
.code-block {
background: #0f172a;
padding: 15px;
border-radius: 4px;
margin: 15px 0;
overflow-x: auto;
}
.code-block code {
color: #a5b4fc;
font-family: 'Courier New', monospace;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
background: #1a1a2e;
}
table th {
background: #2a2a4e;
color: #ffffff;
padding: 12px;
text-align: left;
border: 1px solid #3a3a6e;
}
table td {
padding: 10px 12px;
border: 1px solid #3a3a6e;
color: #e5e7eb;
}
table tr:nth-child(even) {
background: #222244;
}
</style>
<div class="nav-menu">
<strong style="color: #ffffff;">Quick Navigation:</strong>
<a href="#quick-info">Quick Info</a> |
<a href="#ports">Ports</a> |
<a href="#installation">Installation</a> |
<a href="#configuration">Configuration</a> |
<a href="#parameters">Parameters</a> |
<a href="#troubleshooting">Troubleshooting</a> |
<a href="#game-modes">Game Modes</a> |
<a href="#maps">Maps</a> |
<a href="#related-mods">Mods</a>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">📚 Quick Navigation</h3>
<div style="display: flex; flex-wrap: wrap; gap: 10px;">
<a href="#quick-info" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Quick Info</a>
<a href="#ports" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">🔌 Ports</a>
<a href="#installation" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Installation</a>
<a href="#configuration" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Configuration</a>
<a href="#parameters" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">⚙️ Startup Parameters</a>
<a href="#troubleshooting" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">🔧 Troubleshooting</a>
<a href="#performance" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Performance</a>
<a href="#security" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Security</a>
</div>
</div>
<h1>Day of Infamy Server Guide</h1>
<h1>Day of Infamy Server Hosting Guide</h1>
<h2 id="quick-info">📋 Quick Info</h2>
<div class="info-box">
<h3 style="color: #ffffff; margin-top: 0;">Server Specifications</h3>
<ul style="color: #e5e7eb; line-height: 1.8;">
<li><strong style="color: #ffffff;">Game:</strong> Day of Infamy (Modified Source Engine)</li>
<li><strong style="color: #ffffff;">Platform:</strong> Windows, Linux</li>
<li><strong style="color: #ffffff;">Default Port:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">27015/UDP</code></li>
<li><strong style="color: #ffffff;">Max Players:</strong> 32 (typical: 16-32)</li>
<li><strong style="color: #ffffff;">Control Protocol:</strong> RCON</li>
<li><strong style="color: #ffffff;">Server Binary:</strong> srcds_run (Linux), srcds.exe (Windows)</li>
<li><strong style="color: #ffffff;">App ID:</strong> 462310</li>
<li><strong style="color: #ffffff;">Special Features:</strong> Squad-based combat, class system, WW2 theaters</li>
<h2>Overview</h2>
<p>Day of Infamy is a multiplayer game server that can be hosted on a VPS or dedicated server. This comprehensive guide covers everything you need to know about hosting a Day of Infamy server for your community.</p>
<h2 id="quick-info">Quick Info</h2>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<ul style="color: #e5e7eb; line-height: 1.8; margin: 0;">
<li><strong style="color: #ffffff;">Default Port:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">27015</code></li>
<li><strong style="color: #ffffff;">Protocol:</strong> UDP</li>
<li><strong style="color: #ffffff;">Minimum RAM:</strong> 24 GB per process baseline (varies by game/players)</li>
<li><strong style="color: #ffffff;">Engine:</strong> Source / SRCDS</li>
<li><strong style="color: #ffffff;">Steam App ID:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">462310</code></li>
<li><strong style="color: #ffffff;">Recommended OS:</strong> Linux (Ubuntu/Debian) or Windows Server</li>
</ul>
</div>
<h2 id="ports">🔌 Ports & Firewall Configuration</h2>
<p>Day of Infamy servers require specific ports for proper operation:</p>
<h2 id="ports">🔌 Network Ports</h2>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Required Ports</h3>
<table style="width: 100%; color: #e5e7eb; border-collapse: collapse;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 10px; text-align: left; color: #ffffff;">Port</th>
<th style="padding: 10px; text-align: left; color: #ffffff;">Protocol</th>
<th style="padding: 10px; text-align: left; color: #ffffff;">Purpose</th>
</tr>
</thead>
<tbody>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">27015</code></td>
<td style="padding: 10px;">UDP</td>
<td style="padding: 10px;">Game/Query (can change with -port)</td>
</tr>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">27015</code></td>
<td style="padding: 10px;">TCP</td>
<td style="padding: 10px;">RCON</td>
</tr>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">27020</code></td>
<td style="padding: 10px;">UDP</td>
<td style="padding: 10px;">SourceTV (tv_port)</td>
</tr>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">27005</code></td>
<td style="padding: 10px;">UDP</td>
<td style="padding: 10px;">Client port (outbound/varies)</td>
</tr>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">26900</code></td>
<td style="padding: 10px;">UDP</td>
<td style="padding: 10px;">Steam (outbound, -sport) <span style="color: #f59e0b;">(Optional)</span></td>
</tr>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">27031-27036</code></td>
<td style="padding: 10px;">UDP</td>
<td style="padding: 10px;">Steam Remote Play / P2P (outbound) <span style="color: #f59e0b;">(Optional)</span></td>
</tr>
<tr style="border-bottom: 1px solid #374151;">
<td style="padding: 10px;"><code style="background: #0f172a; padding: 2px 6px; border-radius: 3px;">27036-27037</code></td>
<td style="padding: 10px;">TCP</td>
<td style="padding: 10px;">Steam Remote Play (inbound where applicable) <span style="color: #f59e0b;">(Optional)</span></td>
</tr>
</tbody>
</table>
<h3 style="color: #ffffff; margin-top: 20px;">Firewall Configuration</h3>
<p style="color: #e5e7eb;">Allow server ports through your firewall:</p>
<pre><code style="color: #a5b4fc;"># UFW (Ubuntu/Debian)
sudo ufw allow [PORT]/tcp
sudo ufw allow [PORT]/udp
sudo ufw reload
<table>
<thead>
<tr>
<th>Port</th>
<th>Protocol</th>
<th>Purpose</th>
<th>Required</th>
</tr>
</thead>
<tbody>
<tr>
<td>27015 (configurable)</td>
<td>UDP</td>
<td>Game port</td>
<td>Yes</td>
</tr>
<tr>
<td>27015 (same as game)</td>
<td>TCP</td>
<td>RCON/Source TV</td>
<td>Optional</td>
</tr>
<tr>
<td>27005</td>
<td>UDP</td>
<td>Client port</td>
<td>Yes</td>
</tr>
<tr>
<td>27020</td>
<td>UDP</td>
<td>SourceTV port</td>
<td>Optional</td>
</tr>
</tbody>
</table>
# FirewallD (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=[PORT]/tcp
sudo firewall-cmd --permanent --add-port=[PORT]/udp
sudo firewall-cmd --reload
<h3>Firewall Examples</h3>
# Windows Firewall
netsh advfirewall firewall add rule name="Day of Infamy Server" dir=in action=allow protocol=TCP localport=[PORT]
netsh advfirewall firewall add rule name="Day of Infamy Server" dir=in action=allow protocol=UDP localport=[PORT]
</code></pre>
<p><strong>UFW (Ubuntu/Debian):</strong></p>
<div class="code-block">
<code>sudo ufw allow 27015/udp comment 'DoI Game Port'
sudo ufw allow 27015/tcp comment 'DoI RCON'
sudo ufw allow 27005/udp comment 'DoI Client Port'
sudo ufw allow 27020/udp comment 'DoI SourceTV'</code>
<h3 style="color: #ffffff; margin-top: 20px;">⚠️ Port Security Notes</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Only open ports that are necessary for the game server to function</li>
<li>Consider using non-standard ports to reduce automated attacks</li>
<li>If using cloud hosting, configure security groups properly</li>
<li>Monitor connection attempts and unusual traffic patterns</li>
</ul>
</div>
<p><strong>FirewallD (CentOS/RHEL):</strong></p>
<div class="code-block">
<code>sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=27015/tcp
sudo firewall-cmd --permanent --add-port=27005/udp
sudo firewall-cmd --permanent --add-port=27020/udp
sudo firewall-cmd --reload</code>
</div>
<p><strong>iptables:</strong></p>
<div class="code-block">
<code>iptables -A INPUT -p udp --dport 27015 -j ACCEPT
iptables -A INPUT -p tcp --dport 27015 -j ACCEPT
iptables -A INPUT -p udp --dport 27005 -j ACCEPT
iptables -A INPUT -p udp --dport 27020 -j ACCEPT</code>
</div>
<h2 id="installation">⚙️ Installation & Setup</h2>
<h2 id="installation">Installation & Setup</h2>
<h3>System Requirements</h3>
<ul>
<li><strong>OS:</strong> Linux (Ubuntu 18.04+, Debian 9+, CentOS 7+) or Windows Server 2012+</li>
<li><strong>CPU:</strong> 2+ cores @ 2.5GHz recommended</li>
<li><strong>RAM:</strong> 2GB minimum, 4GB+ recommended for 32 players</li>
<li><strong>Disk:</strong> 15GB for game files</li>
<li><strong>Network:</strong> Stable connection, 10Mbps+ bandwidth</li>
<li><strong>OS:</strong> Linux (Ubuntu 20.04+ or Debian 11+ recommended) or Windows Server 2019+</li>
<li><strong>CPU:</strong> 2+ cores recommended (single-threaded performance important for most game servers)</li>
<li><strong>RAM:</strong> 24 GB per process baseline (varies by game/players) minimum (more for larger player counts)</li>
<li><strong>Storage:</strong> 5GB+ for server files (SSD recommended for better performance)</li>
<li><strong>Network:</strong> Stable internet connection with low latency</li>
</ul>
<h3>Installation via SteamCMD (Linux)</h3>
<ol>
<li><strong>Install SteamCMD:</strong>
<div class="code-block"><code>sudo apt-get install steamcmd # Debian/Ubuntu
sudo yum install steamcmd # CentOS/RHEL</code></div>
</li>
<li><strong>Run SteamCMD and install DoI server:</strong>
<div class="code-block"><code>steamcmd +login anonymous +force_install_dir /home/steam/doi +app_update 462310 validate +quit</code></div>
</li>
<li><strong>Create server.cfg:</strong> Navigate to <code>/home/steam/doi/doi/cfg/</code> and create configuration file</li>
</ol>
<h3>Required Dependencies</h3>
<ul>
<li>SteamCMD</li>
<li>Open firewall for listed ports</li>
</ul>
<h3>Installation via SteamCMD (Windows)</h3>
<h3>Installation Steps</h3>
<h4>Linux (Ubuntu/Debian)</h4>
<pre><code># Update system packages
sudo apt update && sudo apt upgrade -y
# Create server directory
mkdir -p ~/gameserver
cd ~/gameserver
# Download server files (method varies by game)
# Check official documentation for download links
</code></pre>
<h4>Starting the Server</h4>
<pre><code>./srcds_run -console -game doi -ip 0.0.0.0 -port 27015 +map bastogne +maxplayers 24 +exec server.cfg
</code></pre>
<h4>Windows Server</h4>
<p>Download the server files from the official game website or through Steam (if applicable). Extract to a dedicated folder and run the server executable.</p>
<h3>Using SteamCMD - RECOMMENDED METHOD</h3>
<p><strong>This game can be installed via SteamCMD using App ID: 462310</strong></p>
<h4>Install SteamCMD (Ubuntu/Debian)</h4>
<pre><code># Update package list
sudo apt update
# Enable 32-bit architecture
sudo dpkg --add-architecture i386
sudo apt update
# Install SteamCMD
sudo apt install -y lib32gcc-s1 steamcmd
</code></pre>
<h4>Download Server Files</h4>
<pre><code># Create directory for game server
mkdir -p ~/gameservers/doi
# Run SteamCMD and download
steamcmd +login anonymous \
+force_install_dir ~/gameservers/doi \
+app_update 462310 validate \
+quit
# Server files are now in ~/gameservers/doi/
cd ~/gameservers/doi
ls -la
</code></pre>
<h4>Windows Installation with SteamCMD</h4>
<ol>
<li>Download SteamCMD from Valve's website</li>
<li>Download SteamCMD from: <a href="https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip" target="_blank">https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip</a></li>
<li>Extract to <code>C:\steamcmd\</code></li>
<li>Run: <code>steamcmd +login anonymous +force_install_dir C:\doi +app_update 462310 validate +quit</code></li>
<li>Create <code>server.cfg</code> in <code>C:\doi\doi\cfg\</code></li>
<li>Open Command Prompt and run:</li>
</ol>
<pre><code>cd C:\steamcmd
steamcmd.exe +login anonymous ^
+force_install_dir C:\gameservers\doi ^
+app_update 462310 validate ^
+quit
</code></pre>
<h2 id="configuration">📝 Configuration</h2>
<h3>Basic server.cfg Example</h3>
<div class="code-block">
<code>// Server Name
hostname "My Day of Infamy Server"
<h2 id="configuration">Server Configuration</h2>
// RCON Password
rcon_password "your_secure_password"
<p>After installation, you'll need to configure your server. Here's where to find the configuration files and what settings you can change.</p>
// Server Password (leave blank for public)
sv_password ""
<h3>Essential Settings</h3>
<ul>
<li><strong>Server Name:</strong> Set a descriptive name for your server</li>
<li><strong>Max Players:</strong> Configure based on your server's resources</li>
<li><strong>Password:</strong> Optional password protection for private servers</li>
<li><strong>Admin/RCON Password:</strong> Set a strong password for remote administration</li>
<li><strong>Game Mode:</strong> Configure game-specific modes and settings</li>
</ul>
// Network Settings
sv_region 255 // 0=US East, 1=US West, 2=South America, 3=Europe, etc.
sv_contact "admin@example.com"
sv_tags "doi,hardcore,custom"
<h3>Server Commands</h3>
<p>Common administrative commands (access via console or RCON):</p>
<pre><code># Kick player
kick [player_name]
// Game Settings
mp_teamplay 1
mp_friendlyfire 1 // Friendly fire on (realistic)
mp_autokick 0
mp_autoteambalance 1
mp_limitteams 2
# Ban player
ban [player_name]
// Time Settings
mp_roundtime 10 // Minutes per round
mp_round_restart_delay 15 // Seconds between rounds
# Change map/level (syntax varies by game)
changelevel [map_name]
// Spawn Settings
mp_tkpunish 0 // Team kill punishment
mp_forcecamera 1 // Force spectator camera rules
# Set admin password (if supported)
setadminpassword [password]
</code></pre>
// Hit Registration & Rates
sv_maxrate 0 // 0=unlimited
sv_minrate 20000
sv_maxupdaterate 66
sv_minupdaterate 20
sv_maxcmdrate 66
sv_mincmdrate 20
<h2 id="parameters">⚙️ Startup Parameters</h2>
// Server Performance
sv_maxspeed 320
fps_max 300
<h3>Basic Startup</h3>
<pre><code>./srcds_run -console -game doi -ip 0.0.0.0 -port 27015 +map bastogne +maxplayers 24 +exec server.cfg
</code></pre>
// Logging
log on
sv_logbans 1
sv_logecho 0
sv_logfile 1
sv_log_onefile 0
<h3>Common Parameters</h3>
<ul>
<li><code>-port [number]</code> - Set the server port</li>
<li><code>-maxplayers [number]</code> - Maximum player slots</li>
<li><code>-map [name]</code> - Starting map/level</li>
<li><code>-console</code> - Enable console output</li>
<li><code>-nographics</code> - Run without graphics (headless mode)</li>
</ul>
// Download Settings
sv_allowdownload 1
sv_allowupload 1
sv_downloadurl "" // FastDL URL if available
<h3>Creating a Start Script</h3>
// Voice Chat
sv_voiceenable 1
sv_alltalk 0 // Team-only voice
<p><strong>Linux (start.sh):</strong></p>
<pre><code>#!/bin/bash
cd /path/to/server
./server_executable [parameters] 2>&1 | tee server.log
</code></pre>
<pre><code>chmod +x start.sh
./start.sh
</code></pre>
// Gameplay Settings
doi_coop_max_waves 10 // Co-op mode wave count
doi_squad_enabled 1 // Enable squad system
doi_squad_leadership_enabled 1 // Squad leader mechanics
<p><strong>Windows (start.bat):</strong></p>
<pre><code>@echo off
cd /d "%~dp0"
server_executable.exe [parameters]
pause
</code></pre>
// Theater-specific settings
mp_theater "default" // default, rifle_only, bolt_action, etc.
<h3>Running as a Service</h3>
// SourceTV (optional)
tv_enable 0
tv_name "Day of Infamy TV"
tv_maxclients 4
tv_delay 30
<p><strong>Linux (systemd):</strong></p>
<pre><code># Create service file: /etc/systemd/system/gameserver.service
[Unit]
Description=Day of Infamy Server
After=network.target
// Map Cycle
mapcyclefile "mapcycle_default.txt"
[Service]
Type=simple
User=gameserver
WorkingDirectory=/home/gameserver/server
ExecStart=/home/gameserver/server/start.sh
Restart=on-failure
RestartSec=10
// Execute additional configs
exec banned_user.cfg
exec banned_ip.cfg</code>
</div>
[Install]
WantedBy=multi-user.target
</code></pre>
<h3>mapcycle_default.txt Example</h3>
<div class="code-block">
<code>bastogne
bocage
brenner
crete
dog_red
dunkirk
foy
ortona
salerno
sicily
stgilles</code>
</div>
<h2 id="parameters">🚀 Startup Parameters</h2>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Description</th>
<th>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td>-game</td>
<td>Specify game (doi)</td>
<td>-game doi</td>
</tr>
<tr>
<td>-port</td>
<td>Server port</td>
<td>-port 27015</td>
</tr>
<tr>
<td>-maxplayers</td>
<td>Maximum player slots</td>
<td>-maxplayers 32</td>
</tr>
<tr>
<td>+map</td>
<td>Starting map</td>
<td>+map bastogne</td>
</tr>
<tr>
<td>+exec</td>
<td>Execute config file on startup</td>
<td>+exec server.cfg</td>
</tr>
<tr>
<td>-ip</td>
<td>Bind to specific IP</td>
<td>-ip 192.168.1.100</td>
</tr>
<tr>
<td>-console</td>
<td>Enable console output (Windows)</td>
<td>-console</td>
</tr>
<tr>
<td>-tickrate</td>
<td>Server tickrate (default: 66)</td>
<td>-tickrate 100</td>
</tr>
<tr>
<td>+sv_pure</td>
<td>File consistency checking (0-2)</td>
<td>+sv_pure 1</td>
</tr>
</tbody>
</table>
<h3>Example Startup Command (Linux)</h3>
<div class="code-block">
<code>./srcds_run -game doi -port 27015 -maxplayers 32 +map bastogne +exec server.cfg -tickrate 66</code>
</div>
<h3>Example Startup Command (Windows)</h3>
<div class="code-block">
<code>srcds.exe -game doi -port 27015 -maxplayers 32 +map bastogne +exec server.cfg -console -tickrate 66</code>
</div>
<h3>Example Startup Script (Linux)</h3>
<div class="code-block">
<code>#!/bin/bash
cd /home/steam/doi
./srcds_run -game doi -port 27015 -maxplayers 32 +map bastogne +exec server.cfg -tickrate 66</code>
</div>
<pre><code># Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable gameserver
sudo systemctl start gameserver
sudo systemctl status gameserver
</code></pre>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not Appearing in Browser</h3>
<p><strong>Issue:</strong> Server not visible in the in-game server browser.</p>
<p><strong>Solutions:</strong></p>
<ul>
<li>Verify UDP port 27015 is open in firewall</li>
<li>Ensure <code>sv_lan 0</code> is set</li>
<li>Check Steam master server connectivity</li>
<li>Try direct connect using IP:PORT</li>
<li>Validate game files via SteamCMD</li>
</ul>
<h3>Server Won't Start</h3>
<h4>Server not listed or query fails</h4>
<p>Open 27015/udp and 27015/tcp; check -ip/-port; ensure sv_lan 0; verify external firewall/NAT.</p>
<h4>Workshop maps not downloading</h4>
<p>Ensure -authkey is present; server has internet access; use +host_workshop_collection and +workshop_start_map or fall back to FastDL.</p>
<h3>Connection Issues</h3>
<p><strong>Issue:</strong> Players cannot connect or timeout.</p>
<p><strong>Solutions:</strong></p>
<h4>Can't Connect to Server</h4>
<ol>
<li><strong>Verify server is running:</strong> <code>ps aux | grep server</code></li>
<li><strong>Check port is listening:</strong> <code>netstat -an | grep [PORT]</code></li>
<li><strong>Verify firewall rules</strong> (see Ports section above)</li>
<li><strong>Check server IP:</strong> Use external IP, not localhost</li>
<li><strong>Router/NAT:</strong> Ensure port forwarding is configured</li>
</ol>
<h4>High Latency/Lag</h4>
<ul>
<li>Verify firewall allows traffic on game port</li>
<li>Check server is not full (<code>maxplayers</code> limit)</li>
<li>Disable password if testing: <code>sv_password ""</code></li>
<li>Check <code>sv_pure</code> settings for custom content</li>
<li>Review server logs in <code>doi/logs/</code></li>
<li>Check server resource usage (CPU, RAM, disk I/O)</li>
<li>Verify network bandwidth is adequate</li>
<li>Consider server location relative to players</li>
<li>Check for background processes consuming resources</li>
</ul>
<h3>High Ping/Lag Issues</h3>
<p><strong>Issue:</strong> Players experiencing high latency.</p>
<p><strong>Solutions:</strong></p>
<h3>Performance Issues</h3>
<h4>Server Lag</h4>
<ol>
<li><strong>Monitor resources:</strong> Use <code>htop</code> or <code>top</code></li>
<li><strong>Check disk I/O:</strong> Use <code>iotop</code></li>
<li><strong>Review server logs</strong> for errors or warnings</li>
<li><strong>Reduce player count</strong> or increase server resources</li>
<li><strong>Optimize configuration</strong> based on server capacity</li>
</ol>
<h4>Memory Leaks</h4>
<pre><code># Monitor memory usage
free -h
top -p $(pgrep -f server)
# Restart server regularly via cron if needed
0 4 * * * /home/gameserver/restart.sh
</code></pre>
<h2 id="performance">Performance Optimization</h2>
<h3>Server Tuning</h3>
<ul>
<li>Set <code>sv_maxrate 0</code> for unlimited bandwidth</li>
<li>Increase tickrate if CPU allows: <code>-tickrate 100</code></li>
<li>Set <code>fps_max 300</code> or higher</li>
<li>Check server CPU usage (under 70%)</li>
<li>Verify network bandwidth is sufficient</li>
<li><strong>CPU:</strong> Ensure adequate CPU allocation; most game servers are single-threaded</li>
<li><strong>RAM:</strong> Allocate sufficient memory; monitor usage and adjust as needed</li>
<li><strong>Disk:</strong> Use SSD storage for better I/O performance</li>
<li><strong>Network:</strong> Ensure stable, low-latency connection</li>
</ul>
<h3>Squad System Issues</h3>
<p><strong>Issue:</strong> Squad mechanics not working properly.</p>
<p><strong>Solutions:</strong></p>
<h3>Operating System Optimization</h3>
<pre><code># Increase file descriptor limits
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
# Network tuning
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 87380 16777216"
</code></pre>
<h3>Monitoring</h3>
<p>Set up monitoring to track server health:</p>
<ul>
<li>Verify <code>doi_squad_enabled 1</code> in server.cfg</li>
<li>Ensure <code>doi_squad_leadership_enabled 1</code> for squad leader features</li>
<li>Check player counts meet minimum for squad formation</li>
<li>Review squad-related console variables</li>
<li>CPU and memory usage</li>
<li>Network traffic and latency</li>
<li>Player count and activity</li>
<li>Error rates and crash logs</li>
</ul>
<h3>Co-op Mode Problems</h3>
<p><strong>Issue:</strong> Co-op missions not functioning correctly.</p>
<p><strong>Solutions:</strong></p>
<h3>Backup Strategy</h3>
<pre><code>#!/bin/bash
# backup.sh - Run via cron
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/gameserver"
SERVER_DIR="/home/gameserver/server"
# Create backup
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz -C $SERVER_DIR .
# Keep only last 7 days
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
</code></pre>
<h2 id="security">Security Best Practices</h2>
<h3>Firewall Configuration</h3>
<pre><code># Minimal firewall - only allow necessary ports
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow [SERVER_PORT]/tcp
sudo ufw allow [SERVER_PORT]/udp
sudo ufw allow 22/tcp # SSH
sudo ufw enable
</code></pre>
<h3>Strong Passwords</h3>
<ul>
<li>Use co-op specific maps (prefix: <code>coop_</code>)</li>
<li>Set <code>doi_coop_max_waves</code> appropriately</li>
<li>Verify AI bot settings are configured</li>
<li>Check for conflicting plugins/mods</li>
<li>Use strong, unique passwords for admin/RCON access</li>
<li>Never use default passwords</li>
<li>Change passwords regularly</li>
<li>Don't share admin credentials unnecessarily</li>
</ul>
<h3>SourceMod/Metamod Issues</h3>
<p><strong>Issue:</strong> Plugins not loading or causing crashes.</p>
<p><strong>Solutions:</strong></p>
<h3>Regular Updates</h3>
<ul>
<li>Ensure Metamod:Source is installed before SourceMod</li>
<li>Verify plugin compatibility with Day of Infamy</li>
<li>Check <code>addons/sourcemod/logs/</code> for errors</li>
<li>Update SourceMod and Metamod to latest versions</li>
<li>Keep server software updated to the latest stable version</li>
<li>Update operating system and dependencies regularly</li>
<li>Subscribe to security advisories for your game</li>
<li>Test updates on a staging server before production deployment</li>
</ul>
<h2 id="game-modes">🎮 Game Modes</h2>
<p>Day of Infamy features multiple game modes with squad-based WW2 combat:</p>
<h3>Multiplayer Modes</h3>
<h3>Access Control</h3>
<ul>
<li><strong>Liberation:</strong> Attack and defend objectives sequentially</li>
<li><strong>Offensive:</strong> One team attacks all objectives while defenders hold</li>
<li><strong>Entrenchment:</strong> Defend positions against enemy waves</li>
<li><strong>Stronghold:</strong> Capture and hold key positions</li>
<li>Limit SSH access to specific IPs if possible</li>
<li>Use SSH keys instead of passwords</li>
<li>Disable root login via SSH</li>
<li>Implement fail2ban or similar intrusion prevention</li>
</ul>
<h3>Co-op Modes</h3>
<h3>DDoS Protection</h3>
<ul>
<li><strong>Cooperative:</strong> Team vs AI bot waves</li>
<li><strong>Survival:</strong> Hold out against increasingly difficult bot attacks</li>
<li>Consider DDoS protection services (Cloudflare, OVH, etc.)</li>
<li>Implement rate limiting where supported</li>
<li>Monitor for unusual traffic patterns</li>
<li>Have an incident response plan</li>
</ul>
<h3>Player Classes</h3>
<h2>Additional Resources</h2>
<ul>
<li><strong>Rifleman:</strong> Standard infantry with semi-auto rifle</li>
<li><strong>Assault:</strong> Close-quarters with SMG and grenades</li>
<li><strong>Support:</strong> Ammunition and suppression fire</li>
<li><strong>Engineer:</strong> Repair and construction specialist</li>
<li><strong>Machine Gunner:</strong> Heavy suppression weapon</li>
<li><strong>Sniper:</strong> Long-range precision</li>
<li><strong>Radioman:</strong> Artillery and air support caller</li>
<li>Official Day of Infamy documentation and forums</li>
<li>Community wikis and guides</li>
<li>Game-specific Discord or Reddit communities</li>
<li>Server hosting provider documentation</li>
</ul>
<h2 id="maps">🗺️ Default Maps</h2>
<h3>Official Maps</h3>
<h3>External References</h3>
<ul>
<li><strong>bastogne</strong> - Battle of the Bulge, Belgium</li>
<li><strong>bocage</strong> - French hedgerow country</li>
<li><strong>brenner</strong> - Alpine mountain pass</li>
<li><strong>crete</strong> - Greek island invasion</li>
<li><strong>dog_red</strong> - Omaha Beach landing</li>
<li><strong>dunkirk</strong> - British evacuation</li>
<li><strong>foy</strong> - Belgian village combat</li>
<li><strong>ortona</strong> - Italian city battle</li>
<li><strong>salerno</strong> - Italian coastal invasion</li>
<li><strong>sicily</strong> - Sicilian campaign</li>
<li><strong>stgilles</strong> - French town liberation</li>
<li><a href="https://developer.valvesoftware.com/wiki/Source_Dedicated_Server" target="_blank">https://developer.valvesoftware.com/wiki/Source_Dedicated_Server</a></li>
<li><a href="https://help.steampowered.com/en/faqs/view/2EA8-4D75-DA21-31EB" target="_blank">https://help.steampowered.com/en/faqs/view/2EA8-4D75-DA21-31EB</a></li>
</ul>
<h3>Co-op Maps</h3>
<ul>
<li><strong>coop_* variants</strong> - Co-op versions of multiplayer maps</li>
<li>Designed for players vs AI bots</li>
</ul>
<h3>Map Theaters</h3>
<ul>
<li><strong>Western Front:</strong> France, Belgium, Netherlands</li>
<li><strong>Mediterranean:</strong> Italy, Sicily, Greece, Crete</li>
<li><strong>Eastern Front:</strong> (Available in DLC/expansions)</li>
</ul>
<h2 id="related-mods">🔌 Related Mods & Plugins</h2>
<p>Popular server modifications compatible with Day of Infamy:</p>
<ul>
<li><a href="../metamodsource/">Metamod:Source</a> - Core plugin loader for Source engine games</li>
<li><strong>SourceMod:</strong> Admin and plugin platform for Source games</li>
<li><strong>Custom Maps:</strong> Community-created maps and theaters</li>
<li><strong>Custom Theaters:</strong> Weapon loadout modifications</li>
<li><strong>Bot Improvements:</strong> Enhanced AI behavior plugins</li>
</ul>
<h2>📚 Resources</h2>
<ul>
<li><strong>SteamCMD:</strong> <a href="https://developer.valvesoftware.com/wiki/SteamCMD" target="_blank">https://developer.valvesoftware.com/wiki/SteamCMD</a></li>
<li><strong>SourceMod:</strong> <a href="https://www.sourcemod.net/" target="_blank">https://www.sourcemod.net/</a></li>
<li><strong>Metamod:Source:</strong> <a href="https://www.sourcemm.net/" target="_blank">https://www.sourcemm.net/</a></li>
<li><strong>Steam Community:</strong> Workshop and guides</li>
<li><strong>Map Resources:</strong> Steam Workshop integration</li>
</ul>
<div class="warning-box">
<div style="background: #78350f; padding: 20px; border-left: 4px solid #f59e0b; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;"><i class="fas fa-exclamation-triangle" style="color: #fbbf24; margin-right: 8px;"></i>Important Notes</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Day of Infamy uses a <strong>modified Source Engine</strong> (based on Insurgency)</li>
<li>Maximum <strong>32 players</strong> per server (16v16)</li>
<li><strong>Squad system</strong> is central to gameplay - configure appropriately</li>
<li><strong>Friendly fire</strong> is recommended for realistic gameplay</li>
<li>Co-op mode supports player vs AI bot gameplay</li>
<li><strong>Theater system</strong> allows custom weapon loadouts</li>
<li>Regular updates via SteamCMD recommended</li>
<li>Steam Workshop integration for custom content</li>
<li>Squad leaders can call artillery and air support</li>
<li>World War 2 setting across multiple theaters of war</li>
<ul style="color: #fef3c7; line-height: 1.8; margin: 0;">
<li>Always make backups before making configuration changes</li>
<li>Keep your server and dependencies updated</li>
<li>Monitor server resources and player activity</li>
<li>Follow the game's End User License Agreement (EULA) and Terms of Service</li>
<li>Join community forums for support and best practices</li>
</ul>
</div>
</div>
<p style="text-align: center; margin-top: 30px; color: #666;">
<em>Last updated: November 2025 | For Day of Infamy server hosting</em>
</p>

View file

@ -1,6 +1,7 @@
{
"description": "Setup and configuration guide for Day of Infamy game servers",
"name": "Day of Infamy",
"order": 70,
"category": "game"
{
"description": "Setup and configuration guide for Day of Infamy game servers",
"name": "Day of Infamy",
"order": 70,
"category": "game",
"complete": true
}