Een handleiding over hoe je een Left 4 Dead 2 server met mods kunt maken en draaien op zowel Windows als Linux!
Left 4 Dead 2 is een populaire first-person shooter en zombie horror game die zich afspeelt in een postapocalyptische wereld overspoeld door zombies. Deze game heeft geweldige modding-ondersteuning en veel mods zijn beschikbaar via de Steam Workshop of via SourceMod plugins.
Het draaien van een server met mods stelt spelers in staat om te verbinden en te genieten van een gedeelde, aangepaste ervaring met de mods die de server heeft geïnstalleerd.
De twee besturingssystemen waar we ons in deze handleiding specifiek op richten zijn Windows 11 en Debian 12 (Linux).
Ik wilde een paar dingen opmerken voordat we verdergaan in deze handleiding.
- De termen
directory(bekend in Linux) enfolder(bekend in Windows) worden onderling verwisselbaar gebruikt. Om het simpel te houden, gebruiken we in de meeste gevallen directory. - Op vergelijkbare wijze gebruiken we bestandspaden gestructureerd als
/like/thisdoorheen de handleiding. Dit formaat wordt gebruikt in Linux, maar op Windows moet je het bestandspad in plaats daarvan structureren als\like\this.
Requirements
Hardware & Network
Left 4 Dead 2-servers verbruiken vrij weinig RAM in vergelijking met servers in andere games zoals Minecraft en Rust. Standaard kunnen tot vier spelers gelijktijdig spelen wanneer spelmodi zoals COOP, Scavenge en meer worden gedraaid, terwijl Versus tot acht spelers gelijktijdig kan ondersteunen. Er zijn SourceMod-plugins die het maxplayers-aantal van de server tot 32 kunnen verhogen!
Voor informatie over de hardware- en netwerkvereisten raad ik aan om het volgende topic te lezen.
https://moddingcommunity.com/blog/hardware-network-requirements-for-source-engine-servers/
Port Forwarding
Als je van plan bent om je server toegankelijk te maken vanaf het internet, moet je mogelijk zowel UDP- als TCP-poorten 27015 via je router forwarden. Deze handleiding behandelt port forwarding niet specifiek. Ik wilde echter wel andere nuttige handleidingen aanbieden over hoe je de poorten die ik net heb genoemd kunt forwarden.
- NordVPN - How to open ports on your router
- No-IP - How to Port Forward – General Guide to Multiple Router Brands
- PortForward - How To Forward a Port
Als je LAN-netwerk werkt als een NAT-netwerk, moet je mogelijk ook een NAT-regel aanmaken.
Downloading The Server Files
De volgende stap is het downloaden van de serverbestanden met behulp van SteamCMD. Lees het volgende topic en houd in gedachten dat de application ID van de Left 4 Dead 2-server 222860 is.
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/
Running The Left 4 Dead 2 Server
Om tijd te besparen gaan we opstartscripts maken voor de Left 4 Dead 2-server. We maken scripts voor zowel Linux als Windows die de server opstarten met de c8m1_apartment-map, wat het eerste level van de No Mercy campaign is. De server wordt gebonden aan alle IP-adressen en interfaces (0.0.0.0) op UDP-poort 27015.
Windows
Als je de nieuwe serverbestanden bekijkt via de Verkenner, zou je een bestand met de naam srcds.exe moeten zien.
We gaan een Batch-bestand/script maken met de naam start-server.bat om de server te starten. Voordat je dit bestand aanmaakt, moet je ervoor zorgen dat je de extensie van het bestand kunt instellen door ervoor te zorgen dat je bestandsextensies kunt bekijken. Als je geen bestandsextensies kunt zien, lees dan hier.
Voeg na het aanmaken van het Batch-bestand de volgende inhoud toe.
@echo off
.\srcds.exe -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
Je zou nu op het nieuw aangemaakte Batch-bestand moeten kunnen dubbelklikken om de server te starten!
Linux
Na het navigeren naar de directory van de serverbestanden door cd ~/l4d2 of iets vergelijkbaars uit te voeren, zou je de bestanden srcds_run en srcds_linux in de directory moeten zien. We gaan een eenvoudig Bash-script maken om de server te starten.
Er zijn veel verschillende soorten tekstverwerkers die je kunt gebruiken om het script te maken, zoals Nano en Vim, in deze tutorial gebruiken we Nano. We noemen het script start-server.sh.
Gebruik eerst het volgende commando om het nieuwe bestand te bewerken.
nano start-server.sh
Plak vervolgens de volgende inhoud in het bestand.
#!/bin/bash
./srcds_run -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
Als je klaar bent, druk je op CTRL + X en enter om het bestand op te slaan. Als je de inhoud van het bestand wilt bekijken, kun je cat start-server.sh uitvoeren.
Zodra je het bestand hebt opgeslagen, wil je ook de gebruiker toestemming geven om het bestand uit te voeren, wat kan met het onderstaande commando.
chmod u+x start-server.sh

