more games

This commit is contained in:
Frank Harris 2025-11-10 20:54:02 -05:00
parent 221a0fac38
commit 42e65eace1
14 changed files with 2885 additions and 274 deletions

View file

@ -134,6 +134,9 @@ uksort($grouped, function($a, $b) use ($grouped) {
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<title><?php echo $action === 'view' ? 'Documentation' : 'Documentation - GameServers.World'; ?></title>
<link rel="stylesheet" href="css/header.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />

View file

@ -26,11 +26,11 @@ This list contains multiplayer games that support dedicated server hosting, orde
## High Popularity
11. ~~DayZ Standalone~~ - Zombie survival
12. Team Fortress 2 - Team-based FPS
13. Left 4 Dead 2 - Co-op zombie shooter
12. ~~Team Fortress 2~~ - Team-based FPS
13. ~~Left 4 Dead 2~~ - Co-op zombie shooter
14. Squad - Tactical military FPS
15. Killing Floor 2 - Co-op wave shooter
16. Insurgency: Sandstorm - Tactical FPS
15. ~~Killing Floor 2~~ - Co-op wave shooter
16. 21. ~~Insurgency: Sandstorm~~ - Tactical FPS
17. Space Engineers - Space sandbox engineering
18. Don't Starve Together - Survival co-op
19. ~~Conan Exiles~~ - Survival and building
@ -42,8 +42,8 @@ This list contains multiplayer games that support dedicated server hosting, orde
22. ~~Counter-Strike 1.6~~ - Original CS (GoldSrc engine)
23. ~~Arma 2: Operation Arrowhead~~ - Military sim (DayZ Mod base)
24. ~~Arma 2: Combined Operations~~ - Arma 2 + OA (DayZ Mod)
25. Left 4 Dead - Co-op zombie shooter
26. Killing Floor - Wave-based shooter
25. ~~Left 4 Dead~~ - Co-op zombie shooter
26. 13. ~~Killing Floor~~ - Co-op horror shooter
27. Insurgency - Tactical FPS
28. The Forest - Survival horror co-op
29. Starbound - 2D space exploration

View file

@ -3,66 +3,488 @@
* Insurgency: Sandstorm Server Documentation
*/
?>
<h1>Insurgency: Sandstorm Server Guide</h1>
<h2>Overview</h2>
<p><strong>Insurgency: Sandstorm</strong> is available for hosting on our platform. This guide covers the basics of setting up and managing your Insurgency: Sandstorm server.</p>
<h1>📚 Insurgency: Sandstorm Server Guide</h1>
<p style="font-size: 1.1em; color: rgba(255,255,255,0.8);">Tactical team-based FPS with realistic combat mechanics</p>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Server Information</h3>
<ul style="color: #e5e7eb; line-height: 1.8;">
<li><strong style="color: #ffffff;">Default Port:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">27102</code></li>
<li><strong style="color: #ffffff;">Protocol:</strong> UDP</li>
<li><strong style="color: #ffffff;">Additional Info:</strong> Query port is 27131 UDP</li>
</ul>
<p style="color: #e5e7eb; margin-top: 12px; font-size: 0.95em;">
<em>Note: When running on a VPS or dedicated server, you can use the default port or configure a custom port in your server configuration file.</em>
</p>
<h3 style="color: #ffffff; margin-top: 0;">Quick Info</h3>
<table style="width: 100%; color: #e5e7eb;">
<tr><td><strong style="color: #ffffff;">Engine:</strong></td><td>Unreal Engine 4</td></tr>
<tr><td><strong style="color: #ffffff;">Developer:</strong></td><td>New World Interactive</td></tr>
<tr><td><strong style="color: #ffffff;">App ID:</strong></td><td>581320 (Dedicated Server)</td></tr>
<tr><td><strong style="color: #ffffff;">Default Ports:</strong></td><td>27102 (Game), 27131 (Query), 27015 (RCON)</td></tr>
<tr><td><strong style="color: #ffffff;">Max Players:</strong></td><td>8v8 (16 players typical), up to 32 possible</td></tr>
<tr><td><strong style="color: #ffffff;">Game Modes:</strong></td><td>Push, Firefight, Skirmish, Frontline, Checkpoint, Outpost, Survival</td></tr>
<tr><td><strong style="color: #ffffff;">Platforms:</strong></td><td>Linux, Windows</td></tr>
</table>
</div>
<h2>Getting Started</h2>
<p>To create a Insurgency: Sandstorm server:</p>
<ol>
<li>Navigate to the <a href="/serverlist.php">Game Servers</a> page</li>
<li>Find <strong>Insurgency: Sandstorm</strong> in the list</li>
<li>Select your preferred configuration (slots, duration, etc.)</li>
<li>Add to cart and complete checkout</li>
<li>Your server will be automatically provisioned within minutes</li>
</ol>
<h2>Server Configuration</h2>
<p>After your server is created, you can configure it through the control panel:</p>
<ul>
<li>Server settings and parameters</li>
<li>Player slots and limits</li>
<li>RCON/remote control access</li>
<li>FTP file access</li>
<h2>Navigation</h2>
<ul style="list-style: none; padding: 0;">
<li>📚 <a href="#overview">Overview</a></li>
<li>🔌 <a href="#ports">Ports & Firewall</a></li>
<li>📥 <a href="#installation">Installation</a></li>
<li>⚙️ <a href="#configuration">Configuration</a></li>
<li>🎮 <a href="#gamemodes">Game Modes</a></li>
<li>🗺️ <a href="#maps">Maps & Scenarios</a></li>
<li>🔧 <a href="#admin">Admin Tools</a></li>
<li>🛠️ <a href="#mods">Mods & Mutators</a></li>
<li>🚀 <a href="#startup">Startup Commands</a></li>
<li>🔧 <a href="#troubleshooting">Troubleshooting</a></li>
<li>📖 <a href="#resources">Resources</a></li>
</ul>
<h2>Common Tasks</h2>
<h2 id="overview">Overview</h2>
<p>Insurgency: Sandstorm is a hardcore tactical FPS focusing on close-quarters combat and teamwork. The game features realistic ballistics, minimal HUD, and high lethality combat where positioning and communication matter more than twitch reflexes.</p>
<h3>Starting Your Server</h3>
<p>Servers are automatically started after creation. You can stop/start your server from the control panel.</p>
<h3>Connecting to Your Server</h3>
<p>Use your server's IP address and port to connect from the game client.</p>
<h3>Managing Files</h3>
<p>Access your server files via FTP using the credentials provided in your control panel.</p>
<h2>Support</h2>
<p>If you need assistance with your Insurgency: Sandstorm server:</p>
<h3>Key Features</h3>
<ul>
<li>Check our <a href="/docs.php?action=view&doc=common-issues">Common Issues</a> guide</li>
<li>Contact support through your account dashboard</li>
<li>Visit the official Insurgency: Sandstorm community for game-specific help</li>
<li><strong>Realistic Combat:</strong> Minimal HUD, no health regeneration, realistic weapon behavior</li>
<li><strong>7 Game Modes:</strong> Competitive and cooperative gameplay options</li>
<li><strong>Tactical Depth:</strong> Fire support, smoke grenades, objective-based gameplay</li>
<li><strong>Customizable Loadouts:</strong> Weapon attachments and gear choices affect playstyle</li>
<li><strong>Mod Support:</strong> Community maps, mutators, and custom scenarios</li>
<li><strong>Voice Communication:</strong> Proximity-based voice chat adds immersion</li>
<li><strong>Fire Support:</strong> Call in artillery, helicopter gunships, and smoke strikes</li>
</ul>
<h2 id="ports">🔌 Ports & Firewall Configuration</h2>
<h3>Required Ports</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Port</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Protocol</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Purpose</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Required?</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><code>27102</code></td>
<td style="padding: 12px;"><span style="background: #10b981; color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 0.85em;">UDP</span></td>
<td style="padding: 12px;">Game Port (client connections)</td>
<td style="padding: 12px;"><strong style="color: #10b981;"> Required</strong></td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><code>27131</code></td>
<td style="padding: 12px;"><span style="background: #10b981; color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 0.85em;">UDP</span></td>
<td style="padding: 12px;">Query Port (server browser)</td>
<td style="padding: 12px;"><strong style="color: #10b981;"> Required</strong></td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><code>27015</code></td>
<td style="padding: 12px;"><span style="background: #3b82f6; color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 0.85em;">TCP</span></td>
<td style="padding: 12px;">RCON Port (remote administration)</td>
<td style="padding: 12px;"><span style="color: #fbbf24;">Optional Recommended</span></td>
</tr>
</tbody>
</table>
<p><strong>Note:</strong> Ports are configurable in Game.ini and Engine.ini. Default ports shown above.</p>
<h3>Firewall Configuration Examples</h3>
<h4>Ubuntu/Debian (UFW)</h4>
<pre><code># Allow Insurgency: Sandstorm ports
sudo ufw allow 27102/udp comment "Insurgency Game Port"
sudo ufw allow 27131/udp comment "Insurgency Query Port"
sudo ufw allow 27015/tcp comment "Insurgency RCON"
sudo ufw reload
</code></pre>
<h4>CentOS/RHEL (FirewallD)</h4>
<pre><code># Add Insurgency: Sandstorm ports
sudo firewall-cmd --permanent --add-port=27102/udp # Game
sudo firewall-cmd --permanent --add-port=27131/udp # Query
sudo firewall-cmd --permanent --add-port=27015/tcp # RCON
sudo firewall-cmd --reload
</code></pre>
<h4>Windows (PowerShell - Run as Administrator)</h4>
<pre><code># Create firewall rules for Insurgency: Sandstorm
New-NetFirewallRule -DisplayName "Insurgency Game" -Direction Inbound -Protocol UDP -LocalPort 27102 -Action Allow
New-NetFirewallRule -DisplayName "Insurgency Query" -Direction Inbound -Protocol UDP -LocalPort 27131 -Action Allow
New-NetFirewallRule -DisplayName "Insurgency RCON" -Direction Inbound -Protocol TCP -LocalPort 27015 -Action Allow
</code></pre>
<h4>iptables (Advanced)</h4>
<pre><code># Allow Insurgency: Sandstorm ports
iptables -A INPUT -p udp --dport 27102 -j ACCEPT -m comment --comment "Insurgency Game"
iptables -A INPUT -p udp --dport 27131 -j ACCEPT -m comment --comment "Insurgency Query"
iptables -A INPUT -p tcp --dport 27015 -j ACCEPT -m comment --comment "Insurgency RCON"
# Save rules (Ubuntu/Debian)
netfilter-persistent save
# Save rules (CentOS/RHEL)
service iptables save
</code></pre>
<h2 id="installation">Installation</h2>
<h3>Prerequisites</h3>
<ul>
<li><strong>SteamCMD</strong> installed (<a href="https://developer.valvesoftware.com/wiki/SteamCMD" target="_blank">Installation Guide</a>)</li>
<li>Disk space: ~20 GB for full installation</li>
<li>RAM: 4GB minimum, 8GB recommended for 16+ players</li>
<li>Open firewall ports (27102, 27131 UDP, 27015 TCP)</li>
</ul>
<h3>Linux Installation</h3>
<pre><code># Create server directory
mkdir -p ~/insurgency_server
cd ~/insurgency_server
# Download server files with SteamCMD
steamcmd +force_install_dir ~/insurgency_server +login anonymous +app_update 581320 validate +quit
# Note: App ID 581320 is for Insurgency: Sandstorm Dedicated Server
# Download size is approximately 18-20 GB
</code></pre>
<h3>Windows Installation</h3>
<pre><code># Download SteamCMD for Windows
# Extract to C:\steamcmd\
# Create server directory
mkdir C:\insurgency_server
# Run SteamCMD
C:\steamcmd\steamcmd.exe +force_install_dir C:\insurgency_server +login anonymous +app_update 581320 validate +quit
</code></pre>
<h2 id="configuration">⚙️ Configuration</h2>
<h3>Main Configuration Files</h3>
<p>Configuration files are in <code>Insurgency/Saved/Config/LinuxServer/</code> (Linux) or <code>Insurgency/Saved/Config/WindowsServer/</code> (Windows):</p>
<ul>
<li><strong>Game.ini</strong> - Game settings, scenarios, map rotation</li>
<li><strong>Engine.ini</strong> - Network settings, port configuration</li>
<li><strong>ServerConfig.txt</strong> - Server name, admin password, RCON</li>
</ul>
<h3>Engine.ini (Network Configuration)</h3>
<p>Edit <code>Insurgency/Saved/Config/LinuxServer/Engine.ini</code>:</p>
<pre><code>[URL]
Port=27102
[/Script/Engine.GameNetworkManager]
TotalNetBandwidth=64000
MaxDynamicBandwidth=32000
MinDynamicBandwidth=16000
[SystemSettings]
net.MaxRepArraySize=2048
net.MaxRepArrayMemory=2048
[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxClientRate=25000
MaxInternetClientRate=25000
</code></pre>
<h3>Game.ini (Server Settings)</h3>
<p>Edit <code>Insurgency/Saved/Config/LinuxServer/Game.ini</code>:</p>
<pre><code>[/Script/Insurgency.INSMultiplayerMode]
bAllowFriendlyFire=True
bMapVoting=True
RoundLimit=3
WinLimit=3
GameTimeLimit=-1
PreRoundTime=15
PostRoundTime=15
PostGameTime=15
[/Script/Insurgency.INSCoopMode]
bAllowFriendlyFire=True
RoundLimit=1
WinLimit=1
</code></pre>
<h3>Map Rotation Configuration</h3>
<p>Create <code>Insurgency/Saved/Config/LinuxServer/MapCycle.txt</code>:</p>
<pre><code># Competitive Push rotation
(Scenario="Scenario_Crossing_Push",Lighting="Day")
(Scenario="Scenario_Hideout_Push",Lighting="Day")
(Scenario="Scenario_Summit_Push",Lighting="Day")
(Scenario="Scenario_Tell_Push",Lighting="Day")
(Scenario="Scenario_Ministry_Push",Lighting="Day")
# Mix in night maps
(Scenario="Scenario_Hideout_Push",Lighting="Night")
(Scenario="Scenario_Ministry_Push",Lighting="Night")
</code></pre>
<h2 id="gamemodes">Game Modes</h2>
<h3>Competitive Modes (PvP)</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Players</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Push</strong></td>
<td style="padding: 12px;">Attackers push through objectives, defenders hold ground</td>
<td style="padding: 12px;">8v8 (16)</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Firefight</strong></td>
<td style="padding: 12px;">Fast-paced 3 objective control, single life per round</td>
<td style="padding: 12px;">5v5 (10)</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Frontline</strong></td>
<td style="padding: 12px;">Tug-of-war over middle objectives with respawn waves</td>
<td style="padding: 12px;">8v8 (16)</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Skirmish</strong></td>
<td style="padding: 12px;">Elimination with limited respawns, capture objectives to gain more</td>
<td style="padding: 12px;">8v8 (16)</td>
</tr>
</tbody>
</table>
<h3>Cooperative Modes (PvE)</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Players</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Checkpoint</strong></td>
<td style="padding: 12px;">Team captures objectives against AI defenders</td>
<td style="padding: 12px;">Up to 8 co-op</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Outpost</strong></td>
<td style="padding: 12px;">Defend single objective against AI waves (Horde mode)</td>
<td style="padding: 12px;">Up to 8 co-op</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Survival</strong></td>
<td style="padding: 12px;">Extract-based co-op with permadeath and limited resources</td>
<td style="padding: 12px;">Up to 8 co-op</td>
</tr>
</tbody>
</table>
<h2 id="maps">🗺️ Official Maps</h2>
<h3>Core Maps</h3>
<ul>
<li><strong>Crossing</strong> - Mountain pass with open sightlines</li>
<li><strong>Hideout</strong> - Close-quarters village combat</li>
<li><strong>Summit</strong> - Snowy mountain compound</li>
<li><strong>Tell</strong> - Dense urban environment</li>
<li><strong>Ministry</strong> - Multi-story government building</li>
<li><strong>Precinct</strong> - Police station and streets</li>
<li><strong>Refinery</strong> - Industrial oil refinery complex</li>
<li><strong>Farmhouse</strong> - Rural farmland and buildings</li>
</ul>
<h3>DLC Maps</h3>
<ul>
<li><strong>Citadel</strong> - Ancient fortress ruins</li>
<li><strong>Gap</strong> - Afghan village in mountain valley</li>
<li><strong>PowerPlant</strong> - Geothermal power facility</li>
<li><strong>Tideway</strong> - Port and cargo ship</li>
</ul>
<h3>Lighting Options</h3>
<p>Most maps support multiple lighting scenarios:</p>
<ul>
<li><strong>Day</strong> - Standard daytime lighting</li>
<li><strong>Night</strong> - Nighttime with NVG gameplay</li>
<li><strong>Dusk/Dawn</strong> - Available on select maps</li>
</ul>
<h2 id="admin">🔧 Admin Tools & RCON</h2>
<h3>Enabling RCON</h3>
<p>RCON allows remote administration. Configure in startup parameters or config files.</p>
<h4>RCON Commands (Sample)</h4>
<pre><code># Player management
kick [PlayerName] [Reason]
ban [PlayerName]
listplayers
# Map control
travel [MapName]
restartround
# Server settings
say [Message]
setnextmap [MapName]
</code></pre>
<h3>Admin Console Commands</h3>
<p>In-game console (tilde key ~):</p>
<pre><code># Admin commands (requires admin login)
adminlogin [password]
kick [PlayerName]
ban [PlayerName]
travel [MapName]
restartround
say [Message]
</code></pre>
<h2 id="mods">🛠️ Mods & Mutators</h2>
<h3>Workshop Content</h3>
<p>Insurgency: Sandstorm supports Steam Workshop mods:</p>
<ul>
<li>Custom maps and scenarios</li>
<li>New weapons and attachments</li>
<li>Gameplay mutators</li>
<li>Cosmetic items</li>
</ul>
<h3>Installing Workshop Mods</h3>
<p>Subscribe to mods on Steam Workshop, then add their IDs to your startup command:</p>
<pre><code>-Mods=123456789,987654321
</code></pre>
<h3>Popular Mutators</h3>
<ul>
<li><strong>Ismc Mod:</strong> Adds 100+ weapons and attachments</li>
<li><strong>Day of Infamy Maps:</strong> Classic maps ported to Sandstorm</li>
<li><strong>Custom Scenarios:</strong> Community-created game modes</li>
<li><strong>Hardcore Mutators:</strong> Increased realism and difficulty</li>
</ul>
<h2 id="startup">Startup Commands</h2>
<h3>Linux</h3>
<pre><code>#!/bin/bash
# start_insurgency.sh
cd ~/insurgency_server
./Insurgency/Binaries/Linux/InsurgencyServer-Linux-Shipping \
Crossing?Scenario=Scenario_Crossing_Push?Lighting=Day \
-Port=27102 -QueryPort=27131 \
-log -AdminList=Admins -MapCycle=MapCycle \
-MaxPlayers=16 -Mods
</code></pre>
<h3>Windows</h3>
<pre><code>@echo off
REM start_insurgency.bat
cd C:\insurgency_server
InsurgencyServer.exe Crossing?Scenario=Scenario_Crossing_Push?Lighting=Day ^
-Port=27102 -QueryPort=27131 ^
-log -AdminList=Admins -MapCycle=MapCycle ^
-MaxPlayers=16 -Mods
</code></pre>
<h3>Startup Parameters</h3>
<ul>
<li><code>MapName?Scenario=ScenarioName?Lighting=Day</code> - Start map with scenario</li>
<li><code>-Port=27102</code> - Game port</li>
<li><code>-QueryPort=27131</code> - Server browser query port</li>
<li><code>-MaxPlayers=16</code> - Maximum players (8v8 typical)</li>
<li><code>-AdminList=Admins</code> - Admin list file (Admins.txt)</li>
<li><code>-MapCycle=MapCycle</code> - Map rotation file (MapCycle.txt)</li>
<li><code>-Mods</code> - Enable Workshop mods</li>
<li><code>-log</code> - Enable detailed logging</li>
<li><code>-hostname="Server Name"</code> - Server name in browser</li>
<li><code>-password=serverpass</code> - Server password (optional)</li>
</ul>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not Appearing in Browser</h3>
<pre><code># Check ports are open
netstat -an | grep 27102
netstat -an | grep 27131
# Verify server is running
ps aux | grep Insurgency # Linux
tasklist | findstr Insurgency # Windows
# Check firewall allows both game and query ports
# Wait 5-10 minutes for Steam master server registration
</code></pre>
<h3>High Ping / Lag Issues</h3>
<ul>
<li>Increase <code>MaxClientRate</code> in Engine.ini (try 50000-100000)</li>
<li>Reduce <code>MaxPlayers</code> if server hardware is limited</li>
<li>Ensure server has adequate CPU (UE4 is CPU-intensive)</li>
<li>Check network bandwidth and latency to players</li>
</ul>
<h3>Mods Not Loading</h3>
<pre><code># Ensure -Mods flag is in startup command
# Verify Workshop mod IDs are correct
# Check mod compatibility with current game version
# Some mods require client and server to both have them
# Example with specific mod IDs:
-Mods=2389387394,2318862735
</code></pre>
<h3>Players Can't Connect</h3>
<ul>
<li>Verify game port (27102) is open in firewall</li>
<li>Check server isn't password-protected unintentionally</li>
<li>Ensure server and client game versions match</li>
<li>Verify <code>MaxPlayers</code> isn't reached</li>
<li>Check logs in <code>Insurgency/Saved/Logs/</code></li>
</ul>
<h3>RCON Won't Connect</h3>
<pre><code># Verify RCON port (27015) is open
# Check RCON password is set in startup command or config
# Try connecting from localhost first (127.0.0.1)
# Use RCON tools compatible with Source-style RCON protocol
</code></pre>
<h3>Server Crashes on Startup</h3>
<ul>
<li>Verify full installation via SteamCMD (validate)</li>
<li>Check map/scenario names are spelled correctly</li>
<li>Remove conflicting mods</li>
<li>Ensure adequate disk space and RAM</li>
<li>Check logs: <code>Insurgency/Saved/Logs/Insurgency.log</code></li>
</ul>
<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>
<h3 style="color: #ffffff; margin-top: 0;"><i class="fas fa-lightbulb" style="color: #fbbf24; margin-right: 8px;"></i>Pro Tips</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Always keep your server updated to the latest version</li>
<li>Make regular backups of your server configuration</li>
<li>Review and follow the game's End User License Agreement (EULA)</li>
<li><strong>Mixed Lighting:</strong> Rotate day/night versions of maps for variety</li>
<li><strong>Balanced Teams:</strong> 8v8 is optimal for most maps and modes</li>
<li><strong>Fire Support:</strong> Configure in Game.ini - adds tactical depth</li>
<li><strong>Friendly Fire:</strong> Enable for realistic tactical gameplay</li>
<li><strong>Vote Systems:</strong> Enable map voting for community choice</li>
<li><strong>RCON Tools:</strong> Use tools like RconSharp or HLSW for easier admin</li>
<li><strong>Regular Updates:</strong> Game updates frequently - validate files weekly</li>
<li><strong>Hardware:</strong> CPU-heavy game - prioritize single-thread performance</li>
<li><strong>Competitive Focus:</strong> Push and Firefight are most popular competitive modes</li>
<li><strong>Co-op Casual:</strong> Checkpoint is great for casual co-op sessions</li>
</ul>
</div>
</div>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://insurgencysandstorm.mod.io/" target="_blank">Insurgency: Sandstorm Mod.io</a></li>
<li><a href="https://steamcommunity.com/app/581320/discussions/" target="_blank">Official Community Discussions</a></li>
<li><a href="https://newworldinteractive.com/" target="_blank">New World Interactive (Developer)</a></li>
<li><a href="https://sandstorm-support.newworldinteractive.com/hc/en-us" target="_blank">Official Support Portal</a></li>
<li><a href="https://www.reddit.com/r/insurgency/" target="_blank">r/insurgency - Community Subreddit</a></li>
</ul>

View file

@ -1,7 +1,7 @@
{
"name": "Insurgency: Sandstorm",
"description": "Setup and configuration guide for Insurgency: Sandstorm game servers",
"description": "Comprehensive guide for Insurgency: Sandstorm dedicated servers with 7 game modes (Push, Firefight, Frontline, Skirmish, Checkpoint, Outpost, Survival), tactical FPS gameplay, Workshop mod support, and UE4-based server hosting",
"category": "game",
"order": 18,
"complete": false
"order": 22,
"complete": true
}

View file

@ -3,66 +3,596 @@
* Killing Floor Server Documentation
*/
?>
<h1>Killing Floor Server Guide</h1>
<h1>📚 Killing Floor Server Guide</h1>
<h2>Overview</h2>
<p><strong>Killing Floor</strong> is available for hosting on our platform. This guide covers the basics of setting up and managing your Killing Floor server.</p>
<h3 style="color: #94a3b8; margin-top: 8px;">Original Wave-Based Horror Survival - Comprehensive Setup</h3>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Server Information</h3>
<ul style="color: #e5e7eb; line-height: 1.8;">
<li><strong style="color: #ffffff;">Default Port:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">7707</code></li>
<li><strong style="color: #ffffff;">Protocol:</strong> UDP</li>
<li><strong style="color: #ffffff;">Additional Info:</strong> Query port is 7708 UDP, Web admin 8075 TCP</li>
</ul>
<p style="color: #e5e7eb; margin-top: 12px; font-size: 0.95em;">
<em>Note: When running on a VPS or dedicated server, you can use the default port or configure a custom port in your server configuration file.</em>
</p>
<div style="background: #1e3a5f; padding: 20px; border-radius: 8px; margin: 20px 0; border: 1px solid #3b82f6;">
<h3 style="color: #ffffff; margin-top: 0;">📋 Quick Info</h3>
<table style="width: 100%; color: #e5e7eb;">
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Engine:</strong></td><td>Unreal Engine 2.5 (Modified)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Developer:</strong></td><td>Tripwire Interactive</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">App ID:</strong></td><td>215350</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Game Port:</strong></td><td>7707 UDP (default)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Query Port:</strong></td><td>7708 UDP (default)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Web Admin:</strong></td><td>8075 TCP (default)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Max Players:</strong></td><td>6 (standard), up to 32 with mods</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Game Modes:</strong></td><td>Story, Objective</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Perks:</strong></td><td>7 classes (Berserker, Commando, Support, Sharpshooter, etc.)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Platform:</strong></td><td>Windows, Linux</td></tr>
</table>
</div>
<h2>Getting Started</h2>
<p>To create a Killing Floor server:</p>
<ol>
<li>Navigate to the <a href="/serverlist.php">Game Servers</a> page</li>
<li>Find <strong>Killing Floor</strong> in the list</li>
<li>Select your preferred configuration (slots, duration, etc.)</li>
<li>Add to cart and complete checkout</li>
<li>Your server will be automatically provisioned within minutes</li>
</ol>
<h2>Server Configuration</h2>
<p>After your server is created, you can configure it through the control panel:</p>
<ul>
<li>Server settings and parameters</li>
<li>Player slots and limits</li>
<li>RCON/remote control access</li>
<li>FTP file access</li>
<h3 style="margin-top: 30px;">Navigation</h3>
<ul style="line-height: 2; font-size: 1.05em;">
<li><a href="#overview">Overview</a></li>
<li><a href="#ports">🔌 Ports & Firewall</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#configuration">⚙️ Configuration</a></li>
<li><a href="#webadmin">Web Admin Interface</a></li>
<li><a href="#gamemodes">Game Modes & Maps</a></li>
<li><a href="#perks">Perks & Difficulty</a></li>
<li><a href="#mods">Popular Mods & Mutators</a></li>
<li><a href="#startup">Startup Commands</a></li>
<li><a href="#troubleshooting">🔧 Troubleshooting</a></li>
<li><a href="#resources">Resources</a></li>
</ul>
<h2>Common Tasks</h2>
<h2 id="overview">Overview</h2>
<p><strong>Killing Floor</strong> is the original co-op horror FPS that started the franchise. Based on the Unreal Tournament 2004 mod, up to 6 players fight waves of zombie-like "specimens" in various UK locations. The game combines strategic shopping between waves with intense combat and horrific enemy designs.</p>
<h3>Starting Your Server</h3>
<p>Servers are automatically started after creation. You can stop/start your server from the control panel.</p>
<p>Originally a mod released in 2005, the standalone game launched in 2009 and built a massive following. Players select from 7 Perk classes, each with unique weapons and passive abilities that level up through gameplay. The final wave always features the terrifying Patriarch boss.</p>
<h3>Connecting to Your Server</h3>
<p>Use your server's IP address and port to connect from the game client.</p>
<h3>Managing Files</h3>
<p>Access your server files via FTP using the credentials provided in your control panel.</p>
<h2>Support</h2>
<p>If you need assistance with your Killing Floor server:</p>
<h3>Key Features</h3>
<ul>
<li>Check our <a href="/docs.php?action=view&doc=common-issues">Common Issues</a> guide</li>
<li>Contact support through your account dashboard</li>
<li>Visit the official Killing Floor community for game-specific help</li>
<li><strong>7 Perk Classes:</strong> Berserker, Commando, Support Specialist, Sharpshooter, Medic, Demolitionist, Firebug</li>
<li><strong>Wave-Based Survival:</strong> 4, 7, or 10 waves with boss finale</li>
<li><strong>The Patriarch:</strong> Iconic final boss with multiple attack phases</li>
<li><strong>Trader System:</strong> Buy weapons and armor between waves</li>
<li><strong>Persistent Leveling:</strong> Perks level from 0-6 through gameplay achievements</li>
<li><strong>Difficulty Levels:</strong> Beginner, Normal, Hard, Suicidal, Hell on Earth</li>
<li><strong>Mod Support:</strong> Extensive mutator and custom map community</li>
<li><strong>British Horror Theme:</strong> Dark humor and UK locations</li>
</ul>
<h2 id="ports">🔌 Ports & Firewall Configuration</h2>
<h3>Required Ports</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0; background: #0f172a; border-radius: 8px; overflow: hidden;">
<thead>
<tr style="background: #1e293b;">
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Port</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Protocol</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Purpose</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Required</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">7707</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">Game server (main connection)</td>
<td style="padding: 12px; color: #22c55e; font-weight: bold;"> Yes</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">7708</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">Query port (server browser)</td>
<td style="padding: 12px; color: #22c55e; font-weight: bold;"> Yes</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">8075</td>
<td style="padding: 12px;">
<span style="background: #3b82f6; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">TCP</span>
</td>
<td style="padding: 12px;">Web Admin interface</td>
<td style="padding: 12px; color: #94a3b8;">Optional (Recommended)</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">28852</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">Steam master server port</td>
<td style="padding: 12px; color: #94a3b8;">Optional</td>
</tr>
</tbody>
</table>
<div style="background: #1e3a5f; padding: 15px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<p style="color: #e5e7eb; margin: 0;"><strong>💡 Note:</strong> Port numbers are configurable. Defaults shown above. Multiple servers require unique port combinations (e.g., Game: 7707, 7717; Query: 7708, 7718).</p>
</div>
<h3>Firewall Configuration Examples</h3>
<h4>Ubuntu/Debian (UFW)</h4>
<pre><code># Allow KF game port
sudo ufw allow 7707/udp
# Allow query port (server browser)
sudo ufw allow 7708/udp
# Allow Web Admin (if using)
sudo ufw allow 8075/tcp
# Steam master server port (optional)
sudo ufw allow 28852/udp
# Enable firewall
sudo ufw enable
sudo ufw status
</code></pre>
<h4>CentOS/RHEL (FirewallD)</h4>
<pre><code># Add KF ports
sudo firewall-cmd --permanent --add-port=7707/udp
sudo firewall-cmd --permanent --add-port=7708/udp
sudo firewall-cmd --permanent --add-port=8075/tcp
sudo firewall-cmd --permanent --add-port=28852/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
</code></pre>
<h4>Windows Firewall (PowerShell)</h4>
<pre><code># Game server
New-NetFirewallRule -DisplayName "KF Game Port" -Direction Inbound -LocalPort 7707 -Protocol UDP -Action Allow
# Query port
New-NetFirewallRule -DisplayName "KF Query Port" -Direction Inbound -LocalPort 7708 -Protocol UDP -Action Allow
# Web Admin
New-NetFirewallRule -DisplayName "KF Web Admin" -Direction Inbound -LocalPort 8075 -Protocol TCP -Action Allow
</code></pre>
<h4>iptables (Advanced)</h4>
<pre><code># Allow KF ports
iptables -A INPUT -p udp --dport 7707 -j ACCEPT
iptables -A INPUT -p udp --dport 7708 -j ACCEPT
iptables -A INPUT -p tcp --dport 8075 -j ACCEPT
iptables -A INPUT -p udp --dport 28852 -j ACCEPT
# Save rules (Ubuntu/Debian)
netfilter-persistent save
# Save rules (CentOS/RHEL)
service iptables save
</code></pre>
<h2 id="installation">Installation</h2>
<h3>Prerequisites</h3>
<ul>
<li><strong>SteamCMD</strong> installed (<a href="https://developer.valvesoftware.com/wiki/SteamCMD" target="_blank">Installation Guide</a>)</li>
<li>Disk space: ~5 GB for full installation</li>
<li>RAM: 2GB minimum, 4GB recommended for 6 players</li>
<li>Open firewall ports (7707, 7708 UDP, 8075 TCP)</li>
<li>Linux: 32-bit libraries required (older Unreal Engine 2 game)</li>
</ul>
<h3>Linux Installation</h3>
<pre><code># Create server directory
mkdir -p ~/kf_server
cd ~/kf_server
# Install required 32-bit libraries (Ubuntu/Debian)
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32gcc1 libstdc++6:i386
# Download server files with SteamCMD
steamcmd +force_install_dir ~/kf_server +login anonymous +app_update 215350 validate +quit
# Note: App ID 215350 is for Killing Floor Dedicated Server
# Download size is approximately 4-5 GB
</code></pre>
<h3>Windows Installation</h3>
<pre><code># Download SteamCMD for Windows
# Extract to C:\steamcmd\
# Create server directory
mkdir C:\kf_server
# Run SteamCMD
C:\steamcmd\steamcmd.exe +force_install_dir C:\kf_server +login anonymous +app_update 215350 validate +quit
</code></pre>
<h2 id="configuration">⚙️ Configuration</h2>
<h3>Main Configuration Files</h3>
<p>KF server configuration is in <code>System/</code> directory:</p>
<ul>
<li><strong>KillingFloor.ini</strong> - Main server settings (game mode, difficulty, maps)</li>
<li><strong>Default.ini</strong> - Engine and network settings</li>
<li><strong>User.ini</strong> - Client-side settings (ignore for dedicated server)</li>
</ul>
<h3>KillingFloor.ini (Essential Settings)</h3>
<p>Edit <code>System/KillingFloor.ini</code>:</p>
<pre><code>[Engine.GameReplicationInfo]
ServerName=My Killing Floor Server
ShortName=KF Server
Region=0 ; 0=US East, 1=US West, 2=Europe, etc.
MessageOfTheDay=Welcome to our Killing Floor server!
[IpDrv.TcpNetDriver]
AllowDownloads=True
ConnectionTimeout=60.0
InitialConnectTimeout=120.0
AckTimeout=1.0
KeepAliveTime=0.2
MaxClientRate=20000
MaxInternetClientRate=10000
NetServerMaxTickRate=30
[Engine.GameEngine]
EnableDevTools=False
bStartWithMatineeCapture=False
[KFMod.KFGameType]
bChangeLevels=False
bUsePreStartTimer=True
PreStartTime=30
bKickVoteEnabled=True
KickVotePercentage=0.66
bDisableTeamCollision=True
StartingCash=250
MinRespawnCash=250
; Game Length (number of waves)
KFGameLength=2 ; 0=Short (4 waves), 1=Medium (7 waves), 2=Long (10 waves)
; Difficulty
GameDifficulty=2.0 ; 1.0=Beginner, 2.0=Normal, 4.0=Hard, 5.0=Suicidal, 7.0=Hell on Earth
; Enable/disable monsters
bEnableStaticSpecimens=False ; Static (non-moving) specimens
[Engine.AccessControl]
AdminPassword=YourAdminPassword
GamePassword= ; Leave empty for public server
[IpDrv.MasterServerUplink]
DoUplink=True
UplinkToGamespy=True
ServerBehindNAT=False ; Set to True if server is behind NAT/router
[WebAdmin.WebAdmin]
bEnabled=True
ListenPort=8075
</code></pre>
<h3>Difficulty Levels</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Difficulty</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Value</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Specimen Health</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Beginner</strong></td>
<td style="padding: 12px;"><code>1.0</code></td>
<td style="padding: 12px;">50%</td>
<td style="padding: 12px;">New players learning the game</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Normal</strong></td>
<td style="padding: 12px;"><code>2.0</code></td>
<td style="padding: 12px;">100%</td>
<td style="padding: 12px;">Standard difficulty</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Hard</strong></td>
<td style="padding: 12px;"><code>4.0</code></td>
<td style="padding: 12px;">150%</td>
<td style="padding: 12px;">Challenging gameplay</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Suicidal</strong></td>
<td style="padding: 12px;"><code>5.0</code></td>
<td style="padding: 12px;">200%</td>
<td style="padding: 12px;">Very difficult, experienced teams</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Hell on Earth</strong></td>
<td style="padding: 12px;"><code>7.0</code></td>
<td style="padding: 12px;">250%</td>
<td style="padding: 12px;">Extreme challenge, elite players</td>
</tr>
</tbody>
</table>
<h2 id="webadmin">Web Admin Interface</h2>
<h3>Enabling Web Admin</h3>
<p>Edit <code>System/KillingFloor.ini</code>:</p>
<pre><code>[WebAdmin.WebAdmin]
bEnabled=True
ListenPort=8075
</code></pre>
<h3>Accessing Web Admin</h3>
<p>Open browser to: <code>http://your-server-ip:8075</code></p>
<p>Default login: <strong>Admin</strong> with the password set in <code>AdminPassword</code> in KillingFloor.ini</p>
<h4>Web Admin Features</h4>
<ul>
<li><strong>Current Game:</strong> View players, kick/ban, change map</li>
<li><strong>Settings:</strong> Change difficulty, game length, server name</li>
<li><strong>Chat Log:</strong> Monitor in-game chat</li>
<li><strong>Access Policy:</strong> Manage bans and IP restrictions</li>
<li><strong>Console:</strong> Execute server commands</li>
</ul>
<h2 id="gamemodes">Game Modes & Maps</h2>
<h3>Game Modes</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Waves</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Story Mode</strong></td>
<td style="padding: 12px;">Standard wave-based survival with Patriarch finale</td>
<td style="padding: 12px;">4, 7, or 10 + Boss</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Objective Mode</strong></td>
<td style="padding: 12px;">Complete map-specific objectives while surviving waves</td>
<td style="padding: 12px;">Varies by map</td>
</tr>
</tbody>
</table>
<h3>Official Maps (Selection)</h3>
<ul>
<li><strong>KF-BioticsLab</strong> - Horzine research facility (original)</li>
<li><strong>KF-Farm</strong> - Creepy countryside farm</li>
<li><strong>KF-Manor</strong> - Gothic mansion</li>
<li><strong>KF-WestLondon</strong> - London streets and Underground</li>
<li><strong>KF-Offices</strong> - Office building</li>
<li><strong>KF-Hospital</strong> - Abandoned hospital</li>
<li><strong>KF-Wyre</strong> - Coastal town</li>
<li><strong>KF-Bedlam</strong> - Asylum (part of Twisted Christmas)</li>
</ul>
<h3>Map Rotation Configuration</h3>
<p>Edit <code>System/KillingFloor.ini</code>:</p>
<pre><code>[KFMod.KFGameType]
Maps=KF-BioticsLab
Maps=KF-Farm
Maps=KF-Manor
Maps=KF-WestLondon
Maps=KF-Offices
; Enable map voting
bUseMapVote=True
MapVotePercentage=0.50
</code></pre>
<h2 id="perks">Perks & Classes</h2>
<h3>The 7 Perks</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Perk</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Role</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Primary Weapons</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Level Cap</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Berserker</strong></td>
<td style="padding: 12px;">Tank/Melee DPS</td>
<td style="padding: 12px;">Katana, Claymore, Fire Axe</td>
<td style="padding: 12px;">6</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Commando</strong></td>
<td style="padding: 12px;">Trash Cleaner</td>
<td style="padding: 12px;">SCAR, Bullpup, AK-47</td>
<td style="padding: 12px;">6</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Support Specialist</strong></td>
<td style="padding: 12px;">Shotgun Expert</td>
<td style="padding: 12px;">AA12, Hunting Shotgun</td>
<td style="padding: 12px;">6</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Sharpshooter</strong></td>
<td style="padding: 12px;">Precision Sniper</td>
<td style="padding: 12px;">Crossbow, M14 EBR, Lever Action</td>
<td style="padding: 12px;">6</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Medic</strong></td>
<td style="padding: 12px;">Healer/Support</td>
<td style="padding: 12px;">MP7M, MP5M</td>
<td style="padding: 12px;">6</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Demolitionist</strong></td>
<td style="padding: 12px;">Explosive Specialist</td>
<td style="padding: 12px;">M79, M32, LAW, Pipe Bombs</td>
<td style="padding: 12px;">6</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Firebug</strong></td>
<td style="padding: 12px;">Area Denial/DoT</td>
<td style="padding: 12px;">Flamethrower, MAC-10</td>
<td style="padding: 12px;">6</td>
</tr>
</tbody>
</table>
<h3>Perk Leveling</h3>
<p>Perks level from 0 to 6 based on completing requirements:</p>
<ul>
<li><strong>Level 0:</strong> Starting bonuses (small damage/discount)</li>
<li><strong>Level 6:</strong> Maximum bonuses (significant damage, discount, special abilities)</li>
<li>Leveling requires kills with perk weapons, healing (Medic), welding (Support), etc.</li>
<li>Progress persists across servers using Steam ID</li>
</ul>
<h2 id="mods">Popular Mods & Mutators</h2>
<h3>Installing Mutators</h3>
<p>Place mutator files in <code>System/</code> directory, then add to <code>KillingFloor.ini</code>:</p>
<pre><code>[Engine.GameEngine]
ServerActors=MyMutator.MyMutatorClass
ServerPackages=MyMutator
</code></pre>
<h3>Popular Mutators</h3>
<ul>
<li><strong>Zed Time Extension:</strong> Extends slow-motion "Zed Time" duration</li>
<li><strong>Golden Weapons:</strong> Adds powerful golden variants of standard weapons</li>
<li><strong>KF Classic Characters:</strong> Original character models from the mod</li>
<li><strong>Siren Scream Multiplier:</strong> Modifies Siren difficulty</li>
<li><strong>Server Perks:</strong> Custom perk systems with additional bonuses</li>
<li><strong>Custom Trader Inventory:</strong> Modified weapon shops</li>
<li><strong>Faked Players:</strong> Adjusts difficulty scaling for smaller teams</li>
</ul>
<h3>WhiteList Mode (Custom Content)</h3>
<p>Allow custom maps and mutators:</p>
<pre><code>[IpDrv.TcpNetDriver]
AllowDownloads=True
[Engine.GameEngine]
CacheSizeMegs=32
</code></pre>
<h2 id="startup">Startup Commands</h2>
<h3>Linux</h3>
<pre><code>#!/bin/bash
# start_kf.sh
cd ~/kf_server/System
./ucc-bin server KF-BioticsLab.rom?game=KFMod.KFGameType?VACSecured=true \
-nohomedir \
-ini=KillingFloor.ini \
-port=7707 \
-queryport=7708
</code></pre>
<h3>Windows</h3>
<pre><code>@echo off
REM start_kf.bat
cd C:\kf_server\System
KillingFloor.exe server KF-BioticsLab.rom?game=KFMod.KFGameType?VACSecured=true ^
-ini=KillingFloor.ini ^
-port=7707 ^
-queryport=7708
</code></pre>
<h3>Startup Parameters</h3>
<ul>
<li><code>server MapName.rom</code> - Start with specific map</li>
<li><code>?game=KFMod.KFGameType</code> - Specify game mode</li>
<li><code>?VACSecured=true</code> - Enable VAC anti-cheat</li>
<li><code>-port=7707</code> - Game port</li>
<li><code>-queryport=7708</code> - Server browser port</li>
<li><code>-nohomedir</code> - (Linux) Don't use home directory for configs</li>
<li><code>-ini=KillingFloor.ini</code> - Specify config file</li>
</ul>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not in Browser</h3>
<pre><code># Check ports are open
netstat -an | grep 7707
netstat -an | grep 7708
# Verify UplinkToGamespy in KillingFloor.ini
[IpDrv.MasterServerUplink]
DoUplink=True
UplinkToGamespy=True
# Wait 5-10 minutes for Steam master server registration
</code></pre>
<h3>Web Admin Won't Load</h3>
<pre><code># Verify bEnabled in KillingFloor.ini
[WebAdmin.WebAdmin]
bEnabled=True
ListenPort=8075
# Check firewall allows TCP 8075
# Try: http://127.0.0.1:8075 locally first
</code></pre>
<h3>Performance Issues</h3>
<ul>
<li>Reduce <code>MaxPlayers</code> in KillingFloor.ini</li>
<li>Lower <code>NetServerMaxTickRate=20</code></li>
<li>Disable complex mutators</li>
<li>Use <code>-benchmark</code> flag to test server performance</li>
</ul>
<h3>Custom Maps Not Downloading</h3>
<pre><code># Enable downloads in KillingFloor.ini
[IpDrv.TcpNetDriver]
AllowDownloads=True
ConnectionTimeout=60.0
# Set up redirect (FastDL)
DownloadManagers=IpDrv.HTTPDownload
[IpDrv.HTTPDownload]
RedirectToURL=http://yourdomain.com/kf/
</code></pre>
<h3>Perk Progress Not Saving</h3>
<ul>
<li>Ensure server connects to Steam (<code>VACSecured=true</code>)</li>
<li>Players must be logged into Steam</li>
<li>Check <code>System/KFStatsAndAchievements.ini</code> for errors</li>
<li>Perk data stored server-side via Steam ID</li>
</ul>
<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>
<h3 style="color: #ffffff; margin-top: 0;"><i class="fas fa-lightbulb" style="color: #fbbf24; margin-right: 8px;"></i>Pro Tips</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Always keep your server updated to the latest version</li>
<li>Make regular backups of your server configuration</li>
<li>Review and follow the game's End User License Agreement (EULA)</li>
<li><strong>Web Admin Essential:</strong> Much easier than console commands</li>
<li><strong>Balanced Perks:</strong> Encourage teams to use diverse perk combinations</li>
<li><strong>Medic Critical:</strong> At least one Medic greatly improves survival rates</li>
<li><strong>Classic Maps:</strong> BioticsLab, Farm, and WestLondon are community favorites</li>
<li><strong>Suicidal+ Only:</strong> Most active players prefer Suicidal and Hell on Earth</li>
<li><strong>Mutators:</strong> Use sparingly - too many can cause instability</li>
<li><strong>VAC Secured:</strong> Always enable for legitimate perk progression</li>
<li><strong>Custom Content:</strong> Active custom map community, but test before adding to rotation</li>
</ul>
</div>
</div>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://wiki.killingfloor.com/index.php?title=Main_Page" target="_blank">Killing Floor Wiki</a></li>
<li><a href="https://forums.tripwireinteractive.com/index.php?forums/killingfloor.3/" target="_blank">Tripwire Interactive Official Forums</a></li>
<li><a href="https://steamcommunity.com/app/1250/discussions/" target="_blank">Steam Community Discussions</a></li>
<li><a href="https://github.com/InsultingPros/KFStatsX" target="_blank">KFStatsX - Server Statistics</a></li>
<li><a href="http://kf-board.com/" target="_blank">KF-Board - Custom Content Repository</a></li>
</ul>

View file

@ -1,7 +1,7 @@
{
"name": "Killing Floor",
"description": "Setup and configuration guide for Killing Floor game servers",
"description": "Comprehensive guide for Killing Floor dedicated servers with Web Admin, all 7 perks (level 0-6), difficulty levels (Beginner to Hell on Earth), mutator support, and wave-based co-op survival hosting on Unreal Engine 2.5",
"category": "game",
"order": 25,
"complete": false
"complete": true
}

View file

@ -3,66 +3,590 @@
* Killing Floor 2 Server Documentation
*/
?>
<h1>Killing Floor 2 Server Guide</h1>
<h1>📚 Killing Floor 2 Server Guide</h1>
<h2>Overview</h2>
<p><strong>Killing Floor 2</strong> is available for hosting on our platform. This guide covers the basics of setting up and managing your Killing Floor 2 server.</p>
<h3 style="color: #94a3b8; margin-top: 8px;">Wave-Based Co-Op Survival - Comprehensive Setup</h3>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Server Information</h3>
<ul style="color: #e5e7eb; line-height: 1.8;">
<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;">Additional Info:</strong> Query port is 27016 UDP, Web Admin 8080 TCP</li>
</ul>
<p style="color: #e5e7eb; margin-top: 12px; font-size: 0.95em;">
<em>Note: When running on a VPS or dedicated server, you can use the default port or configure a custom port in your server configuration file.</em>
</p>
<div style="background: #1e3a5f; padding: 20px; border-radius: 8px; margin: 20px 0; border: 1px solid #3b82f6;">
<h3 style="color: #ffffff; margin-top: 0;">📋 Quick Info</h3>
<table style="width: 100%; color: #e5e7eb;">
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Engine:</strong></td><td>Unreal Engine 3 (Modified)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Developer:</strong></td><td>Tripwire Interactive</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">App ID:</strong></td><td>232130</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Game Port:</strong></td><td>7777 UDP (default)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Query Port:</strong></td><td>27015 UDP (default)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Web Admin:</strong></td><td>8080 TCP (default)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Max Players:</strong></td><td>6 (standard), up to 32 with mods</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Game Modes:</strong></td><td>Survival, Endless, Weekly Outbreak, Versus Survival</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Perks:</strong></td><td>10 unique classes (Berserker, Commando, Medic, etc.)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Platform:</strong></td><td>Windows, Linux</td></tr>
</table>
</div>
<h2>Getting Started</h2>
<p>To create a Killing Floor 2 server:</p>
<ol>
<li>Navigate to the <a href="/serverlist.php">Game Servers</a> page</li>
<li>Find <strong>Killing Floor 2</strong> in the list</li>
<li>Select your preferred configuration (slots, duration, etc.)</li>
<li>Add to cart and complete checkout</li>
<li>Your server will be automatically provisioned within minutes</li>
</ol>
<h2>Server Configuration</h2>
<p>After your server is created, you can configure it through the control panel:</p>
<ul>
<li>Server settings and parameters</li>
<li>Player slots and limits</li>
<li>RCON/remote control access</li>
<li>FTP file access</li>
<h3 style="margin-top: 30px;">Navigation</h3>
<ul style="line-height: 2; font-size: 1.05em;">
<li><a href="#overview">Overview</a></li>
<li><a href="#ports">🔌 Ports & Firewall</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#configuration">⚙️ Configuration</a></li>
<li><a href="#webadmin">Web Admin Interface</a></li>
<li><a href="#gamemodes">Game Modes & Maps</a></li>
<li><a href="#perks">Perks & Difficulty</a></li>
<li><a href="#startup">Startup Commands</a></li>
<li><a href="#troubleshooting">🔧 Troubleshooting</a></li>
<li><a href="#resources">Resources</a></li>
</ul>
<h2>Common Tasks</h2>
<h2 id="overview">Overview</h2>
<p><strong>Killing Floor 2</strong> is a brutal wave-based co-op FPS where teams of up to 6 players fight through hordes of genetically engineered monsters (Zeds) developed by the Horzine Biotech Corporation. Each player selects a unique Perk class with specialized weapons and abilities.</p>
<h3>Starting Your Server</h3>
<p>Servers are automatically started after creation. You can stop/start your server from the control panel.</p>
<p>The game features a sophisticated economy system where players earn "Dosh" during waves to buy weapons, ammo, and armor. Between waves, players strategically shop at Trader Pods scattered across maps. The action culminates in an epic boss battle after the final wave.</p>
<h3>Connecting to Your Server</h3>
<p>Use your server's IP address and port to connect from the game client.</p>
<h3>Managing Files</h3>
<p>Access your server files via FTP using the credentials provided in your control panel.</p>
<h2>Support</h2>
<p>If you need assistance with your Killing Floor 2 server:</p>
<h3>Key Features</h3>
<ul>
<li>Check our <a href="/docs.php?action=view&doc=common-issues">Common Issues</a> guide</li>
<li>Contact support through your account dashboard</li>
<li>Visit the official Killing Floor 2 community for game-specific help</li>
<li><strong>10 Perk Classes:</strong> Berserker, Commando, Medic, Demolitionist, Firebug, Gunslinger, Sharpshooter, Support, SWAT, Survivalist</li>
<li><strong>Wave-Based Survival:</strong> 4, 7, or 10 waves with scaling difficulty</li>
<li><strong>Boss Fights:</strong> Multiple unique bosses (Hans Volter, Patriarch, King Fleshpound, etc.)</li>
<li><strong>MEAT System:</strong> Realistic gore and dismemberment system</li>
<li><strong>Weapon Trading:</strong> Buy, upgrade, and share weapons with teammates</li>
<li><strong>Difficulty Levels:</strong> Normal, Hard, Suicidal, Hell on Earth</li>
<li><strong>Weekly Outbreaks:</strong> Special modifiers and challenges rotate weekly</li>
</ul>
<h2 id="ports">🔌 Ports & Firewall Configuration</h2>
<h3>Required Ports</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0; background: #0f172a; border-radius: 8px; overflow: hidden;">
<thead>
<tr style="background: #1e293b;">
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Port</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Protocol</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Purpose</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Required</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">7777</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">Game server (main connection)</td>
<td style="padding: 12px; color: #22c55e; font-weight: bold;"> Yes</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">27015</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">Query port (server browser)</td>
<td style="padding: 12px; color: #22c55e; font-weight: bold;"> Yes</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">8080</td>
<td style="padding: 12px;">
<span style="background: #3b82f6; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">TCP</span>
</td>
<td style="padding: 12px;">Web Admin interface</td>
<td style="padding: 12px; color: #94a3b8;">Optional (Recommended)</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">20560</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">Steam server list port</td>
<td style="padding: 12px; color: #94a3b8;">Optional</td>
</tr>
</tbody>
</table>
<div style="background: #1e3a5f; padding: 15px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<p style="color: #e5e7eb; margin: 0;"><strong>💡 Note:</strong> Port numbers are configurable. Defaults shown above. Multiple servers require unique port combinations (e.g., Game: 7777, 7778; Query: 27015, 27016).</p>
</div>
<h3>Firewall Configuration Examples</h3>
<h4>Ubuntu/Debian (UFW)</h4>
<pre><code># Allow KF2 game port
sudo ufw allow 7777/udp
# Allow query port (server browser)
sudo ufw allow 27015/udp
# Allow Web Admin (if using)
sudo ufw allow 8080/tcp
# Steam port (optional)
sudo ufw allow 20560/udp
# Enable firewall
sudo ufw enable
sudo ufw status
</code></pre>
<h4>CentOS/RHEL (FirewallD)</h4>
<pre><code># Add KF2 ports
sudo firewall-cmd --permanent --add-port=7777/udp
sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=20560/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
</code></pre>
<h4>Windows Firewall (PowerShell)</h4>
<pre><code># Game server
New-NetFirewallRule -DisplayName "KF2 Game Port" -Direction Inbound -LocalPort 7777 -Protocol UDP -Action Allow
# Query port
New-NetFirewallRule -DisplayName "KF2 Query Port" -Direction Inbound -LocalPort 27015 -Protocol UDP -Action Allow
# Web Admin
New-NetFirewallRule -DisplayName "KF2 Web Admin" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow
</code></pre>
<h4>iptables (Advanced)</h4>
<pre><code># Allow KF2 ports
iptables -A INPUT -p udp --dport 7777 -j ACCEPT
iptables -A INPUT -p udp --dport 27015 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 20560 -j ACCEPT
# Save rules (Ubuntu/Debian)
netfilter-persistent save
# Save rules (CentOS/RHEL)
service iptables save
</code></pre>
<h2 id="installation">Installation</h2>
<h3>Prerequisites</h3>
<ul>
<li><strong>SteamCMD</strong> installed (<a href="https://developer.valvesoftware.com/wiki/SteamCMD" target="_blank">Installation Guide</a>)</li>
<li>Disk space: ~30 GB for full installation</li>
<li>RAM: 4GB minimum, 8GB recommended for 6 players</li>
<li>Open firewall ports (7777, 27015, 8080 TCP)</li>
<li>Linux: 64-bit system with required libraries</li>
</ul>
<h3>Linux Installation</h3>
<pre><code># Create server directory
mkdir -p ~/kf2_server
cd ~/kf2_server
# Install required libraries (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install libstdc++6:i386 lib32gcc1 libcurl4-gnutls-dev:i386
# Download server files with SteamCMD
steamcmd +force_install_dir ~/kf2_server +login anonymous +app_update 232130 validate +quit
# Note: App ID 232130 is for Killing Floor 2 Dedicated Server
# Download size is approximately 25-30 GB
</code></pre>
<h3>Windows Installation</h3>
<pre><code># Download SteamCMD for Windows
# Extract to C:\steamcmd\
# Create server directory
mkdir C:\kf2_server
# Run SteamCMD
C:\steamcmd\steamcmd.exe +force_install_dir C:\kf2_server +login anonymous +app_update 232130 validate +quit
</code></pre>
<h2 id="configuration">⚙️ Configuration</h2>
<h3>Main Configuration Files</h3>
<p>KF2 server configuration is split across multiple .ini files in <code>KFGame/Config/</code>:</p>
<ul>
<li><strong>PCServer-KFGame.ini</strong> - Main server settings (game mode, difficulty, maps)</li>
<li><strong>PCServer-KFEngine.ini</strong> - Engine settings (ports, web admin, network)</li>
<li><strong>KFWeb.ini</strong> - Web Admin configuration</li>
</ul>
<h3>PCServer-KFEngine.ini (Essential Settings)</h3>
<p>Edit <code>KFGame/Config/PCServer-KFEngine.ini</code>:</p>
<pre><code>[Engine.GameReplicationInfo]
ServerName=My Killing Floor 2 Server
ShortName=KF2
[IpDrv.TcpNetDriver]
AllowDownloads=True
ConnectionTimeout=60.0
InitialConnectTimeout=120.0
MaxClientRate=20000
MaxInternetClientRate=10000
NetServerMaxTickRate=30
LanServerMaxTickRate=35
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems= # Add Workshop item IDs here
[IpDrv.TcpNetDriver]
DownloadManagers=IpDrv.HTTPDownload
[IpDrv.HTTPDownload]
# Set up FastDL (optional)
# RedirectToURL=http://yourfastdl.com/kf2/
[Engine.AccessControl]
AdminPassword=YourAdminPassword
GamePassword= # Leave empty for public server
[SystemSettings]
ResX=800
ResY=600
</code></pre>
<h3>PCServer-KFGame.ini (Game Settings)</h3>
<p>Edit <code>KFGame/Config/PCServer-KFGame.ini</code>:</p>
<pre><code>[KFGame.KFGameInfo]
ServerName=My KF2 Server
GameDifficulty=1 # 0=Normal, 1=Hard, 2=Suicidal, 3=Hell on Earth
GameLength=1 # 0=4 waves, 1=7 waves, 2=10 waves
bDisableMapVote=False
MapVoteDuration=30
[Engine.Game]
MaxPlayers=6
MaxSpectators=2
[KFGame.KFGameReplicationInfo]
bAllowGrenade=True
[SystemSettings]
bAllowBulletHitDecals=True
bAllowBloodDecals=True
# Map Rotation
[KFGame.KFMapSummary]
MapAssociation=(Name="KF-BurningParis",bUsesAuth=False)
MapAssociation=(Name="KF-BlackForest",bUsesAuth=False)
MapAssociation=(Name="KF-ContainmentStation",bUsesAuth=False)
# Add more maps as needed
[KFGame.KFGameInfo_Survival]
GameLengthOptions=(Name="Short", Weight=0)
GameLengthOptions=(Name="Medium", Weight=1)
GameLengthOptions=(Name="Long", Weight=2)
</code></pre>
<h3>Difficulty Levels</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Difficulty</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Value</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Zed Health</th>
<th style="padding: #12px; text-align: left; color: #ffffff;">Recommended For</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Normal</strong></td>
<td style="padding: 12px;"><code>0</code></td>
<td style="padding: 12px;">100%</td>
<td style="padding: 12px;">New players, casual play</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Hard</strong></td>
<td style="padding: 12px;"><code>1</code></td>
<td style="padding: 12px;">135%</td>
<td style="padding: 12px;">Intermediate players</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Suicidal</strong></td>
<td style="padding: 12px;"><code>2</code></td>
<td style="padding: 12px;">185%</td>
<td style="padding: 12px;">Experienced teams</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Hell on Earth</strong></td>
<td style="padding: 12px;"><code>3</code></td>
<td style="padding: 12px;">255%</td>
<td style="padding: 12px;">Elite players, competitive</td>
</tr>
</tbody>
</table>
<h2 id="webadmin">Web Admin Interface</h2>
<h3>Enabling Web Admin</h3>
<p>Edit <code>KFGame/Config/KFWeb.ini</code>:</p>
<pre><code>[IpDrv.WebServer]
bEnabled=True
ListenPort=8080
[WebAdmin.WebAdmin]
bEnabled=True
AuthenticationClass=WebAdmin.MultiWebAdminAuth
[WebAdmin.Chatlog]
Filename=../Logs/chat.log
bIncludeTimeStamp=True
</code></pre>
<h3>Creating Admin Account</h3>
<pre><code># First admin created automatically at first Web Admin access
# Or manually edit: KFGame/Config/KFWebAdmin.ini
[WebAdmin.WebAdminSettings]
AdminName=admin
Password=yourpassword # Will be hashed on first use
</code></pre>
<h3>Accessing Web Admin</h3>
<p>Open browser to: <code>http://your-server-ip:8080</code></p>
<h4>Web Admin Features</h4>
<ul>
<li><strong>Dashboard:</strong> Server status, player count, current map</li>
<li><strong>Current Game:</strong> Live player list, kick/ban controls</li>
<li><strong>Settings:</strong> Change difficulty, game length, maps</li>
<li><strong>Maps:</strong> Manage map rotation and voting</li>
<li><strong>Access Policy:</strong> Ban management and IP whitelist</li>
<li><strong>Console:</strong> Execute server commands remotely</li>
</ul>
<h2 id="gamemodes">Game Modes & Maps</h2>
<h3>Game Modes</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Waves</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Survival</strong></td>
<td style="padding: 12px;">Standard wave-based mode with boss at the end</td>
<td style="padding: 12px;">4, 7, or 10 + Boss</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Endless</strong></td>
<td style="padding: 12px;">Continuous waves with periodic boss fights</td>
<td style="padding: 12px;">Infinite</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Weekly Outbreak</strong></td>
<td style="padding: 12px;">Rotating special modifiers (Poundemonium, Bobble Zed, etc.)</td>
<td style="padding: 12px;">4 waves</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Versus Survival</strong></td>
<td style="padding: 12px;">PvP mode - players control Zeds vs Survivors</td>
<td style="padding: 12px;">4 rounds</td>
</tr>
</tbody>
</table>
<h3>Official Maps (Selection)</h3>
<ul>
<li><strong>KF-BurningParis</strong> - Burning streets of Paris</li>
<li><strong>KF-BlackForest</strong> - German countryside castle</li>
<li><strong>KF-BioticsLab</strong> - Horzine research facility</li>
<li><strong>KF-Outpost</strong> - Desert military outpost</li>
<li><strong>KF-ContainmentStation</strong> - Space station</li>
<li><strong>KF-InfernalRealm</strong> - Halloween-themed hellscape</li>
<li><strong>KF-Nightmare</strong> - Twisted carnival</li>
<li><strong>KF-Prison</strong> - Abandoned prison facility</li>
</ul>
<h3>Workshop Content</h3>
<p>Subscribe to Workshop items and add to <code>PCServer-KFEngine.ini</code>:</p>
<pre><code>[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems=123456789 # Workshop item ID
ServerSubscribedWorkshopItems=987654321 # Add multiple lines for multiple items
</code></pre>
<h2 id="perks">Perks & Classes</h2>
<h3>The 10 Perks</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Perk</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Role</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Primary Weapons</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Berserker</strong></td>
<td style="padding: 12px;">Tank/Melee DPS</td>
<td style="padding: 12px;">Eviscerator, Pulverizer, Katana</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Commando</strong></td>
<td style="padding: 12px;">Trash Killer</td>
<td style="padding: 12px;">SCAR, AK-12, M16 M203</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Medic</strong></td>
<td style="padding: 12px;">Healer/Support</td>
<td style="padding: 12px;">Medic Assault Rifle, HMTech-501</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Demolitionist</strong></td>
<td style="padding: 12px;">Explosive Specialist</td>
<td style="padding: 12px;">RPG-7, M79, C4</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Firebug</strong></td>
<td style="padding: 12px;">Area Denial/DoT</td>
<td style="padding: 12px;">Flamethrower, Microwave Gun</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Gunslinger</strong></td>
<td style="padding: 12px;">Precision DPS</td>
<td style="padding: 12px;">Dual Magnums, AF2011-A1</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Sharpshooter</strong></td>
<td style="padding: 12px;">Long-range Sniper</td>
<td style="padding: 12px;">M14 EBR, Railgun, Crossbow</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Support</strong></td>
<td style="padding: 12px;">Ammo/Armor Specialist</td>
<td style="padding: 12px;">AA-12, Doomstick</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>SWAT</strong></td>
<td style="padding: 12px;">Close-range Tank</td>
<td style="padding: 12px;">Kriss, P90, MP7</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Survivalist</strong></td>
<td style="padding: 12px;">Flexible/Hybrid</td>
<td style="padding: 12px;">Any weapon type</td>
</tr>
</tbody>
</table>
<h2 id="startup">Startup Commands</h2>
<h3>Linux</h3>
<pre><code>#!/bin/bash
# start_kf2.sh
cd ~/kf2_server/Binaries/Win64
./KFGameSteamServer.bin.x86_64 \
KF-BurningParis \
?Game=KFGameContent.KFGameInfo_Survival \
?Difficulty=1 \
?GameLength=1 \
?MaxPlayers=6 \
-Port=7777 \
-QueryPort=27015 \
-WebAdminPort=8080
</code></pre>
<h3>Windows</h3>
<pre><code>@echo off
REM start_kf2.bat
cd C:\kf2_server\Binaries\Win64
KFServer.exe KF-BurningParis ^
?Game=KFGameContent.KFGameInfo_Survival ^
?Difficulty=1 ^
?GameLength=1 ^
?MaxPlayers=6 ^
-Port=7777 ^
-QueryPort=27015 ^
-WebAdminPort=8080
</code></pre>
<h3>Startup Parameters</h3>
<ul>
<li><code>KF-MapName</code> - Starting map</li>
<li><code>?Game=</code> - Game mode class path</li>
<li><code>?Difficulty=</code> - 0-3 (Normal, Hard, Suicidal, Hell on Earth)</li>
<li><code>?GameLength=</code> - 0-2 (Short 4 waves, Medium 7, Long 10)</li>
<li><code>?MaxPlayers=6</code> - Maximum players</li>
<li><code>-Port=7777</code> - Game port</li>
<li><code>-QueryPort=27015</code> - Server browser port</li>
<li><code>-WebAdminPort=8080</code> - Web Admin port</li>
</ul>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not in Browser</h3>
<pre><code># Check ports are open
netstat -an | grep 7777
netstat -an | grep 27015
# Verify GamePassword is empty in PCServer-KFEngine.ini
[Engine.AccessControl]
GamePassword=
# Restart server and wait 5-10 minutes for Steam registration
</code></pre>
<h3>Web Admin Won't Load</h3>
<pre><code># Verify KFWeb.ini settings
[IpDrv.WebServer]
bEnabled=True
ListenPort=8080
# Check firewall allows TCP 8080
# Access via: http://server-ip:8080
</code></pre>
<h3>Performance Issues</h3>
<ul>
<li>Reduce <code>MaxPlayers</code> to 4 or lower</li>
<li>Set <code>NetServerMaxTickRate=20</code> in PCServer-KFEngine.ini</li>
<li>Lower resolution: <code>ResX=640</code>, <code>ResY=480</code></li>
<li>Disable blood decals: <code>bAllowBloodDecals=False</code></li>
</ul>
<h3>Workshop Content Not Downloading</h3>
<pre><code># Verify Workshop item IDs in PCServer-KFEngine.ini
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems=123456789
# Check KFGame/Cache/ for downloaded content
# Restart server after adding new Workshop items
</code></pre>
<h3>Players Can't Join</h3>
<ul>
<li>Check firewall allows UDP 7777 and 27015</li>
<li>Verify <code>MaxPlayers</code> setting</li>
<li>Ensure server isn't password-protected unless intended</li>
<li>Check server logs in <code>KFGame/Logs/</code></li>
</ul>
<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>
<h3 style="color: #ffffff; margin-top: 0;"><i class="fas fa-lightbulb" style="color: #fbbf24; margin-right: 8px;"></i>Pro Tips</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Always keep your server updated to the latest version</li>
<li>Make regular backups of your server configuration</li>
<li>Review and follow the game's End User License Agreement (EULA)</li>
<li><strong>Web Admin:</strong> Essential for remote management - set it up first</li>
<li><strong>Balanced Teams:</strong> 6 players is optimal for difficulty scaling</li>
<li><strong>Perk Diversity:</strong> Encourage varied perk selection for team synergy</li>
<li><strong>Workshop Maps:</strong> Keep official maps for 95% uptime, custom for variety</li>
<li><strong>Weekly Outbreaks:</strong> Great for attracting players with fresh challenges</li>
<li><strong>Suicidal+:</strong> Most active community plays Suicidal and Hell on Earth</li>
<li><strong>Boss Selection:</strong> Can be configured to specific bosses or random</li>
<li><strong>FastDL:</strong> Highly recommended for custom maps to reduce join times</li>
</ul>
</div>
</div>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://wiki.killingfloor2.com/index.php?title=Dedicated_Server_(Killing_Floor_2)" target="_blank">Official KF2 Dedicated Server Wiki</a></li>
<li><a href="https://steamcommunity.com/app/232090/discussions/1/" target="_blank">KF2 Server Hosting Forum</a></li>
<li><a href="https://steamcommunity.com/app/232090/workshop/" target="_blank">KF2 Steam Workshop</a></li>
<li><a href="https://forums.tripwireinteractive.com/index.php?forums/kf2-server-hosting.125/" target="_blank">Tripwire Interactive Server Hosting Forum</a></li>
<li><a href="https://github.com/GenZmeY/KF2-SRV" target="_blank">KF2-SRV - Server Management Scripts</a></li>
</ul>

View file

@ -1,7 +1,7 @@
{
"name": "Killing Floor 2",
"description": "Setup and configuration guide for Killing Floor 2 game servers",
"description": "Comprehensive guide for KF2 dedicated servers with Web Admin, all 10 perks, difficulty levels, Workshop content, and wave-based co-op survival hosting",
"category": "game",
"order": 26,
"complete": false
"order": 25,
"complete": true
}

View file

@ -3,66 +3,510 @@
* Left 4 Dead Server Documentation
*/
?>
<h1>Left 4 Dead Server Guide</h1>
<h1>📚 Left 4 Dead Server Guide</h1>
<h2>Overview</h2>
<p><strong>Left 4 Dead</strong> is available for hosting on our platform. This guide covers the basics of setting up and managing your Left 4 Dead server.</p>
<h3 style="color: #94a3b8; margin-top: 8px;">Original Co-Op Zombie Survival - Comprehensive Setup</h3>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Server Information</h3>
<ul style="color: #e5e7eb; line-height: 1.8;">
<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;">Additional Info:</strong> Query port also uses 27015 UDP</li>
</ul>
<p style="color: #e5e7eb; margin-top: 12px; font-size: 0.95em;">
<em>Note: When running on a VPS or dedicated server, you can use the default port or configure a custom port in your server configuration file.</em>
</p>
<div style="background: #1e3a5f; padding: 20px; border-radius: 8px; margin: 20px 0; border: 1px solid #3b82f6;">
<h3 style="color: #ffffff; margin-top: 0;">📋 Quick Info</h3>
<table style="width: 100%; color: #e5e7eb;">
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Engine:</strong></td><td>Source Engine</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Developer:</strong></td><td>Valve Corporation</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">App ID:</strong></td><td>222840</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Default Port:</strong></td><td>27015 UDP/TCP</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Max Players:</strong></td><td>8 default (4v4 Versus), up to 32 with mods</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Difficulty:</strong></td><td>Easy, Normal, Advanced, Expert</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Game Modes:</strong></td><td>Campaign, Versus, Survival</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">RCON:</strong></td><td>Supported (same port as game)</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Platform:</strong></td><td>Windows, Linux</td></tr>
<tr><td style="padding: 8px 0;"><strong style="color: #a5b4fc;">Control:</strong></td><td>RCON, SourceMod, Console</td></tr>
</table>
</div>
<h2>Getting Started</h2>
<p>To create a Left 4 Dead server:</p>
<ol>
<li>Navigate to the <a href="/serverlist.php">Game Servers</a> page</li>
<li>Find <strong>Left 4 Dead</strong> in the list</li>
<li>Select your preferred configuration (slots, duration, etc.)</li>
<li>Add to cart and complete checkout</li>
<li>Your server will be automatically provisioned within minutes</li>
</ol>
<h2>Server Configuration</h2>
<p>After your server is created, you can configure it through the control panel:</p>
<ul>
<li>Server settings and parameters</li>
<li>Player slots and limits</li>
<li>RCON/remote control access</li>
<li>FTP file access</li>
<h3 style="margin-top: 30px;">Navigation</h3>
<ul style="line-height: 2; font-size: 1.05em;">
<li><a href="#overview">Overview</a></li>
<li><a href="#ports">🔌 Ports & Firewall</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#configuration">⚙️ Configuration</a></li>
<li><a href="#gamemodes">Game Modes & Campaigns</a></li>
<li><a href="#sourcemod">SourceMod & Plugins</a></li>
<li><a href="#startup">Startup Commands</a></li>
<li><a href="#troubleshooting">🔧 Troubleshooting</a></li>
<li><a href="#resources">Resources</a></li>
</ul>
<h2>Common Tasks</h2>
<h2 id="overview">Overview</h2>
<p><strong>Left 4 Dead</strong> is Valve's original co-operative first-person shooter where four "Survivors" must fight through hordes of infected zombies to reach safety. Released in 2008, L4D pioneered the co-op zombie survival genre and established the foundation for its sequel.</p>
<h3>Starting Your Server</h3>
<p>Servers are automatically started after creation. You can stop/start your server from the control panel.</p>
<p>The game features the innovative "AI Director" system that dynamically adjusts gameplay difficulty, pacing, and item placement based on player performance. Each campaign tells the story of four survivors fighting through five chapters (maps) to reach an evacuation point.</p>
<h3>Connecting to Your Server</h3>
<p>Use your server's IP address and port to connect from the game client.</p>
<h3>Managing Files</h3>
<p>Access your server files via FTP using the credentials provided in your control panel.</p>
<h2>Support</h2>
<p>If you need assistance with your Left 4 Dead server:</p>
<h3>Key Features</h3>
<ul>
<li>Check our <a href="/docs.php?action=view&doc=common-issues">Common Issues</a> guide</li>
<li>Contact support through your account dashboard</li>
<li>Visit the official Left 4 Dead community for game-specific help</li>
<li><strong>Co-op Campaign:</strong> 4-player cooperative story campaigns against AI hordes</li>
<li><strong>Versus Mode:</strong> 4v4 multiplayer with players controlling Special Infected</li>
<li><strong>Survival Mode:</strong> Hold out against endless waves in challenge maps</li>
<li><strong>5 Original Campaigns:</strong> No Mercy, Crash Course, Death Toll, Dead Air, Blood Harvest</li>
<li><strong>Special Infected:</strong> Boomer, Hunter, Smoker, Tank, Witch</li>
<li><strong>AI Director:</strong> Dynamic difficulty and pacing system</li>
<li><strong>Four Difficulty Levels:</strong> Easy, Normal, Advanced, Expert</li>
</ul>
<h2 id="ports">🔌 Ports & Firewall Configuration</h2>
<h3>Required Ports</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0; background: #0f172a; border-radius: 8px; overflow: hidden;">
<thead>
<tr style="background: #1e293b;">
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Port</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Protocol</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Purpose</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Required</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">27015</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
<span style="background: #3b82f6; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold; margin-left: 4px;">TCP</span>
</td>
<td style="padding: 12px;">Game server + RCON (dual purpose)</td>
<td style="padding: 12px; color: #22c55e; font-weight: bold;"> Yes</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px; font-family: monospace; color: #a5b4fc;">27020</td>
<td style="padding: 12px;">
<span style="background: #22c55e; color: #ffffff; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold;">UDP</span>
</td>
<td style="padding: 12px;">SourceTV (optional spectating)</td>
<td style="padding: 12px; color: #94a3b8;">Optional</td>
</tr>
</tbody>
</table>
<h3>Firewall Configuration Examples</h3>
<h4>Ubuntu/Debian (UFW)</h4>
<pre><code># Allow L4D game port (UDP and TCP)
sudo ufw allow 27015
sudo ufw allow 27015/tcp
# Allow SourceTV (optional)
sudo ufw allow 27020/udp
# Enable firewall
sudo ufw enable
sudo ufw status
</code></pre>
<h4>CentOS/RHEL (FirewallD)</h4>
<pre><code># Add L4D ports
sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=27015/tcp
sudo firewall-cmd --permanent --add-port=27020/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
</code></pre>
<h4>Windows Firewall (PowerShell)</h4>
<pre><code># Game server port
New-NetFirewallRule -DisplayName "L4D Server" -Direction Inbound -LocalPort 27015 -Protocol UDP -Action Allow
New-NetFirewallRule -DisplayName "L4D Server TCP" -Direction Inbound -LocalPort 27015 -Protocol TCP -Action Allow
# SourceTV (optional)
New-NetFirewallRule -DisplayName "L4D SourceTV" -Direction Inbound -LocalPort 27020 -Protocol UDP -Action Allow
</code></pre>
<h4>iptables (Advanced)</h4>
<pre><code># Allow L4D ports
iptables -A INPUT -p udp --dport 27015 -j ACCEPT
iptables -A INPUT -p tcp --dport 27015 -j ACCEPT
iptables -A INPUT -p udp --dport 27020 -j ACCEPT
# Save rules (Ubuntu/Debian)
netfilter-persistent save
# Save rules (CentOS/RHEL)
service iptables save
</code></pre>
<h2 id="installation">Installation</h2>
<h3>Prerequisites</h3>
<ul>
<li><strong>SteamCMD</strong> installed (<a href="https://developer.valvesoftware.com/wiki/SteamCMD" target="_blank">Installation Guide</a>)</li>
<li>Adequate disk space (~15 GB for full installation)</li>
<li>Open firewall ports (27015 UDP/TCP minimum)</li>
<li>Linux: 32-bit libraries (libstdc++6:i386, lib32gcc1)</li>
</ul>
<h3>Linux Installation</h3>
<pre><code># Create server directory
mkdir -p ~/l4d_server
cd ~/l4d_server
# Install 32-bit libraries (Ubuntu/Debian)
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32gcc1 libstdc++6:i386
# Download server files with SteamCMD
steamcmd +force_install_dir ~/l4d_server +login anonymous +app_update 222840 validate +quit
# Note: App ID 222840 is for Left 4 Dead Dedicated Server
</code></pre>
<h3>Windows Installation</h3>
<pre><code># Download SteamCMD for Windows
# Extract to C:\steamcmd\
# Create server directory
mkdir C:\l4d_server
# Run SteamCMD
C:\steamcmd\steamcmd.exe +force_install_dir C:\l4d_server +login anonymous +app_update 222840 validate +quit
</code></pre>
<h2 id="configuration">⚙️ Configuration</h2>
<h3>server.cfg</h3>
<p>Create or edit <code>left4dead/cfg/server.cfg</code>:</p>
<pre><code>// Server Identity
hostname "My Left 4 Dead Server"
rcon_password "your_secure_rcon_password"
sv_contact "admin@yourserver.com"
sv_region 1 // 0=US East, 1=US West, 2=South America, 3=Europe
// Basic Settings
sv_lan 0 // 0=internet server, 1=LAN only
sv_password "" // Leave empty for public, set for private server
sv_allow_lobby_connect_only 0 // Allow direct connections
// Game Settings
z_difficulty "Normal" // Easy, Normal, Hard, Expert
mp_gamemode "coop" // coop, versus, survival
sv_cheats 0 // Disable cheats in production
// Player Limits
sv_maxplayers 8 // Max 8 for versus (4v4)
sv_visiblemaxplayers 8
// Voice Communication
sv_voiceenable 1
sv_alltalk 0 // 0=team only, 1=all talk
// Connection Settings
sv_minrate 20000
sv_maxrate 30000
sv_mincmdrate 30
sv_maxcmdrate 67
sv_minupdaterate 30
sv_maxupdaterate 67
// Logging
log on
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
sv_logbans 1
// Director AI
director_no_death_check 0 // 0=normal spawning, 1=disable death checks
director_build_up_min_interval 20 // Minimum seconds between events
// Friendly Fire
mp_friendlyfire 0 // 0=off, 1=on (often enabled in Versus)
// Download Settings
sv_allowdownload 1
sv_allowupload 1
net_maxfilesize 64 // MB
// Performance
fps_max 300 // Server FPS cap
</code></pre>
<h2 id="gamemodes">Game Modes & Campaigns</h2>
<h3>Game Modes</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Players</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Campaign (Coop)</strong></td>
<td style="padding: 12px;">1-4</td>
<td style="padding: 12px;">Fight through story campaigns as Survivors against AI infected</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Versus</strong></td>
<td style="padding: 12px;">4v4</td>
<td style="padding: 12px;">Teams alternate as Survivors and Special Infected</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Survival</strong></td>
<td style="padding: 12px;">1-4</td>
<td style="padding: 12px;">Hold out against endless waves in small challenge maps</td>
</tr>
</tbody>
</table>
<h3>Official Campaigns</h3>
<p>All 5 original campaigns included:</p>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Campaign</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Starting Map</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Maps</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Setting</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>No Mercy</strong></td>
<td style="padding: 12px;"><code>l4d_hospital01_apartment</code></td>
<td style="padding: 12px;">5</td>
<td style="padding: 12px;">Fairfield (hospital rooftop escape)</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Crash Course</strong></td>
<td style="padding: 12px;"><code>l4d_garage01_alleys</code></td>
<td style="padding: 12px;">2</td>
<td style="padding: 12px;">Riverside (truck depot)</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Death Toll</strong></td>
<td style="padding: 12px;"><code>l4d_river01_docks</code></td>
<td style="padding: 12px;">5</td>
<td style="padding: 12px;">Rural Pennsylvania (boathouse escape)</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Dead Air</strong></td>
<td style="padding: 12px;"><code>l4d_airport01_greenhouse</code></td>
<td style="padding: 12px;">5</td>
<td style="padding: 12px;">Metro Airport (airplane escape)</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Blood Harvest</strong></td>
<td style="padding: 12px;"><code>l4d_farm01_hilltop</code></td>
<td style="padding: 12px;">5</td>
<td style="padding: 12px;">Allegheny National Forest (farmhouse finale)</td>
</tr>
</tbody>
</table>
<h3>Changing Maps via RCON</h3>
<pre><code># Connect with RCON
rcon_password your_password
rcon changelevel l4d_hospital01_apartment
# List all maps
rcon maps *
# Change game mode
rcon mp_gamemode versus
rcon map l4d_hospital01_apartment // Restart map in new mode
</code></pre>
<h2 id="sourcemod">SourceMod & Plugins</h2>
<h3>Installing SourceMod</h3>
<h4>Step 1: Install MetaMod:Source</h4>
<pre><code># Download from: https://www.sourcemm.net/downloads.php?branch=stable
# Extract to left4dead/ directory
# Structure should be:
left4dead/
addons/
metamod/
bin/
# Verify in server console:
meta version
</code></pre>
<h4>Step 2: Install SourceMod</h4>
<pre><code># Download from: https://www.sourcemod.net/downloads.php?branch=stable
# Extract to left4dead/ directory
# Structure should be:
left4dead/
addons/
sourcemod/
plugins/
configs/
# Add yourself as admin in:
# left4dead/addons/sourcemod/configs/admins_simple.ini
"STEAM_0:1:12345678" "99:z"
# Verify in-game:
sm version
</code></pre>
<h3>Essential Plugins</h3>
<ul>
<li><strong>L4DToolZ:</strong> Enable 10+ player servers (bypass 8-player limit)</li>
<li><strong>AdminMenu:</strong> Full admin control panel (included with SourceMod)</li>
<li><strong>Simple Chat Processor:</strong> Chat colors and formatting</li>
<li><strong>Basic Votes:</strong> Kick, ban, and map voting</li>
</ul>
<h3>Popular L4D Plugins</h3>
<ul>
<li><strong>Super Versus:</strong> 8v8 Versus mode support</li>
<li><strong>Survivor Bots:</strong> Enhanced bot AI and control</li>
<li><strong>Competitive Spawns:</strong> Balanced Special Infected spawning for competitive play</li>
<li><strong>L4D Stats:</strong> Player statistics tracking</li>
<li><strong>Infected Bots Control:</strong> Manage AI Special Infected behavior</li>
</ul>
<h3>Installing Plugins</h3>
<pre><code># Place .smx files in:
left4dead/addons/sourcemod/plugins/
# Reload plugins:
rcon sm plugins reload pluginname
# List all plugins:
rcon sm plugins list
# Disable a plugin:
rcon sm plugins unload pluginname
</code></pre>
<h2 id="startup">Startup Commands</h2>
<h3>Linux</h3>
<pre><code>#!/bin/bash
# start_l4d.sh
cd ~/l4d_server
./srcds_run -console -game left4dead \
+map l4d_hospital01_apartment \
+maxplayers 8 \
+mp_gamemode coop \
-port 27015 \
-ip 0.0.0.0
</code></pre>
<h3>Windows</h3>
<pre><code>@echo off
REM start_l4d.bat
cd C:\l4d_server
srcds.exe -console -game left4dead ^
+map l4d_hospital01_apartment ^
+maxplayers 8 ^
+mp_gamemode coop ^
-port 27015
</code></pre>
<h3>Startup Parameters</h3>
<ul>
<li><code>-console</code> - Run with visible console</li>
<li><code>-game left4dead</code> - Specify game directory</li>
<li><code>+map mapname</code> - Starting map</li>
<li><code>+maxplayers 8</code> - Maximum players (4 for coop, 8 for versus)</li>
<li><code>+mp_gamemode mode</code> - Game mode (coop, versus, survival)</li>
<li><code>-port 27015</code> - Server port</li>
<li><code>-ip 0.0.0.0</code> - Bind to all interfaces</li>
<li><code>+exec server.cfg</code> - Execute config file on start</li>
</ul>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not in Browser</h3>
<pre><code># Check sv_lan setting
sv_lan 0 // Must be 0 for internet
# Verify connection to Steam
status // Check "Connected to Steam servers"
# Check port availability
netstat -an | grep 27015
# Wait for master server registration (5-10 minutes)
</code></pre>
<h3>Connection Issues</h3>
<ul>
<li>Verify firewall allows UDP 27015</li>
<li>Check server password (<code>sv_password</code>)</li>
<li>Ensure clients can ping server IP</li>
<li>Verify router port forwarding</li>
</ul>
<h3>SourceMod Not Loading</h3>
<pre><code># Verify directory structure
left4dead/
addons/
metamod/
sourcemod/
# Check metamod first
meta version // Should show version number
# Then check sourcemod
sm version
# Review error logs
left4dead/addons/sourcemod/logs/errors_*.log
</code></pre>
<h3>Performance Issues</h3>
<pre><code># Check server FPS
stats // In server console
# Optimize rates
sv_minrate 20000
sv_maxrate 30000
fps_max 300
# Reduce max players if needed
sv_maxplayers 4 // For coop
</code></pre>
<h3>AI Director Too Hard/Easy</h3>
<pre><code># Change difficulty
z_difficulty Normal // Easy, Normal, Hard, Expert
# Adjust Special Infected spawn rates
director_build_up_min_interval 20 // Seconds between events
# Tank spawn frequency
z_tank_max_players 3000 // Distance before Tank spawns
</code></pre>
<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>
<h3 style="color: #ffffff; margin-top: 0;"><i class="fas fa-lightbulb" style="color: #fbbf24; margin-right: 8px;"></i>Pro Tips</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Always keep your server updated to the latest version</li>
<li>Make regular backups of your server configuration</li>
<li>Review and follow the game's End User License Agreement (EULA)</li>
<li><strong>L4DToolZ Plugin:</strong> Unlock 10-32 player servers for custom game modes</li>
<li><strong>Versus Balance:</strong> 4v4 is standard competitive format</li>
<li><strong>Custom Campaigns:</strong> L4D has active custom campaign community</li>
<li><strong>Survival Mode:</strong> Great for warming up or quick sessions</li>
<li><strong>RCON Management:</strong> Use HLSW or similar tools for remote management</li>
<li><strong>sv_pure 2:</strong> Enable for competitive to prevent cheats</li>
<li><strong>Friendly Fire:</strong> Enable in Versus for tactical gameplay</li>
</ul>
</div>
</div>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://developer.valvesoftware.com/wiki/Left_4_Dead_Dedicated_Server" target="_blank">Valve Developer Wiki - L4D Dedicated Server</a></li>
<li><a href="https://wiki.alliedmods.net/Category:Left_4_Dead" target="_blank">AlliedModders L4D Wiki</a></li>
<li><a href="https://www.l4dmaps.com/" target="_blank">L4DMaps - Custom Campaign Repository</a></li>
<li><a href="https://forums.alliedmods.net/forumdisplay.php?f=72" target="_blank">AlliedModders L4D Forum</a></li>
<li><a href="https://steamcommunity.com/app/500/discussions/" target="_blank">Steam Community Discussions</a></li>
</ul>

View file

@ -1,7 +1,7 @@
{
"name": "Left 4 Dead",
"description": "Setup and configuration guide for Left 4 Dead game servers",
"description": "Comprehensive guide for L4D dedicated servers with SourceMod/MetaMod, all 5 campaigns, game modes, and original co-op zombie survival hosting",
"category": "game",
"order": 31,
"complete": false
"order": 17,
"complete": true
}

View file

@ -1,68 +1,424 @@
<?php
/**
* Left 4 Dead 2 Server Documentation
* Left 4 Dead 2 Dedicated Server - Comprehensive Hosting Guide
* General game server hosting information (not platform-specific)
*/
?>
<h1>Left 4 Dead 2 Server Guide</h1>
<h2>Overview</h2>
<p><strong>Left 4 Dead 2</strong> is available for hosting on our platform. This guide covers the basics of setting up and managing your Left 4 Dead 2 server.</p>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Server Information</h3>
<ul style="color: #e5e7eb; line-height: 1.8;">
<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;">Additional Info:</strong> Query port also uses 27015 UDP</li>
</ul>
<p style="color: #e5e7eb; margin-top: 12px; font-size: 0.95em;">
<em>Note: When running on a VPS or dedicated server, you can use the default port or configure a custom port in your server configuration file.</em>
</p>
<h3 style="color: #ffffff; margin-top: 0;">📚 Navigation</h3>
<div style="display: flex; flex-wrap: wrap; gap: 10px;">
<a href="#overview" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Overview</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="#gamemodes" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Game Modes</a>
<a href="#addons" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Addons & Mods</a>
<a href="#troubleshooting" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">🔧 Troubleshooting</a>
</div>
</div>
<h2>Getting Started</h2>
<p>To create a Left 4 Dead 2 server:</p>
<ol>
<li>Navigate to the <a href="/serverlist.php">Game Servers</a> page</li>
<li>Find <strong>Left 4 Dead 2</strong> in the list</li>
<li>Select your preferred configuration (slots, duration, etc.)</li>
<li>Add to cart and complete checkout</li>
<li>Your server will be automatically provisioned within minutes</li>
</ol>
<h1>Left 4 Dead 2 Dedicated Server Hosting Guide</h1>
<h2>Server Configuration</h2>
<p>After your server is created, you can configure it through the control panel:</p>
<h2 id="overview">Overview</h2>
<p><strong>Left 4 Dead 2</strong> is a cooperative first-person shooter developed by Valve. Set in the aftermath of a zombie apocalypse, teams of four survivors fight through hordes of infected across various campaigns. The game features intense co-op action, versus mode, and extensive modding support through the Source engine.</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> (UDP)</li>
<li><strong style="color: #ffffff;">RCON Port:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">27015</code> (TCP, same as game port)</li>
<li><strong style="color: #ffffff;">SourceTV Port:</strong> <code style="background: #0f172a; padding: 2px 6px; border-radius: 3px; color: #a5b4fc;">27020</code> (UDP, optional)</li>
<li><strong style="color: #ffffff;">Minimum RAM:</strong> 1GB (Recommended: 2-4GB)</li>
<li><strong style="color: #ffffff;">Recommended CPU:</strong> 2+ cores @ 2.5GHz</li>
<li><strong style="color: #ffffff;">Storage:</strong> 15GB+ for game files</li>
<li><strong style="color: #ffffff;">Max Players:</strong> 4-8 typical (co-op/versus)</li>
<li><strong style="color: #ffffff;">SteamCMD App ID:</strong> 222860</li>
<li><strong style="color: #ffffff;">Engine:</strong> Source Engine</li>
<li><strong style="color: #ffffff;">Config File:</strong> server.cfg</li>
</ul>
</div>
</ul>
</div>
<h2 id="ports">🔌 Ports Required</h2>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0; background: #1e3a5f; border-radius: 8px; overflow: hidden;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Port</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Protocol</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Purpose</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Required</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px; border-bottom: 1px solid #334155;"><code style="background: #0f172a; padding: 4px 8px; border-radius: 3px; color: #a5b4fc;">27015</code></td>
<td style="padding: 12px; border-bottom: 1px solid #334155;"><span style="background: #065f46; padding: 4px 8px; border-radius: 3px; color: #d1fae5;">UDP</span> / <span style="background: #1e40af; padding: 4px 8px; border-radius: 3px; color: #dbeafe;">TCP</span></td>
<td style="padding: 12px; border-bottom: 1px solid #334155;">Game + RCON port (UDP for game, TCP for RCON)</td>
<td style="padding: 12px; border-bottom: 1px solid #334155;"><span style="background: #7c2d12; padding: 4px 8px; border-radius: 3px; color: #fed7aa;"> Yes</span></td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><code style="background: #0f172a; padding: 4px 8px; border-radius: 3px; color: #a5b4fc;">27020</code></td>
<td style="padding: 12px;"><span style="background: #065f46; padding: 4px 8px; border-radius: 3px; color: #d1fae5;">UDP</span></td>
<td style="padding: 12px;">SourceTV (spectator mode, game replays)</td>
<td style="padding: 12px;"><span style="background: #713f12; padding: 4px 8px; border-radius: 3px; color: #fef3c7;">Optional</span></td>
</tr>
</tbody>
</table>
<div style="background: #1e3a5f; padding: 15px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<p style="color: #e5e7eb; margin: 0;"><strong>Note:</strong> Source engine games use the same port for both UDP (game traffic) and TCP (RCON). If you run multiple L4D2 servers on one machine, use different ports (27016, 27017, etc.) and adjust your startup parameters accordingly.</p>
</div>
<h3>Firewall Configuration Examples</h3>
<h4>UFW (Ubuntu/Debian)</h4>
<pre><code>sudo ufw allow 27015/udp comment 'L4D2 game port'
sudo ufw allow 27015/tcp comment 'L4D2 RCON'
sudo ufw allow 27020/udp comment 'L4D2 SourceTV'
sudo ufw reload
</code></pre>
<h4>FirewallD (CentOS/RHEL/Fedora)</h4>
<pre><code>sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=27015/tcp
sudo firewall-cmd --permanent --add-port=27020/udp
sudo firewall-cmd --reload
</code></pre>
<h4>Windows Firewall</h4>
<pre><code># Run in PowerShell as Administrator
New-NetFirewallRule -DisplayName "L4D2 Game/RCON" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow
New-NetFirewallRule -DisplayName "L4D2 RCON TCP" -Direction Inbound -Protocol TCP -LocalPort 27015 -Action Allow
New-NetFirewallRule -DisplayName "L4D2 SourceTV" -Direction Inbound -Protocol UDP -LocalPort 27020 -Action Allow
</code></pre>
<h4>iptables (Legacy Linux)</h4>
<pre><code>sudo iptables -A INPUT -p udp --dport 27015 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 27015 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 27020 -j ACCEPT
sudo service iptables save
</code></pre>
<h2 id="installation">Installation & Setup</h2>
<h3>System Requirements</h3>
<ul>
<li>Server settings and parameters</li>
<li>Player slots and limits</li>
<li>RCON/remote control access</li>
<li>FTP file access</li>
<li><strong>OS:</strong> Windows Server 2016+ or Linux 64-bit (Ubuntu/Debian recommended)</li>
<li><strong>CPU:</strong> Dual-core @ 2.5GHz minimum; Quad-core for better performance</li>
<li><strong>RAM:</strong> 1GB minimum, 2-4GB recommended</li>
<li><strong>Storage:</strong> 15GB+ for game files and workshop content</li>
<li><strong>Network:</strong> 5Mbps+ upload recommended</li>
</ul>
<h2>Common Tasks</h2>
<h3>Installing via SteamCMD (Linux)</h3>
<pre><code># Install SteamCMD
sudo apt update
sudo apt install steamcmd
<h3>Starting Your Server</h3>
<p>Servers are automatically started after creation. You can stop/start your server from the control panel.</p>
# Create server directory
mkdir -p ~/l4d2-server
cd ~/l4d2-server
<h3>Connecting to Your Server</h3>
<p>Use your server's IP address and port to connect from the game client.</p>
# Download server files
steamcmd +login anonymous +force_install_dir ~/l4d2-server +app_update 222860 validate +exit
</code></pre>
<h3>Managing Files</h3>
<p>Access your server files via FTP using the credentials provided in your control panel.</p>
<h3>Installing via SteamCMD (Windows)</h3>
<pre><code># Download SteamCMD from https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
# Extract to C:\steamcmd\
# Run CMD as Administrator
cd C:\steamcmd
steamcmd.exe +login anonymous +force_install_dir "C:\L4D2Server" +app_update 222860 validate +exit
</code></pre>
<h2 id="configuration">Server Configuration</h2>
<h3>server.cfg</h3>
<p>Create <code>left4dead2/cfg/server.cfg</code> with your settings:</p>
<pre><code>// Server Name and Info
hostname "My Left 4 Dead 2 Server"
sv_steamgroup "" // Steam group ID (optional)
sv_steamgroup_exclusive 0
// Server Settings
sv_lan 0
sv_region 1 // 0=US East, 1=US West, 2=South America, 3=Europe, etc.
sv_allow_lobby_connect_only 0
sv_gametypes "coop,versus,survival,scavenge"
// RCON
rcon_password "your_secure_password"
// Communication
sv_voiceenable 1
sv_alltalk 0 // 0=team only, 1=all players
// Logging
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
// Rates
sv_minrate 30000
sv_maxrate 100000
sv_mincmdrate 30
sv_maxcmdrate 100
sv_minupdaterate 30
sv_maxupdaterate 100
// Download Settings
sv_allowdownload 1
sv_allowupload 1
net_maxfilesize 64
// Game Rules
mp_disable_autokick 1 // Don't auto-kick idle players
sv_consistency 1
sv_pure 1 // Server purity (1=enforce consistency)
sv_pure_kick_clients 1
// Campaign Settings
mp_gamemode "coop" // coop, versus, survival, scavenge
z_difficulty "Normal" // Easy, Normal, Hard, Impossible
// Versus Settings
versus_boss_flow_max 0.9
versus_boss_flow_min 0.2
// Performance
fps_max 300
sv_maxcmdrate 100
sv_maxupdaterate 100
// Plugins (SourceMod/MetaMod if installed)
// sm_cvar mp_autoteambalance 0
</code></pre>
<h3>Starting the Server</h3>
<h4>Windows</h4>
<pre><code># Navigate to server directory
cd C:\L4D2Server\
# Basic startup
srcds.exe -console -game left4dead2 +map c1m1_hotel +maxplayers 8
# With custom config and hostname
srcds.exe -console -game left4dead2 +exec server.cfg +map c1m1_hotel +maxplayers 8 +hostname "My Server"
# Specific game mode
srcds.exe -console -game left4dead2 +map c1m1_hotel +mp_gamemode versus +maxplayers 8
</code></pre>
<h4>Linux</h4>
<pre><code># Make start script executable
chmod +x srcds_run
# Run in screen session
screen -S l4d2 ./srcds_run -console -game left4dead2 +map c1m1_hotel +maxplayers 8
# With custom parameters
./srcds_run -console -game left4dead2 +exec server.cfg +map c1m1_hotel +maxplayers 8 +ip YOUR_SERVER_IP -port 27015
# Detach: Ctrl+A, D
# Reattach: screen -r l4d2
</code></pre>
<h2 id="gamemodes">Game Modes</h2>
<h3>Available Game Modes</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Players</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">ConVar</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Co-op</strong></td>
<td style="padding: 12px;">4 survivors vs AI infected</td>
<td style="padding: 12px;">1-4</td>
<td style="padding: 12px;"><code>mp_gamemode coop</code></td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Versus</strong></td>
<td style="padding: 12px;">4v4 PvP (survivors vs special infected)</td>
<td style="padding: 12px;">2-8</td>
<td style="padding: 12px;"><code>mp_gamemode versus</code></td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Survival</strong></td>
<td style="padding: 12px;">Hold out against endless waves</td>
<td style="padding: 12px;">1-4</td>
<td style="padding: 12px;"><code>mp_gamemode survival</code></td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Scavenge</strong></td>
<td style="padding: 12px;">4v4 timed gas can collection</td>
<td style="padding: 12px;">2-8</td>
<td style="padding: 12px;"><code>mp_gamemode scavenge</code></td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Realism</strong></td>
<td style="padding: 12px;">Hardcore co-op (no outlines, harder)</td>
<td style="padding: 12px;">1-4</td>
<td style="padding: 12px;"><code>mp_gamemode realism</code></td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Mutations</strong></td>
<td style="padding: 12px;">Special rule variants (weekly)</td>
<td style="padding: 12px;">Varies</td>
<td style="padding: 12px;"><code>mp_gamemode mutation#</code></td>
</tr>
</tbody>
</table>
<h3>Campaign Maps</h3>
<p>Default starting maps for campaigns:</p>
<h2>Support</h2>
<p>If you need assistance with your Left 4 Dead 2 server:</p>
<ul>
<li>Check our <a href="/docs.php?action=view&doc=common-issues">Common Issues</a> guide</li>
<li>Contact support through your account dashboard</li>
<li>Visit the official Left 4 Dead 2 community for game-specific help</li>
<li><strong>Dead Center:</strong> <code>c1m1_hotel</code></li>
<li><strong>Dark Carnival:</strong> <code>c2m1_highway</code></li>
<li><strong>Swamp Fever:</strong> <code>c3m1_plankcountry</code></li>
<li><strong>Hard Rain:</strong> <code>c4m1_milltown_a</code></li>
<li><strong>The Parish:</strong> <code>c5m1_waterfront</code></li>
<li><strong>The Passing (DLC):</strong> <code>c6m1_riverbank</code></li>
<li><strong>The Sacrifice (DLC):</strong> <code>c7m1_docks</code></li>
<li><strong>No Mercy (L4D1):</strong> <code>c8m1_apartment</code></li>
<li><strong>Crash Course (L4D1):</strong> <code>c9m1_alleys</code></li>
<li><strong>Death Toll (L4D1):</strong> <code>c10m1_caves</code></li>
<li><strong>Dead Air (L4D1):</strong> <code>c11m1_greenhouse</code></li>
<li><strong>Blood Harvest (L4D1):</strong> <code>c12m1_hilltop</code></li>
<li><strong>Cold Stream (DLC):</strong> <code>c13m1_alpinecreek</code></li>
</ul>
<h2 id="addons">Addons & Mods</h2>
<h3>SourceMod & MetaMod:Source</h3>
<p>Essential for server administration and plugins:</p>
<h4>Installing MetaMod:Source</h4>
<pre><code># Download from https://www.sourcemm.net/downloads.php?branch=stable
# Extract to left4dead2/ directory
# Verify installation - should see "addons/metamod/" folder
</code></pre>
<h4>Installing SourceMod</h4>
<pre><code># Download from https://www.sourcemod.net/downloads.php?branch=stable
# Extract to left4dead2/ directory
# Add yourself as admin in addons/sourcemod/configs/admins_simple.ini:
"STEAM_0:1:12345678" "99:z" // Replace with your SteamID
# Restart server
</code></pre>
<h3>Popular SourceMod Plugins</h3>
<ul>
<li><strong>L4DToolZ:</strong> Unlock player slots beyond 8 (up to 32)</li>
<li><strong>Super Versus:</strong> Custom versus configurations</li>
<li><strong>Survivor Bots:</strong> Better bot AI and control</li>
<li><strong>Admin Menu:</strong> In-game admin panel for server management</li>
<li><strong>Spawn Control:</strong> Customize special infected spawning</li>
<li><strong>Vocalize:</strong> Enhanced survivor voice lines</li>
</ul>
<h3>Workshop Content</h3>
<p>L4D2 supports Steam Workshop. To auto-download workshop items:</p>
<pre><code># In server.cfg or startup command
+workshop_download_dir "addons/workshop"
+host_workshop_collection "COLLECTION_ID_HERE"
# Find collection IDs on Steam Workshop
# Server will auto-download subscribed content
</code></pre>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not Showing in Browser</h3>
<pre><code># Check sv_lan setting
sv_lan 0 // Must be 0 for internet servers
# Verify region
sv_region 1 // Must be set appropriately
# Check ports
netstat -an | grep 27015
# Test RCON connection
# Use tool like SourceRCON or in-game console
rcon_password "your_password"
rcon status
</code></pre>
<h3>Connection Issues / Lag</h3>
<pre><code># Optimize rates in server.cfg
sv_minrate 30000
sv_maxrate 100000
sv_mincmdrate 30
sv_maxcmdrate 100
# Adjust tickrate (default 30)
-tickrate 30 // Add to startup command
# Check server FPS
fps_max 300 // In server.cfg
</code></pre>
<h3>Players Can't Join / Authentication Failed</h3>
<ul>
<li>Ensure <code>sv_lan 0</code> is set correctly</li>
<li>Check firewall allows both UDP and TCP on game port</li>
<li>Verify Steam authentication is working (servers need Steam running)</li>
<li>Try <code>sv_allow_lobby_connect_only 0</code> to allow direct connects</li>
</ul>
<h3>Mods/Addons Not Loading</h3>
<pre><code># Check MetaMod loaded
meta version // In server console
# Check SourceMod loaded
sm version
# Verify file structure
addons/
metamod/
sourcemod/
plugins/
configs/
# Review error logs
left4dead2/addons/sourcemod/logs/
</code></pre>
<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>
<h3 style="color: #ffffff; margin-top: 0;"><i class="fas fa-lightbulb" style="color: #fbbf24; margin-right: 8px;"></i>Pro Tips</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li>Always keep your server updated to the latest version</li>
<li>Make regular backups of your server configuration</li>
<li>Review and follow the game's End User License Agreement (EULA)</li>
<li><strong>Versus balance:</strong> Use SourceMod plugins for better competitive balance</li>
<li><strong>Custom campaigns:</strong> L4D2 has hundreds of community campaigns on Workshop</li>
<li><strong>More players:</strong> L4DToolZ plugin allows 10+ player servers (chaotic but fun!)</li>
<li><strong>Mutations:</strong> Weekly mutation modes provide variety (Taaannnkk!, Gib Fest, etc.)</li>
<li><strong>Performance:</strong> Source engine is CPU-bound; prioritize single-core performance</li>
<li><strong>Difficulty scaling:</strong> z_difficulty affects tank health, special spawn rates</li>
</ul>
</div>
</div>
<h2>Resources</h2>
<ul>
<li><a href="https://developer.valvesoftware.com/wiki/Left_4_Dead_2" target="_blank">Valve Developer Wiki - L4D2</a></li>
<li><a href="https://www.sourcemod.net/" target="_blank">SourceMod Official Site</a></li>
<li><a href="https://www.metamodsource.net/" target="_blank">MetaMod:Source Official Site</a></li>
<li><a href="https://steamcommunity.com/app/550/workshop/" target="_blank">Steam Workshop - L4D2</a></li>
<li><a href="https://www.gamemaps.com/l4d2/" target="_blank">GameMaps - Custom Campaigns</a></li>
</ul>

View file

@ -1,7 +1,7 @@
{
"name": "Left 4 Dead 2",
"description": "Setup and configuration guide for Left 4 Dead 2 game servers",
"description": "Comprehensive guide for L4D2 dedicated servers with SourceMod/MetaMod, game modes, Workshop content, and co-op zombie shooter hosting",
"category": "game",
"order": 29,
"complete": false
"order": 18,
"complete": true
}

View file

@ -5,13 +5,15 @@
*/
?>
<div style="background: #1e3a5f; padding: 20px; border-left: 4px solid #3b82f6; margin: 20px 0; border-radius: 4px;">
<h3 style="color: #ffffff; margin-top: 0;">Navigation</h3>
<h3 style="color: #ffffff; margin-top: 0;">📚 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="#quick-info" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Overview</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="#configuration" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">⚙️ Configuration</a>
<a href="#gamemodes" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Game Modes</a>
<a href="#plugins" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Plugins</a>
<a href="#troubleshooting" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">Troubleshooting</a>
<a href="#troubleshooting" style="background: #0f172a; padding: 8px 16px; border-radius: 4px; color: #a5b4fc; text-decoration: none;">🔧 Troubleshooting</a>
</div>
</div>
@ -35,6 +37,64 @@
</ul>
</div>
<h2 id="ports">🔌 Ports Required</h2>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0; background: #1e3a5f; border-radius: 8px; overflow: hidden;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Port</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Protocol</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Purpose</th>
<th style="padding: 12px; text-align: left; color: #ffffff; border-bottom: 2px solid #3b82f6;">Required</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px; border-bottom: 1px solid #334155;"><code style="background: #0f172a; padding: 4px 8px; border-radius: 3px; color: #a5b4fc;">27015</code></td>
<td style="padding: 12px; border-bottom: 1px solid #334155;"><span style="background: #065f46; padding: 4px 8px; border-radius: 3px; color: #d1fae5;">UDP</span> / <span style="background: #1e40af; padding: 4px 8px; border-radius: 3px; color: #dbeafe;">TCP</span></td>
<td style="padding: 12px; border-bottom: 1px solid #334155;">Game + RCON port (UDP for game, TCP for RCON)</td>
<td style="padding: 12px; border-bottom: 1px solid #334155;"><span style="background: #7c2d12; padding: 4px 8px; border-radius: 3px; color: #fed7aa;"> Yes</span></td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><code style="background: #0f172a; padding: 4px 8px; border-radius: 3px; color: #a5b4fc;">27020</code></td>
<td style="padding: 12px;"><span style="background: #065f46; padding: 4px 8px; border-radius: 3px; color: #d1fae5;">UDP</span> / <span style="background: #1e40af; padding: 4px 8px; border-radius: 3px; color: #dbeafe;">TCP</span></td>
<td style="padding: 12px;">SourceTV (spectator/streaming)</td>
<td style="padding: 12px;"><span style="background: #713f12; padding: 4px 8px; border-radius: 3px; color: #fef3c7;">Optional</span></td>
</tr>
</tbody>
</table>
<h3>Firewall Configuration Examples</h3>
<h4>UFW (Ubuntu/Debian)</h4>
<pre><code>sudo ufw allow 27015/udp comment 'TF2 game port'
sudo ufw allow 27015/tcp comment 'TF2 RCON'
sudo ufw allow 27020 comment 'TF2 SourceTV'
sudo ufw reload
</code></pre>
<h4>FirewallD (CentOS/RHEL/Fedora)</h4>
<pre><code>sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=27015/tcp
sudo firewall-cmd --permanent --add-port=27020/tcp
sudo firewall-cmd --permanent --add-port=27020/udp
sudo firewall-cmd --reload
</code></pre>
<h4>Windows Firewall</h4>
<pre><code># Run in PowerShell as Administrator
New-NetFirewallRule -DisplayName "TF2 Game/RCON" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow
New-NetFirewallRule -DisplayName "TF2 RCON TCP" -Direction Inbound -Protocol TCP -LocalPort 27015 -Action Allow
New-NetFirewallRule -DisplayName "TF2 SourceTV" -Direction Inbound -LocalPort 27020 -Action Allow
</code></pre>
<h4>iptables (Legacy Linux)</h4>
<pre><code>sudo iptables -A INPUT -p udp --dport 27015 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 27015 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 27020 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 27020 -j ACCEPT
sudo service iptables save
</code></pre>
<h2 id="installation">Installation & Setup</h2>
<h3>System Requirements</h3>
@ -78,26 +138,298 @@ steamcmd +login anonymous +force_install_dir ~/tf2server +app_update 232250 vali
<p>Create <code>tf/cfg/server.cfg</code>:</p>
<pre><code>// Server Information
hostname "My TF2 Server"
sv_region 1
sv_region 1 // 0=US East, 1=US West, 2=South America, 3=Europe, etc.
rcon_password "your_secure_password"
sv_password "" // Leave empty for public, or set server password
// Server Settings
sv_lan 0
sv_pure 2
sv_pure 2 // 0=off, 1=loose, 2=strict file checking
mp_autoteambalance 1
sv_visiblemaxplayers 24
mp_timelimit 30
mp_maxrounds 5
mp_winlimit 0
// Class Limits (competitive servers)
// tf_tournament_classlimit_scout 2
// tf_tournament_classlimit_soldier 2
// tf_tournament_classlimit_demoman 2
// tf_tournament_classlimit_medic 1
// Communication
sv_alltalk 0
sv_alltalk 0 // 0=team only, 1=all players
sv_voiceenable 1
sv_allow_voice_from_file 0
// Logging
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
// Network Settings
sv_minrate 20000
sv_maxrate 100000
sv_mincmdrate 66
sv_maxcmdrate 66
sv_minupdaterate 66
sv_maxupdaterate 66
// Anti-Cheat
sv_cheats 0
sv_consistency 1
sv_pure 2
</code></pre>
<h2 id="gamemodes">Game Modes & Maps</h2>
<h3>Official Game Modes</h3>
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
<thead>
<tr style="background: #0f172a;">
<th style="padding: 12px; text-align: left; color: #ffffff;">Mode</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Description</th>
<th style="padding: 12px; text-align: left; color: #ffffff;">Example Maps</th>
</tr>
</thead>
<tbody style="color: #e5e7eb;">
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Capture the Flag</strong></td>
<td style="padding: 12px;">Capture enemy intelligence briefcase</td>
<td style="padding: 12px;">ctf_2fort, ctf_turbine</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Control Point</strong></td>
<td style="padding: 12px;">Capture all control points</td>
<td style="padding: 12px;">cp_dustbowl, cp_gorge</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Payload</strong></td>
<td style="padding: 12px;">Push/stop cart to destination</td>
<td style="padding: 12px;">pl_badwater, pl_upward</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Payload Race</strong></td>
<td style="padding: 12px;">Both teams push carts</td>
<td style="padding: 12px;">plr_hightower, plr_pipeline</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>King of the Hill</strong></td>
<td style="padding: 12px;">Control single point for timer</td>
<td style="padding: 12px;">koth_harvest, koth_viaduct</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Arena</strong></td>
<td style="padding: 12px;">No respawns, last team standing</td>
<td style="padding: 12px;">arena_lumberyard, arena_well</td>
</tr>
<tr style="background: #1e3a5f;">
<td style="padding: 12px;"><strong>Mann vs Machine</strong></td>
<td style="padding: 12px;">Co-op vs AI robot waves</td>
<td style="padding: 12px;">mvm_decoy, mvm_coaltown</td>
</tr>
<tr style="background: #152642;">
<td style="padding: 12px;"><strong>Pass Time</strong></td>
<td style="padding: 12px;">Sports-like mode with JACK</td>
<td style="padding: 12px;">pass_brickyard, pass_district</td>
</tr>
</tbody>
</table>
<h3>Map Rotation</h3>
<p>Create <code>tf/cfg/mapcycle.txt</code>:</p>
<pre><code>ctf_2fort
ctf_turbine
cp_dustbowl
cp_gorge
pl_badwater
pl_upward
koth_harvest
koth_viaduct
</code></pre>
<h3>Popular Community Maps</h3>
<ul>
<li><strong>pl_barnblitz:</strong> Community favorite payload map</li>
<li><strong>cp_process:</strong> Competitive 5CP map</li>
<li><strong>koth_product:</strong> Competitive KOTH variant</li>
<li><strong>pl_swiftwater:</strong> Popular payload map</li>
<li><strong>cp_steel:</strong> Unique attack/defend CP map</li>
</ul>
<h3>Installing Custom Maps</h3>
<pre><code># Download map .bsp file
# Place in: tf/maps/
# Download .nav file (for bots) if available
# Place in: tf/maps/
# Add to mapcycle.txt
echo "custom_map_name" >> tf/cfg/mapcycle.txt
# Change map via RCON
rcon changelevel custom_map_name
</code></pre>
<h2 id="plugins">Plugins & Extensions</h2>
<h3>SourceMod & MetaMod Installation</h3>
<h4>1. Install MetaMod:Source</h4>
<pre><code># Download from https://www.sourcemm.net/downloads.php?branch=stable
# Extract to tf/ directory
# Verify - should see:
tf/addons/metamod/
# Test in server console:
meta version
</code></pre>
<h4>2. Install SourceMod</h4>
<pre><code># Download from https://www.sourcemod.net/downloads.php?branch=stable
# Extract to tf/ directory
# Should see:
tf/addons/sourcemod/
# Add admin in: tf/addons/sourcemod/configs/admins_simple.ini
"STEAM_0:1:12345678" "99:z" // Replace with your SteamID
# Test in server:
sm version
</code></pre>
<h3>Essential Plugins</h3>
<ul>
<li><strong>AdminMenu:</strong> In-game admin panel (included with SourceMod)</li>
<li><strong>RTV (Rock The Vote):</strong> Player-initiated map voting</li>
<li><strong>MapChooser:</strong> End-of-map voting system</li>
<li><strong>Basic Votes:</strong> Kick, ban, map change votes</li>
<li><strong>BaseBans:</strong> Permanent ban system</li>
<li><strong>BaseComm:</strong> Mute/gag player communications</li>
</ul>
<h3>Popular TF2-Specific Plugins</h3>
<ul>
<li><strong>TF2 Competitive Fixes:</strong> Tournament mode improvements</li>
<li><strong>TF2 Stats:</strong> Track player statistics</li>
<li><strong>MGE Mod:</strong> 1v1/2v2 training arenas</li>
<li><strong>Randomizer:</strong> Random weapon/class attributes</li>
<li><strong>PropHunt:</strong> Hide as props, seekers find them</li>
<li><strong>Dodgeball:</strong> Airblast-redirected rocket gameplay</li>
<li><strong>Surf Timer:</strong> Surfing movement maps with records</li>
<li><strong>VSH (Vs Saxton Hale):</strong> All players vs one boss</li>
</ul>
<h3>Installing Plugins</h3>
<pre><code># Download .smx plugin file
# Place in: tf/addons/sourcemod/plugins/
# Restart server or reload plugins:
sm plugins reload pluginname
# List loaded plugins:
sm plugins list
# Disable plugin:
sm plugins unload pluginname
</code></pre>
<h2 id="troubleshooting">🔧 Troubleshooting</h2>
<h3>Server Not in Browser</h3>
<pre><code># Verify sv_lan setting
sv_lan 0 // Must be 0
# Check region
sv_region 1
# Test connectivity
netstat -an | grep 27015
# Wait 5-10 minutes for Steam master server registration
</code></pre>
<h3>Players Can't Connect</h3>
<ul>
<li>Check firewall allows UDP 27015</li>
<li>Verify <code>sv_password</code> is empty or known to players</li>
<li>Ensure server has valid Steam connection</li>
<li>Check <code>sv_pure</code> settings aren't too strict</li>
<li>Review server console for connection errors</li>
</ul>
<h3>MetaMod/SourceMod Not Loading</h3>
<pre><code># Check file structure
tf/
addons/
metamod/
bin/
sourcemod/
plugins/
configs/
# Verify in server console
meta version
sm version
# Check logs
tf/addons/sourcemod/logs/errors_*.log
</code></pre>
<h3>Performance Issues / Low FPS</h3>
<pre><code># Optimize rates
sv_maxrate 100000
sv_maxcmdrate 66
sv_maxupdaterate 66
# Set tickrate (requires startup parameter)
-tickrate 66 // Add to startup command
# Check server FPS
stats // In server console
# Reduce max players if needed
maxplayers 16 // Instead of 24
</code></pre>
<h3>Custom Content Not Downloading</h3>
<pre><code># Enable downloads in server.cfg
sv_allowdownload 1
sv_allowupload 1
net_maxfilesize 64 // MB
# Use FastDL for faster downloads
sv_downloadurl "http://yourdomain.com/tf/"
// Upload maps/materials/sounds to web server
</code></pre>
<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-lightbulb" style="color: #fbbf24; margin-right: 8px;"></i>Pro Tips</h3>
<ul style="color: #fef3c7; line-height: 1.8;">
<li><strong>Tickrate:</strong> TF2 defaults to 66 tick - use <code>-tickrate 66</code> for consistency</li>
<li><strong>sv_pure:</strong> Set to 2 for competitive, 1 for casual with custom content</li>
<li><strong>Class limits:</strong> Use tournament cvars for competitive format restrictions</li>
<li><strong>Crits:</strong> Disable random crits in competitive: <code>tf_weapon_criticals 0</code></li>
<li><strong>Spread:</strong> Disable random spread: <code>tf_use_fixed_weaponspreads 1</code></li>
<li><strong>FastDL:</strong> Essential for custom maps - set up web server for fast downloads</li>
<li><strong>Logs.tf:</strong> Use for match statistics and competitive logging</li>
</ul>
</div>
<h2>Resources</h2>
<ul>
<li><a href="https://wiki.teamfortress.com/wiki/Windows_dedicated_server" target="_blank">Official TF2 Dedicated Server Wiki</a></li>
<li><a href="https://wiki.alliedmods.net/Introduction_to_SourceMod_Plugins" target="_blank">SourceMod Plugin Development</a></li>
<li><a href="https://forums.alliedmods.net/forumdisplay.php?f=108" target="_blank">AlliedModders TF2 Forum</a></li>
<li><a href="https://comp.tf/" target="_blank">Competitive TF2 Community</a></li>
<li><a href="https://logs.tf/" target="_blank">Logs.tf - Match Statistics</a></li>
<li><a href="https://tf2maps.net/" target="_blank">TF2Maps - Custom Map Community</a></li>
</ul>
<h3>Port Forwarding</h3>
<pre><code># Required ports:
UDP 27015 - Game server

View file

@ -1,7 +1,7 @@
{
"name": "Team Fortress 2",
"description": "Setup and configuration guide for Team Fortress 2 game servers",
"description": "Comprehensive guide for TF2 dedicated servers with SourceMod plugins, all game modes, competitive configs, and class-based FPS hosting",
"category": "game",
"order": 110,
"complete": false
"order": 15,
"complete": true
}