diff --git a/modules/billing/docs.php b/modules/billing/docs.php index 41159682..15d95e58 100644 --- a/modules/billing/docs.php +++ b/modules/billing/docs.php @@ -134,6 +134,9 @@ uksort($grouped, function($a, $b) use ($grouped) {
+ + +Insurgency: Sandstorm is available for hosting on our platform. This guide covers the basics of setting up and managing your Insurgency: Sandstorm server.
+Tactical team-based FPS with realistic combat mechanics
27102- 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. -
+| Engine: | Unreal Engine 4 |
| Developer: | New World Interactive |
| App ID: | 581320 (Dedicated Server) |
| Default Ports: | 27102 (Game), 27131 (Query), 27015 (RCON) |
| Max Players: | 8v8 (16 players typical), up to 32 possible |
| Game Modes: | Push, Firefight, Skirmish, Frontline, Checkpoint, Outpost, Survival |
| Platforms: | Linux, Windows |
To create a Insurgency: Sandstorm server:
-After your server is created, you can configure it through the control panel:
-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.
-Servers are automatically started after creation. You can stop/start your server from the control panel.
- -Use your server's IP address and port to connect from the game client.
- -Access your server files via FTP using the credentials provided in your control panel.
- -If you need assistance with your Insurgency: Sandstorm server:
+| Port | +Protocol | +Purpose | +Required? | +
|---|---|---|---|
27102 |
+ UDP | +Game Port (client connections) | +✓ Required | +
27131 |
+ UDP | +Query Port (server browser) | +✓ Required | +
27015 |
+ TCP | +RCON Port (remote administration) | +Optional Recommended | +
Note: Ports are configurable in Game.ini and Engine.ini. Default ports shown above.
+ +# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+Configuration files are in Insurgency/Saved/Config/LinuxServer/ (Linux) or Insurgency/Saved/Config/WindowsServer/ (Windows):
Edit Insurgency/Saved/Config/LinuxServer/Engine.ini:
[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
+
+
+Edit Insurgency/Saved/Config/LinuxServer/Game.ini:
[/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
+
+
+Create Insurgency/Saved/Config/LinuxServer/MapCycle.txt:
# 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")
+
+
+| Mode | +Description | +Players | +
|---|---|---|
| Push | +Attackers push through objectives, defenders hold ground | +8v8 (16) | +
| Firefight | +Fast-paced 3 objective control, single life per round | +5v5 (10) | +
| Frontline | +Tug-of-war over middle objectives with respawn waves | +8v8 (16) | +
| Skirmish | +Elimination with limited respawns, capture objectives to gain more | +8v8 (16) | +
| Mode | +Description | +Players | +
|---|---|---|
| Checkpoint | +Team captures objectives against AI defenders | +Up to 8 co-op | +
| Outpost | +Defend single objective against AI waves (Horde mode) | +Up to 8 co-op | +
| Survival | +Extract-based co-op with permadeath and limited resources | +Up to 8 co-op | +
Most maps support multiple lighting scenarios:
+RCON allows remote administration. Configure in startup parameters or config files.
+ +# Player management
+kick [PlayerName] [Reason]
+ban [PlayerName]
+listplayers
+
+# Map control
+travel [MapName]
+restartround
+
+# Server settings
+say [Message]
+setnextmap [MapName]
+
+
+In-game console (tilde key ~):
+# Admin commands (requires admin login)
+adminlogin [password]
+kick [PlayerName]
+ban [PlayerName]
+travel [MapName]
+restartround
+say [Message]
+
+
+Insurgency: Sandstorm supports Steam Workshop mods:
+Subscribe to mods on Steam Workshop, then add their IDs to your startup command:
+-Mods=123456789,987654321
+
+
+#!/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
+
+
+@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
+
+
+MapName?Scenario=ScenarioName?Lighting=Day - Start map with scenario-Port=27102 - Game port-QueryPort=27131 - Server browser query port-MaxPlayers=16 - Maximum players (8v8 typical)-AdminList=Admins - Admin list file (Admins.txt)-MapCycle=MapCycle - Map rotation file (MapCycle.txt)-Mods - Enable Workshop mods-log - Enable detailed logging-hostname="Server Name" - Server name in browser-password=serverpass - Server password (optional)# 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
+
+
+MaxClientRate in Engine.ini (try 50000-100000)MaxPlayers if server hardware is limited# 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
+
+
+MaxPlayers isn't reachedInsurgency/Saved/Logs/# 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
+
+
+Insurgency/Saved/Logs/Insurgency.logKilling Floor is available for hosting on our platform. This guide covers the basics of setting up and managing your Killing Floor server.
+7707- 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. -
+| Engine: | Unreal Engine 2.5 (Modified) |
| Developer: | Tripwire Interactive |
| App ID: | 215350 |
| Game Port: | 7707 UDP (default) |
| Query Port: | 7708 UDP (default) |
| Web Admin: | 8075 TCP (default) |
| Max Players: | 6 (standard), up to 32 with mods |
| Game Modes: | Story, Objective |
| Perks: | 7 classes (Berserker, Commando, Support, Sharpshooter, etc.) |
| Platform: | Windows, Linux |
To create a Killing Floor server:
-After your server is created, you can configure it through the control panel:
-Killing Floor 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.
-Servers are automatically started after creation. You can stop/start your server from the control panel.
+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.
-Use your server's IP address and port to connect from the game client.
- -Access your server files via FTP using the credentials provided in your control panel.
- -If you need assistance with your Killing Floor server:
+💡 Note: Port numbers are configurable. Defaults shown above. Multiple servers require unique port combinations (e.g., Game: 7707, 7717; Query: 7708, 7718).
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+KF server configuration is in System/ directory:
Edit System/KillingFloor.ini:
[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
+
+
+
+| Difficulty | +Value | +Specimen Health | +Description | +
|---|---|---|---|
| Beginner | +1.0 |
+ 50% | +New players learning the game | +
| Normal | +2.0 |
+ 100% | +Standard difficulty | +
| Hard | +4.0 |
+ 150% | +Challenging gameplay | +
| Suicidal | +5.0 |
+ 200% | +Very difficult, experienced teams | +
| Hell on Earth | +7.0 |
+ 250% | +Extreme challenge, elite players | +
Edit System/KillingFloor.ini:
[WebAdmin.WebAdmin]
+bEnabled=True
+ListenPort=8075
+
+
+Open browser to: http://your-server-ip:8075
Default login: Admin with the password set in AdminPassword in KillingFloor.ini
| Mode | +Description | +Waves | +
|---|---|---|
| Story Mode | +Standard wave-based survival with Patriarch finale | +4, 7, or 10 + Boss | +
| Objective Mode | +Complete map-specific objectives while surviving waves | +Varies by map | +
Edit System/KillingFloor.ini:
[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
+
+
+| Perk | +Role | +Primary Weapons | +Level Cap | +
|---|---|---|---|
| Berserker | +Tank/Melee DPS | +Katana, Claymore, Fire Axe | +6 | +
| Commando | +Trash Cleaner | +SCAR, Bullpup, AK-47 | +6 | +
| Support Specialist | +Shotgun Expert | +AA12, Hunting Shotgun | +6 | +
| Sharpshooter | +Precision Sniper | +Crossbow, M14 EBR, Lever Action | +6 | +
| Medic | +Healer/Support | +MP7M, MP5M | +6 | +
| Demolitionist | +Explosive Specialist | +M79, M32, LAW, Pipe Bombs | +6 | +
| Firebug | +Area Denial/DoT | +Flamethrower, MAC-10 | +6 | +
Perks level from 0 to 6 based on completing requirements:
+Place mutator files in System/ directory, then add to KillingFloor.ini:
[Engine.GameEngine]
+ServerActors=MyMutator.MyMutatorClass
+ServerPackages=MyMutator
+
+
+Allow custom maps and mutators:
+[IpDrv.TcpNetDriver]
+AllowDownloads=True
+
+[Engine.GameEngine]
+CacheSizeMegs=32
+
+
+#!/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
+
+
+@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
+
+
+server MapName.rom - Start with specific map?game=KFMod.KFGameType - Specify game mode?VACSecured=true - Enable VAC anti-cheat-port=7707 - Game port-queryport=7708 - Server browser port-nohomedir - (Linux) Don't use home directory for configs-ini=KillingFloor.ini - Specify config file# 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
+
+
+# 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
+
+
+MaxPlayers in KillingFloor.iniNetServerMaxTickRate=20-benchmark flag to test server performance# 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/
+
+
+VACSecured=true)System/KFStatsAndAchievements.ini for errorsKilling Floor 2 is available for hosting on our platform. This guide covers the basics of setting up and managing your Killing Floor 2 server.
+27015- 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. -
+| Engine: | Unreal Engine 3 (Modified) |
| Developer: | Tripwire Interactive |
| App ID: | 232130 |
| Game Port: | 7777 UDP (default) |
| Query Port: | 27015 UDP (default) |
| Web Admin: | 8080 TCP (default) |
| Max Players: | 6 (standard), up to 32 with mods |
| Game Modes: | Survival, Endless, Weekly Outbreak, Versus Survival |
| Perks: | 10 unique classes (Berserker, Commando, Medic, etc.) |
| Platform: | Windows, Linux |
To create a Killing Floor 2 server:
-After your server is created, you can configure it through the control panel:
-Killing Floor 2 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.
-Servers are automatically started after creation. You can stop/start your server from the control panel.
+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.
-Use your server's IP address and port to connect from the game client.
- -Access your server files via FTP using the credentials provided in your control panel.
- -If you need assistance with your Killing Floor 2 server:
+💡 Note: Port numbers are configurable. Defaults shown above. Multiple servers require unique port combinations (e.g., Game: 7777, 7778; Query: 27015, 27016).
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+KF2 server configuration is split across multiple .ini files in KFGame/Config/:
Edit KFGame/Config/PCServer-KFEngine.ini:
[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
+
+
+Edit KFGame/Config/PCServer-KFGame.ini:
[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)
+
+
+| Difficulty | +Value | +Zed Health | +Recommended For | +
|---|---|---|---|
| Normal | +0 |
+ 100% | +New players, casual play | +
| Hard | +1 |
+ 135% | +Intermediate players | +
| Suicidal | +2 |
+ 185% | +Experienced teams | +
| Hell on Earth | +3 |
+ 255% | +Elite players, competitive | +
Edit KFGame/Config/KFWeb.ini:
[IpDrv.WebServer]
+bEnabled=True
+ListenPort=8080
+
+[WebAdmin.WebAdmin]
+bEnabled=True
+AuthenticationClass=WebAdmin.MultiWebAdminAuth
+
+[WebAdmin.Chatlog]
+Filename=../Logs/chat.log
+bIncludeTimeStamp=True
+
+
+# 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
+
+
+Open browser to: http://your-server-ip:8080
| Mode | +Description | +Waves | +
|---|---|---|
| Survival | +Standard wave-based mode with boss at the end | +4, 7, or 10 + Boss | +
| Endless | +Continuous waves with periodic boss fights | +Infinite | +
| Weekly Outbreak | +Rotating special modifiers (Poundemonium, Bobble Zed, etc.) | +4 waves | +
| Versus Survival | +PvP mode - players control Zeds vs Survivors | +4 rounds | +
Subscribe to Workshop items and add to PCServer-KFEngine.ini:
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
+ServerSubscribedWorkshopItems=123456789 # Workshop item ID
+ServerSubscribedWorkshopItems=987654321 # Add multiple lines for multiple items
+
+
+| Perk | +Role | +Primary Weapons | +
|---|---|---|
| Berserker | +Tank/Melee DPS | +Eviscerator, Pulverizer, Katana | +
| Commando | +Trash Killer | +SCAR, AK-12, M16 M203 | +
| Medic | +Healer/Support | +Medic Assault Rifle, HMTech-501 | +
| Demolitionist | +Explosive Specialist | +RPG-7, M79, C4 | +
| Firebug | +Area Denial/DoT | +Flamethrower, Microwave Gun | +
| Gunslinger | +Precision DPS | +Dual Magnums, AF2011-A1 | +
| Sharpshooter | +Long-range Sniper | +M14 EBR, Railgun, Crossbow | +
| Support | +Ammo/Armor Specialist | +AA-12, Doomstick | +
| SWAT | +Close-range Tank | +Kriss, P90, MP7 | +
| Survivalist | +Flexible/Hybrid | +Any weapon type | +
#!/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
+
+
+@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
+
+
+KF-MapName - Starting map?Game= - Game mode class path?Difficulty= - 0-3 (Normal, Hard, Suicidal, Hell on Earth)?GameLength= - 0-2 (Short 4 waves, Medium 7, Long 10)?MaxPlayers=6 - Maximum players-Port=7777 - Game port-QueryPort=27015 - Server browser port-WebAdminPort=8080 - Web Admin port# 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
+
+
+# Verify KFWeb.ini settings
+[IpDrv.WebServer]
+bEnabled=True
+ListenPort=8080
+
+# Check firewall allows TCP 8080
+# Access via: http://server-ip:8080
+
+
+MaxPlayers to 4 or lowerNetServerMaxTickRate=20 in PCServer-KFEngine.iniResX=640, ResY=480bAllowBloodDecals=False# 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
+
+
+MaxPlayers settingKFGame/Logs/Left 4 Dead is available for hosting on our platform. This guide covers the basics of setting up and managing your Left 4 Dead server.
+27015- 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. -
+| Engine: | Source Engine |
| Developer: | Valve Corporation |
| App ID: | 222840 |
| Default Port: | 27015 UDP/TCP |
| Max Players: | 8 default (4v4 Versus), up to 32 with mods |
| Difficulty: | Easy, Normal, Advanced, Expert |
| Game Modes: | Campaign, Versus, Survival |
| RCON: | Supported (same port as game) |
| Platform: | Windows, Linux |
| Control: | RCON, SourceMod, Console |
To create a Left 4 Dead server:
-After your server is created, you can configure it through the control panel:
-Left 4 Dead 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.
-Servers are automatically started after creation. You can stop/start your server from the control panel.
+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.
-Use your server's IP address and port to connect from the game client.
- -Access your server files via FTP using the credentials provided in your control panel.
- -If you need assistance with your Left 4 Dead server:
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+Create or edit left4dead/cfg/server.cfg:
// 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
+
+
+| Mode | +Players | +Description | +
|---|---|---|
| Campaign (Coop) | +1-4 | +Fight through story campaigns as Survivors against AI infected | +
| Versus | +4v4 | +Teams alternate as Survivors and Special Infected | +
| Survival | +1-4 | +Hold out against endless waves in small challenge maps | +
All 5 original campaigns included:
+ +| Campaign | +Starting Map | +Maps | +Setting | +
|---|---|---|---|
| No Mercy | +l4d_hospital01_apartment |
+ 5 | +Fairfield (hospital rooftop escape) | +
| Crash Course | +l4d_garage01_alleys |
+ 2 | +Riverside (truck depot) | +
| Death Toll | +l4d_river01_docks |
+ 5 | +Rural Pennsylvania (boathouse escape) | +
| Dead Air | +l4d_airport01_greenhouse |
+ 5 | +Metro Airport (airplane escape) | +
| Blood Harvest | +l4d_farm01_hilltop |
+ 5 | +Allegheny National Forest (farmhouse finale) | +
# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+#!/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
+
+
+@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
+
+
+-console - Run with visible console-game left4dead - Specify game directory+map mapname - Starting map+maxplayers 8 - Maximum players (4 for coop, 8 for versus)+mp_gamemode mode - Game mode (coop, versus, survival)-port 27015 - Server port-ip 0.0.0.0 - Bind to all interfaces+exec server.cfg - Execute config file on start# 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)
+
+
+sv_password)# 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
+
+
+# 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
+
+
+# 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
+
+
Left 4 Dead 2 is available for hosting on our platform. This guide covers the basics of setting up and managing your Left 4 Dead 2 server.
-27015- 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. -
+To create a Left 4 Dead 2 server:
-After your server is created, you can configure it through the control panel:
+Left 4 Dead 2 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.
+ +27015 (UDP)27015 (TCP, same as game port)27020 (UDP, optional)Note: 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.
+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
+
+
+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
+
+
+# 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
+
+
+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
+
+
+# Install SteamCMD
+sudo apt update
+sudo apt install steamcmd
-Starting Your Server
-Servers are automatically started after creation. You can stop/start your server from the control panel.
+# Create server directory
+mkdir -p ~/l4d2-server
+cd ~/l4d2-server
-Connecting to Your Server
-Use your server's IP address and port to connect from the game client.
+# Download server files
+steamcmd +login anonymous +force_install_dir ~/l4d2-server +app_update 222860 validate +exit
+
-Access your server files via FTP using the credentials provided in your control panel.
+# 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
+
+
+Create left4dead2/cfg/server.cfg with your settings:
// 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
+
+
+# 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
+
+
+# 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
+
+
+| Mode | +Description | +Players | +ConVar | +
|---|---|---|---|
| Co-op | +4 survivors vs AI infected | +1-4 | +mp_gamemode coop |
+
| Versus | +4v4 PvP (survivors vs special infected) | +2-8 | +mp_gamemode versus |
+
| Survival | +Hold out against endless waves | +1-4 | +mp_gamemode survival |
+
| Scavenge | +4v4 timed gas can collection | +2-8 | +mp_gamemode scavenge |
+
| Realism | +Hardcore co-op (no outlines, harder) | +1-4 | +mp_gamemode realism |
+
| Mutations | +Special rule variants (weekly) | +Varies | +mp_gamemode mutation# |
+
Default starting maps for campaigns:
-If you need assistance with your Left 4 Dead 2 server:
c1m1_hotelc2m1_highwayc3m1_plankcountryc4m1_milltown_ac5m1_waterfrontc6m1_riverbankc7m1_docksc8m1_apartmentc9m1_alleysc10m1_cavesc11m1_greenhousec12m1_hilltopc13m1_alpinecreekEssential for server administration and plugins:
+ +# Download from https://www.sourcemm.net/downloads.php?branch=stable
+# Extract to left4dead2/ directory
+
+# Verify installation - should see "addons/metamod/" folder
+
+
+# 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
+
+
+L4D2 supports Steam Workshop. To auto-download workshop items:
+ +# 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
+
+
+# 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
+
+
+# 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
+
+
+sv_lan 0 is set correctlysv_allow_lobby_connect_only 0 to allow direct connects# 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/
+
+
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
+
+
+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
+
+
+# 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
+
+
+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
+
+
Create tf/cfg/server.cfg:
// 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
+| Mode | +Description | +Example Maps | +
|---|---|---|
| Capture the Flag | +Capture enemy intelligence briefcase | +ctf_2fort, ctf_turbine | +
| Control Point | +Capture all control points | +cp_dustbowl, cp_gorge | +
| Payload | +Push/stop cart to destination | +pl_badwater, pl_upward | +
| Payload Race | +Both teams push carts | +plr_hightower, plr_pipeline | +
| King of the Hill | +Control single point for timer | +koth_harvest, koth_viaduct | +
| Arena | +No respawns, last team standing | +arena_lumberyard, arena_well | +
| Mann vs Machine | +Co-op vs AI robot waves | +mvm_decoy, mvm_coaltown | +
| Pass Time | +Sports-like mode with JACK | +pass_brickyard, pass_district | +
Create tf/cfg/mapcycle.txt:
ctf_2fort
+ctf_turbine
+cp_dustbowl
+cp_gorge
+pl_badwater
+pl_upward
+koth_harvest
+koth_viaduct
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+# 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
+
+
+sv_password is empty or known to playerssv_pure settings aren't too strict# 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
+
+
+# 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
+
+
+# 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
+
+
+-tickrate 66 for consistencytf_weapon_criticals 0tf_use_fixed_weaponspreads 1# Required ports:
UDP 27015 - Game server
diff --git a/modules/billing/docs/tf2/metadata.json b/modules/billing/docs/tf2/metadata.json
index 9cd13f06..4a13ba24 100644
--- a/modules/billing/docs/tf2/metadata.json
+++ b/modules/billing/docs/tf2/metadata.json
@@ -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
}