Ten slotte kun je de server starten met het volgende commando.
./start-server.sh

NOTE - Je zou een bericht VAC secure mode is activated moeten zien, tenzij je VAC specifiek hebt uitgeschakeld. Dat gezegd hebbende, als je wilt dat de server toegankelijk is vanaf het internet, zou je ook een bericht Public IP is <your WAN IP> moeten zien, wat uit de bovenstaande screenshot is verwijderd.
Om de server te stoppen, kun je het quit-commando uitvoeren via de serverconsole of op CTRL + C drukken, wat een signaal stuurt om het proces van de server te beëindigen.
Screen gebruiken
Eenmaal geïnstalleerd, kun je ook het screen-commando gebruiken om de server te laten draaien zonder dat je de Linux-terminal open hoeft te houden (op de achtergrond). Ik raad aan om hier meer te lezen over het screen-commando.
Laten we eerst het screen-pakket installeren. Mogelijk moet je uitloggen bij de huidige servers-gebruiker via het exit-commando, aangezien het commando als root of via sudo moet worden uitgevoerd.
Debian/Ubuntu
sudo apt install -y screen

Kopieer vervolgens het opstartcommando van de server en voeg er screen -S <name> voor toe. Hier is een voorbeeld.
screen -S l4d2 ./srcds_run -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
Dit zal de server binnen een screen opstarten. Je kunt je afkoppelen van de screen met standaard CTRL + A + D.
Om de screen weer te koppelen, kun je ofwel screen -r uitvoeren (als er maar één screen open is, koppelt het automatisch aan die ene screen) of screen -r <name>. In het bovenstaande commando hebben we een screen aangemaakt met de naam l4d2. Daarom kunnen we het volgende commando gebruiken om op naam aan de screen te koppelen.
screen -r l4d2
Je kunt ook het opstartscript van de server aanpassen en screen -S <name> ervoor plaatsen, vergelijkbaar met hierboven, zodat het script de server automatisch in een screen opstart.
Serverconfiguratiebestanden aanmaken
De volgende stap is het configureren van de server door twee bestanden aan te maken; autoexec.cfg en server.cfg. Het autoexec.cfg-bestand wordt gebruikt om het speltype van de server in te stellen (bijv. COOP, Versus, enz.) en wordt slechts één keer uitgevoerd bij het opstarten van de server, terwijl het server.cfg-bestand algemene informatie bevat zoals de hostnaam (de weergavenaam in de serverbrowser) en bij het starten van elke map wordt uitgevoerd. Beide bestanden bevinden zich in de left4dead2/cfg-directory.
Het configuratieformaat dat Left 4 Dead 2 binnen deze bestanden gebruikt is <ConVar> "<Value>".
Plak de volgende inhoud in het autoexec.cfg-bestand.
sv_gametypes "coop,survival"
De ConVar sv_gametypes bepaalt welke speltypes de server zal draaien. Je kunt kiezen uit de waarden coop, realism, survival, versus, scavenge, dash, holdout en shootzone. Je kunt ook meerdere waarden opgeven door ze te scheiden met komma's (,). Bijvoorbeeld: coop,versus,survival.
LET OP - Je kunt de waarde van de ConVar sv_gametypes ook instellen via het opstartcommando van de server door +sv_gametypes <...> toe te voegen. Persoonlijk geef ik echter de voorkeur aan het autoexec.cfg-bestand, aangezien er gevallen zijn waarin je toegang tot de command line wilt beperken voor bepaalde gebruikers die toch nog toegang moeten hebben om de speltypes van de server en dergelijke te wijzigen.
Plak vervolgens de volgende inhoud in het server.cfg-bestand en pas de waarden van de ConVars aan naar wens.
hostname "My Server Name"
sv_password ""
rcon_password "CHANGEME"
- De
hostnameis de naam van de server zoals die te zien is in de serverbrowser of op externe websites (alles wat de server bevraagt via A2S-queries). - De
sv_passwordis het wachtwoord dat spelers moeten invoeren voordat ze de server kunnen betreden. Als dit leeg wordt gelaten, verschijnt er geen wachtwoordprompt bij het joinen van de server. - De
rcon_passwordis het wachtwoord dat vereist is voor RCON-toegang. Dit wachtwoord mag alleen bekend zijn bij vertrouwde personen/staf, aangezien gebruikers met dit wachtwoord servercommando's kunnen uitvoeren, mits ze op afstand toegang hebben tot de TCP-poort waarop RCON draait.
Er zijn ook nog veel andere ConVars binnen Left 4 Dead 2 die je mogelijk wilt instellen via het server.cfg-bestand! Hier vind je een goede lijst met ConVars in Left 4 Dead 2.
Performance-ConVars
Er zijn een paar ConVars die je kunt instellen om de prestaties van de server te verbeteren, afhankelijk van je netwerksnelheid, beschikbare bandbreedte en serverhardware.
Lees het volgende deel van de eerder gelinkte gids!
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
Hoe mod je de Left 4 Dead 2-server
Er zijn twee methoden om een Left 4 Dead 2-server te modden.
De meest gebruikelijke methode is om SourceMod en MetaMod op de server te installeren en SourceMod-plugins te installeren.
De minder gebruikelijke methode is om je via de Left 4 Dead 2 workshop te abonneren op items en een tool zoals deze te gebruiken om de bestanden van de addon te extraheren en deze vervolgens aan de server toe te voegen.
Het gebruik van SourceMod en MetaMod om je Left 4 Dead 2-server te modden wordt aanbevolen, aangezien er veel meer plugins en functionaliteit beschikbaar zijn.
SourceMod & MetaMod-plugins installeren
Allereerst moet je SourceMod downloaden en installeren op je Left 4 Dead 2-server. Ik raad aan om de volgende gids te lezen die ik een tijd geleden heb gemaakt over hoe je dit doet!
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
Vervolgens wil je plugins vinden via hier. Over het algemeen bevat de beschrijving van de plugin details over hoe je deze installeert. Het volgende is echter een goede vuistregel.
- Bestanden die eindigen op de bestandsextensie
.spbevatten de broncode van de plugin, geschreven in SourcePawn. - Bestanden die eindigen op de bestandsextensie
.smxzijn de gecompileerde broncode en moeten in deaddons/sourcemod/plugins-directory worden geplaatst. - Bestanden die
games.txt(of iets zoalsl4d2.txt) in de bestandsnaam bevatten zijn meestal gamedata-bestanden en moeten in deaddons/sourcemod/gamedata-directory worden geplaatst. - Bestanden die
phrases.txtin de bestandsnaam bevatten zijn vertaalbestanden en moeten in deaddons/sourcemod/translations-directory worden geplaatst. - Bestanden die eindigen op de bestandsextensies
.soof.dllzijn meestal SourceMod-extensies en moeten in deaddons/sourcemod/extensions-directory worden geplaatst.
In sommige gevallen moet je mogelijk de broncode van de plugins compileren. Lees het volgende topic voor instructies over hoe je dit doet!
https://moddingcommunity.com/blog/how-to-compile-sourcemod-plugins/
Using The Steam Workshop
In sommige gevallen is een mod die je wilt alleen beschikbaar via de Steam Workshop. Dit is gebruikelijk bij custom campaigns. Helaas ondersteunen Left 4 Dead 2-servers de Steam Workshop niet native, in tegenstelling tot andere games zoals Garry's Mod.
Daarom zullen we bestanden uit het/de workshop-item(s) moeten extraheren en toevoegen aan de serverbestanden.
Create A Collection
Het eerste dat we willen doen is een collectie aanmaken. Dit kan je doen binnen de Steam-applicatie zelf of via de website van Steam. In deze gids gebruiken we de Steam-applicatie (ze hebben over het algemeen dezelfde interface).
Navigeer eerst naar Community -> Workshop.

