====== Left 4 Dead 2 server quick start ======
//Note: if using modern Ubuntu or Debian 32-bit, first do: //''sudo apt-get install lib32gcc1''
===== Auto-install script =====
wget -c http://storefront.steampowered.com/download/hldsupdatetool.bin || exit
chmod +x hldsupdatetool.bin || exit
./hldsupdatetool.bin || exit
test -e go || cat < go
export RDTSC_FREQUENCY=2500.000000
cd left4dead2
./srcds_run l4d -autoupdate +hostport 27015 +ip 0.0.0.0 +exec server.cfg
EOL
chmod +x go
mkdir -p left4dead2/left4dead2/cfg
ln -s left4dead2/left4dead2/cfg/server.cfg .
ln -s left4dead2/left4dead2/motd.txt .
ln -s left4dead2/left4dead2/host.txt .
cat < server.cfg
hostname "ZOMBONI 9003"
rcon_password "XXXXX"
z_difficulty "advanced"
sv_region 0
sv_gametypes "coop, versus, survival, scavenge"
sv_allow_lobby_connect_only 0
EOL
echo './steam -command update -game left4dead2 -dir .' > update
chmod +x update
./update ; ./update
===== Manual install and config =====
Get steam:
wget http://storefront.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
Install:
./steam -command update -game left4dead2 -dir .
Three useful files:
left4dead2/left4dead2/cfg/server.cfg -- Server config (doesn't exist by default)
left4dead2/left4dead2/motd.txt -- Message of the day (either text, or a URL to a page)
left4dead2/left4dead2/host.txt -- Banner for the server (a URL to HTML that fills banner-like dimensions)
Launch script:
export RDTSC_FREQUENCY=2500.000000
cd left4dead2
./srcds_run l4d -autoupdate +hostport 28015 +ip 0.0.0.0 +exec server.cfg
Sample server.cfg (locks the server down to so it can only be requested directly (see below)):
hostname "ZOMBONI 9003"
rcon_password "XXXXX"
z_difficulty "advanced"
sv_region 0
sv_gametypes "coop, versus, survival, scavenge"
sv_allow_lobby_connect_only 0
===== Private server =====
By default, the server will be open to all comers. The "sv_allow_lobby_connect_only 0" in the server config above prevents this. To allow YOU to use it, use the "mm_dedicated_force_servers" console command before hitting "go" in the game lobby. This command supports IP addresses only (no hostnames). Example:
mm_dedicated_force_servers 100.102.104.106:27015
To avoid having to type this, you can add a key bind to your game to set it. Edit "''steamapps\common\left 4 dead 2\left4dead2\cfg\config.cfg''" and add the line:
bind "F12" "mm_dedicated_force_servers 100.102.104.106:27015"
Then, in game, just hit F12 any time to make the game use your server.
===== Addons =====
Script to update the addons list when new addons are introduced ("remake-addonlist.pl"):
#!/usr/bin/perl
use strict;
my $addonlist = "left4dead2/left4dead2/addonlist.txt";
my $addondir = "left4dead2/left4dead2/addons";
rename($addonlist,"$addonlist.old");
open FP, "> $addonlist" or die "$addonlist: $!\n";
print FP <