Issues modifying L4D2 server to run 8-player co-op

Tek7

CGA President, Tribe of Judah Founder & President
Staff member
I posted the following to the Allied Modders forum regarding problems getting 8-player co-op to run on our server:
I'm currently working on modifying a Linux L4D2 server for 8-player co-op. The server is hosted by GameServers.com and there are 8 total slots available.

We have the following installed:
  • Metamod 1.9.0 741
  • Sourcemod 1.4.0 1389
  • L4DToolz 1.0.0.10RC3
  • bebop 0.2 beta
  • L4D SuperVersus 1.5.4
From the Steam Group Servers list, our server shows as having 8 slots for co-op.

When a player joins the server and another player views the game info from a Steam chat window, the game displays as having 8 slots; however, if a person views the game from the "Friends' Games" list (I forget exactly what it's called) in the lower-left corner of the L4D2 main menu, the game shows as having only 4 slots.

The problem is that once there are 4 players on the server, a 5th player can not join and receives the error "Failed to join session because the session did not have enough open slots."

Here are the results for diagnostic commands:

meta list

20:55:18 Listing 4 plugins:
[01] L4DToolZ (1.0.0.10RC2) by Ivailosp
[02] SourceMod (1.4.0-dev) by AlliedModders LLC
[03] Left 4 Downtown 2 Extension (0.5.2.3) by Igor "Downtown1" Smirnov / Andrew "XBetaAlpha" Burrows / AtomicStryker / Michael "ProdigySim" Busby
[04] SDK Tools (1.4.0-dev) by AlliedModders LLC

sm exts list

20:55:42 [SM] Displaying 8 extensions:
[01] Automatic Updater (1.4.0-dev): Updates SourceMod gamedata files
[02] Webternet (1.4.0-dev): Extension for interacting with URLs
[03] Left 4 Downtown 2 Extension (0.5.2.3): Downtown1's extension to perform useful L4D1/L4D2 calls
[04] BinTools (1.4.0-dev): Low-level C/C++ Calling API
[05] SDK Tools (1.4.0-dev): Source SDK Tools
[06] Top Menus (1.4.0-dev): Creates sorted nested menus
[07] Client Preferences (1.4.0-dev): Saves client preference settings
[08] SQLite (1.4.0-dev): SQLite Driver

sm plugins list

20:56:02 [SM] Listing 32 plugins:
01 "Basic Comm Control" (1.4.0-dev) by AlliedModders LLC
02 "Sound Commands" (1.4.0-dev) by AlliedModders LLC
03 "L4D SuperVersus" (1.5.4) by DDRKhat
04 "Digestion" (1.2) by Oshroth
05 "SnareSpeak" (1.0.2) by Sky
06 "Client Preferences" (1.4.0-dev) by AlliedModders LLC
07 "Basic Info Triggers" (1.4.0-dev) by AlliedModders LLC
08 "[L4D2] PowerUps rush" (2.0.1) by Dusty1029 (a.k.a. {L.2.K} LOL)
09 "Survivor Bot Takeover" (0.8) by Mikko Andersson (muukis)
10 "Anti-Flood" (1.4.0-dev) by AlliedModders LLC
11 "Basic Ban Commands" (1.4.0-dev) by AlliedModders LLC
12 "Admin Menu" (1.4.0-dev) by AlliedModders LLC
13 "[L4D2] Hidden Ability Hints" (1.6b) by Thraka
14 "bebop.smx"
15 "Basic Chat" (1.4.0-dev) by AlliedModders LLC
16 "L4D2 Versus Waterbrake" (1.1.1) by AtomicStryker
17 "Admin File Reader" (1.4.0-dev) by AlliedModders LLC
18 "[L4D2] Weapon Unlock" (0.8.1) by Crimson_Fox
19 "L4D2 Ready Up" (0.17.3) by Downtown1 and Frustian
20 "Fun Commands" (1.4.0-dev) by AlliedModders LLC
21 "Player Commands" (1.4.0-dev) by AlliedModders LLC
22 "Melee In The Saferoom" (2.0.5) by N3wton
23 "[L4D2] Infected Release" (1.3a) by Thraka
24 "L4D Vote Manager 2" (1.5.5) by Madcap
25 "Fun Votes" (1.4.0-dev) by AlliedModders LLC
26 "Reserved Slots" (1.4.0-dev) by AlliedModders LLC
27 "Jockey jump" (1.0.3) by Die Teetasse
28 "L4D2 Gun Control" (1.1.2) by AtomicStryker
29 "Basic Votes" (1.4.0-dev) by AlliedModders LLC
30 "Admin Help" (1.4.0-dev) by AlliedModders LLC
31 "Basic Commands" (1.4.0-dev) by AlliedModders LLC
32 Disabled: "Nextmap" (1.4.0-dev) by AlliedModders LLC

Here are the contents of cfg/sourcemod/l4d_superversus.cfg:

// This file was auto-generated by SourceMod (v1.2.3)
// ConVars for plugin "l4d_superversus.smx"


// Give extra survivors HP packs? (1 for extra medpacks)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_XtraHP "1"

// Max amount of infected (will not affect bots)
// -
// Default: "4"
// Minimum: "1.000000"
// Maximum: "18.000000"
l4d_infected_limit "4"

// Should we clear Lobby reservaton? (For use with Left4DownTown extension ONLY)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_killreservation "1"

// Set tanks HP based on Survivor Count
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_supertank "1"

// Maximum amount of survivors
// -
// Default: "4"
// Minimum: "1.000000"
// Maximum: "18.000000"
l4d_survivor_limit "8"

// Tanks HP Multiplier (multi*(survivors-4))
// -
// Default: "0.25"
// Minimum: "0.010000"
// Maximum: "1.000000"
l4d_tank_hpmulti "0.25"

And finally, here are the relevant lines from our server.cfg:
sv_visiblemaxplayers "8"

exec banned_user.cfg
exec banned_ip.cfg

sv_maxplayers "8"
sv_removehumanlimit "1"
// sv_unlock_sb_add "1"
sv_force_unreserved "1"

l4d_maxplayers 8
// l4d_maxplayers "-1"
l4d_survivor_limit 8

And according to GameServers.com, this is our startup command line:
GAME_IP=REMOVED
GAME_PORT=27015
SLOTS=8

./srcds_run -tickrate 33 -game left4dead2 -ip $GAME_IP +port $GAME_PORT +maxplayers $ +map c1m1_hotel

If anyone can provide any helpful information, I would greatly appreciate it.

UPDATE: Here's an excerpt from the server log:
mlds.sh: Starting Server
Server will auto-restart if there is a crash.
Running a benchmark to measure system clock frequency...
Finished RDTSC test. To prevent the startup delay from this benchmark, set the environment variable RDTSC_FREQUENCY to 2493.000000 on this system. This value is dependent upon the CPU clock speed and architecture and should be determined separately for each server. The use of this mechanism for timing can be disabled by setting RDTSC_FREQUENCY to 'disabled'.
#Using breakpad minidump system
Using breakpad crash handler
#
#Console initialized.
#Game.dll loaded for "Left 4 Dead 2"
Server is hibernating
ConVarRef test_progression_loop doesn't point to an existing ConVar
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
Parent cvar in server.dll not allowed (spit_scaling_min_scale)
Game supporting (2) split screen players
maxplayers set to 18
KeyValues Error: RecursiveLoadFromBuffer: got } in key in file missions/25tolifemission.txt
mission, poster,
KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file missions/deadseries.txt
mission, (*modes*), (*versus*), (*4*), (*versus_boss_spawning*),
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Installing breakpad exception handler for appid(0)/version(4490)
Unknown command "port"
maxplayers set to 18
Unknown command "mat_bloom_scalefactor_scalar"
Network: IP REMOVED, mode MP, dedicated Yes, ports 27015 SV / 0 CL
---- Host_NewGame ----
maxplayers set to 32
Host_NewGame on map c1m1_hotel
L 04/15/2011 - 21:23:01: -------- Mapchange to c1m1_hotel --------
L 04/15/2011 - 21:23:01: [bebop.smx] +-------------------------------------------+
L 04/15/2011 - 21:23:01: [bebop.smx] | PLUGIN START |
L 04/15/2011 - 21:23:01: [bebop.smx] +-------------------------------------------+
L 04/15/2011 - 21:23:01: [bebop.smx] | Version: 0.2 beta |
L 04/15/2011 - 21:23:01: [bebop.smx] +-------------------------------------------+
L 04/15/2011 - 21:23:01: [bebop.smx] PLUGIN_LOAD -> NOTICE: gamedir is \left4dead2. setting mp_gamemode convar flags to unprotected
L 04/15/2011 - 21:23:01: [bebop.smx] PLUGIN_LOAD -> NOTICE: gamemode is COOP. hooking events...
L 04/15/2011 - 21:23:01: [bebop.smx] HOOKED_EVENTS -> NOTICE: hooked events
L 04/15/2011 - 21:23:01: [bebop.smx] PLUGIN_LOAD -> NOTICE: gamedir is \left4dead2. restoring original mp_gamemode convar flags
ConVarRef room_type doesn't point to an existing ConVar
Executing dedicated server config file
Initializing Director's script
Couldn't find any entities named fire13_timer, which point_template fire13_template is specifying.
Couldn't find any entities named fire13_clip, which point_template fire13_template is specifying.
Couldn't find any entities named fire13_smoke, which point_template fire13_template is specifying.
Couldn't find any entities named fire13_fog_volume, which point_template fire13_template is specifying.
Couldn't find any entities named fire14_timer, which point_template fire14_template is specifying.
Couldn't find any entities named fire14_clip, which point_template fire14_template is specifying.
Couldn't find any entities named fire14_smoke, which point_template fire14_template is specifying.
Couldn't find any entities named fire14_fog_volume, which point_template fire14_template is specifying.
Couldn't find any entities named fire15_timer, which point_template fire15_template is specifying.
Couldn't find any entities named fire15_clip, which point_template fire15_template is specifying.
Couldn't find any entities named fire15_smoke, which point_template fire15_template is specifying.
Couldn't find any entities named fire15_fog_volume, which point_template fire15_template is specifying.
Couldn't find any entities named fire16_timer, which point_template fire16_template is specifying.
Couldn't find any entities named fire16_clip, which point_template fire16_template is specifying.
Couldn't find any entities named fire16_smoke, which point_template fire16_template is specifying.
Couldn't find any entities named fire16_fog_volume, which point_template fire16_template is specifying.
Couldn't find any entities named sound, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire03-sound, which point_template fire03-template is specifying.
Couldn't find any entities named fire04-sound, which point_template fire04-template is specifying.
Couldn't find any entities named fire10-sound, which point_template fire10-template is specifying.
Couldn't find any entities named fire27-sound, which point_template fire27-template is specifying.
Couldn't find any entities named fire28-sound, which point_template fire28-template is specifying.
Couldn't find any entities named fire_ballroom_02-sound, which point_template fire_ballroom_02-template is specifying.
Couldn't find any entities named fire_ballroom_01-sound, which point_template fire_ballroom_01-template is specifying.
Couldn't find any entities named fire_ballroom_03-sound, which point_template fire_ballroom_03-template is specifying.
Couldn't find any entities named fire_ballroom_04-sound, which point_template fire_ballroom_04-template is specifying.
Couldn't find any entities named fire_ballroom_05-sound, which point_template fire_ballroom_05-template is specifying.
Couldn't find any entities named fire_ballroom_06-sound, which point_template fire_ballroom_06-template is specifying.
Couldn't find any entities named fire_ballroom_07-particles, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_07-point1, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_07-point3, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_07-point5, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_07-point6, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_07-hurt, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_07-sound, which point_template fire_ballroom_07-template is specifying.
Couldn't find any entities named fire_ballroom_08-sound, which point_template fire_ballroom_08-template is specifying.
Couldn't find any entities named fire_ballroom_09-sound, which point_template fire_ballroom_09-template is specifying.
Couldn't find any entities named fire_ballroom_10-sound, which point_template fire_ballroom_10-template is specifying.
Couldn't find any entities named fire_ballroom_11-sound, which point_template fire_ballroom_11-template is specifying.
Couldn't find any entities named inferno02-sound, which point_template inferno02-template is specifying.
prop_door_rotating has Door model (models/props_downtown/metal_door_112_dm03_01.mdl) with no door_options! Verify that SKIN is valid, and has a corresponding options block in the model QC file
prop_door_rotating has Door model (models/props_downtown/metal_door_112_dm03_01.mdl) with no door_options! Verify that SKIN is valid, and has a corresponding options block in the model QC file
WARNING: orator at 454 5671 2684 missing modelname
Attempting to precache model, but model name is NULL
Commentary: Loading commentary data from maps/c1m1_hotel_commentary.txt.
Initializing Director's script
Building path...
path: ./player/jockey/voice/attack/jockey_loudattack01_wet.wav
Setting breakpad minidump AppID = 550
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Failed to load Steam ServiceServiceStart: failed to startexec: couldn't exec banned_user.cfg
exec: couldn't exec banned_ip.cfg
unreserved_ptr init error
L 04/15/2011 - 21:23:03: [LEFT4DOWNTOWN] PlayerSlots -- Offset for 'ValveRejectServerFullFirst' is incorrect
Unknown command "/"
Unknown command "snarespeak_allowboomer"
Unknown command "snarespeak_boomertime"
Unknown command "snarespeak_endofround_alltalk"
Unknown command "snarespeak_printchannel"
Unknown command "snarespeak_startofround_alltalk"
Unknown command "snarespeak_version"
Connection to Steam servers successful.
VAC secure mode is activated.
If any of you have suggestions for resolving the issue, please post a reply.
 
Back
Top