Vervolgens typ je Left 4 Dead 2 in waar het "Search for a Workshop" zegt. Je kunt het item uit het dropdown-menu klikken.

Klik nu op het Browse-dropdown-menu bij het linker-midden van het scherm en klik op Collections.

Klik daarna op Create Collection.

Je wilt vervolgens alle velden op de pagina invullen. In deze gids zal de titel simpelweg "Test Collection" zijn.

Klik ten slotte op de knop Save and continue rechtsonder om de collectie aan te maken.

Hier wil je het numerieke collectie-ID onthouden dat te vinden is in de Steam-URL-balk na ?id=. We hebben dit later nodig.

Bijvoorbeeld, het collectie-ID van de volgende URL is 3386575566.
https://steamcommunity.com/sharedfiles/managecollection/?id=3386575566
NOTE - Als de collectie gepubliceerd en zichtbaar is voor anderen, kunnen gebruikers zich met één klik abonneren op alle mods/addons uit de collectie.
Adding Items To The New Collection
Zoek een workshop-item om aan de collectie toe te voegen door door de Left 4 Dead 2-workshop hier te bladeren, of gebruik een directe link naar het item.
Klik hier op de knop Add to Collection.

Dit brengt een lijst met vakjes van alle collecties die je bezit naar voren. Zorg dat je de collectie aanvinkt waar je het item aan wilt toevoegen en klik op Ok.

Publish Collection
Ga nu terug naar de collectie die je hebt gemaakt en publiceer deze door op de knop Publish te klikken.

Extracting The Addon's Files
Het wordt aangeraden om deze tool te gebruiken om de bestanden van elke addon binnen een collectie te extraheren.
Deze tool is gemaakt met Python en ik raad aan om dit te lezen voor het installeren van Python op Windows en dit voor het installeren van Python op Linux.
Je kunt de tool direct downloaden van GitHub's website hier of gebruik git clone https://github.com/Geam/steam_workshop_downloader als je Git op je systeem hebt geïnstalleerd.
Nadat je Python hebt geïnstalleerd en de tool hebt gedownload, voer je het volgende commando uit.
./workshop.py <Collection ID>
Waarbij <Collection ID> het ID is dat we hierboven hebben opgehaald. Bijvoorbeeld:
./workshop.py 3386575566
Op Windows moet je mogelijk python voor het commando hierboven plaatsen, zoals dit.
python .\workshop.py <Collection ID>
Nadat dit gedaan is, zou je *.vpk-bestanden moeten zien.

Upload/kopieer deze bestanden nu naar de addons/-directory van je server en herstart de server!
Wanneer de server opnieuw gestart wordt, zouden de VPK-bestanden die je aan de addons/-directory hebt toegevoegd automatisch moeten mounten. Als custom campaigns zijn toegevoegd, moet je, om maps te kunnen laden, de bestandsnamen van de maps kennen die eindigen op de bsp-extensie. Als je deze informatie niet kunt vinden, kun je proberen een tool zoals GCFScape te gebruiken om bestanden uit de VPK-bestanden te extraheren. Hiermee kun je de namen van de mapbestanden achterhalen.
Daarnaast kun je het commando show_addon_metadata gebruiken om informatie weer te geven over addons die gemount zijn. Bijvoorbeeld, na het toevoegen van de custom campaign Resident Evil: Side A aan mijn Linux L4D2-server, is dit wat ik zie wanneer ik het commando op mijn server uitvoer.
show_addon_metadata
MISSION: re2birkina (/home/servers/l4d2/left4dead2/addons/762591677.vpk)
Connect To The Server
Laten we nu verbinding maken met de server! Je kunt ofwel verbinding maken met de server via de server browser door openserverbrowser in de developer console uit te voeren, ofwel direct verbinding maken met je server.
Om je developer console te openen, druk op de ` of ~ toets op je toetsenbord. Als je developer console niet werkt, is deze waarschijnlijk uitgeschakeld en moet je hier lezen hoe je deze kunt inschakelen!
Als je direct verbinding wilt maken met de server, moet je het IPv4-adres of de hostname achterhalen waarmee je moet verbinden. Als je server wordt gehost via een dedicated hostingprovider, zou je het benodigde IPv4-adres/hostname op meerdere plekken moeten kunnen vinden, waaronder de volgende.
- Via het webpanel van je hostingprovider.
- Via het publieke IP dat wordt aangekondigd bij het starten van de server.
LET OP - Een IPv4-adres heeft het formaat xxx.xxx.xxx.xxx, terwijl een hostname een naam of domein is (bijv. myserver of myserver.mydomain.com).
Als je zelf op de server bent of de server lokaal gehost wordt, kun je het IP van de server ook achterhalen door je netwerkinterfaces + IP's op te vragen met de commando's ip a of ifconfig op Linux, of ipconfig /all op Windows (gebruik Command Prompt of PowerShell).
Nadat je het IP hebt gevonden, start Left 4 Dead 2 en druk op de \ (of ~) toets op je toetsenbord om de developer console te openen.
Wanneer de developer console verschijnt, typ je connect <ip/hostname> of connect <ip/hostname>:<port>. Omdat we de server hebben gebonden aan de standaard Left 4 Dead 2 poort 27015, hoeven we in dit geval geen poort in te voeren.
Ik gebruik de interne hostname van mijn server, die simpelweg x-gs01 is binnen mijn thuisnetwerk.
connect x-gs01

Je zou nu verbonden moeten zijn met je Left 4 Dead 2 server! Je kunt status typen in je Developer Console om dit te bevestigen.

Veelgestelde Vragen
Ik krijg een "Invalid Platform"-fout bij het downloaden via SteamCMD.
Als je deze fout op Linux tegenkomt bij het downloaden van de Left 4 Dead 2 serverbestanden, loop je waarschijnlijk tegen dit probleem aan dat eind 2024 is ontstaan door een wijziging van Steam.
Er zijn twee oplossingen voor dit probleem, voor zover ik heb kunnen vinden.
-
Gebruik je Steam-inloggegevens bij het inloggen via SteamCMD. Voer bij het uitvoeren van het
login-commando in deze gids je Steam-gebruikersnaam in, gevolgd door een spatie en dan je wachtwoord. Bijv.login whoz MYPASSWORD. -
Voer SteamCMD twee keer uit via één commando, eerst met Windows en daarna met Linux, wat het probleem oplost.
# Use Windows as platform path really quick.
./steamcmd.sh +force_install_dir ../l4d2 +@sSteamCmdForcePlatformType windows +quit
# Finally use Linux which should then start the download successfully.
./steamcmd.sh +force_install_dir ../l4d2 +@sSteamCmdForcePlatformType linux +app_update 222860 +quit
Hoe voeg ik mezelf of anderen toe als admin op de server?
Als je SourceMod en MetaMod hebt geïnstalleerd op je Left 4 Dead 2 server, kun je jezelf of anderen als admin toevoegen.
Voor stappen over hoe je dit doet, lees het volgende topic!
https://moddingcommunity.com/blog/how-to-manage-user-permissions-in-sourcemod/
Hoe kan ik bestandsextensies weergeven en bewerken in Windows?
Om verborgen bestandsextensies te bekijken in Windows 11, klik in File Explorer op View -> Show en zorg dat het vakje File name extensions aangevinkt is.
Dit proces is grotendeels gelijk in andere versies van Windows.
Om bestandsextensies weer te geven in andere versies van Windows, raad ik aan om deze gids te bekijken!
Kan ik een script maken om de serverbestanden automatisch bij te werken?
Ja, dat is mogelijk!
Lees het volgende onderdeel van de eerder genoemde gids! Houd er rekening mee dat de applicatie-ID van de Left 4 Dead 2 server 222860 is!
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/#automation-with-script-files
Hoe schakel ik de developer console in?
Standaard is de developer console niet ingeschakeld in Left 4 Dead 2.
Om deze in te schakelen, start je Left 4 Dead 2 op en klik je op het menu-item Options. Klik vervolgens op Keyboard & Mouse in het dropdown-menu.

Zet vervolgens de optie Allow Developer Console van Disabled naar Enabled.
Klik ten slotte op de Done-knop!
Je zou de console nu moeten kunnen openen door op de ` of ~ toets op je toetsenbord te drukken of deze ingedrukt te houden.

Zie Ook
Ik wilde nog wat nuttige hulpmiddelen en tools delen voor serverbeheerders die hun beheerservaring in Left 4 Dead 2 willen verbeteren.
- Pterodactyl - Een zeer populair open source gameserverpanel voor Linux dat tools biedt om eenvoudig servers te maken en beheren in games zoals Left 4 Dead 2, Counter-Strike, Rust, Minecraft, FiveM, en meer.
Conclusie
Dat is deze gids in een notendop, maar ik hoop in de toekomst nog veel meer gidsen te maken! Op dit punt zou je een werkende Left 4 Dead 2 server moeten hebben met één of meer mods/addons geïnstalleerd.
Als je vragen of feedback hebt over deze gids, reageer dan op het forumtopic hier! Deze gids zal in de loop van de tijd verder worden bijgewerkt en verbeterd.
Join onze Discord server!

