Half-Life 2 Guide

Lambda Fortress: Extended - Official Server Guide for Half-Life 2

Lambda Fortress: Extended – Official Server Guide

Overview

this guide is pretty old, it may still be informative, but is not updated anymore since LF:E shut down and is being remadeA guide on how to run a Lambda Fortress: Extended server on Windows and Linux.Use the sidebar to go to the desired section of the guide.If you have any troubles, the best place to ask for help is the #support channel in the Official LF:E Discord Server[discord.gg].

What is “In-Game” hosting?

Hosting “In-Game” is hosting a listenserver, meaning you are hosting a server from your own PC, via the “Create Server” button on the main menu.
This is the ideal method for playsessions with friends and people you know.
It’s the fastest and easiest to get running.

1. Port Forwarding

On your router, open (portforward) ports ranging from 27000 to 27050, UDP & TCP.
You also have to open these ports on your system firewall.

If you don’t know how to portforward

Check out .
This website[portforward.com] shows port forwarding instructions for every router!

If you don’t know how to open ports on your Windows Firewall

Check out this guide.[www.tomshardware.com]

2. Running the listen server

Now you need to get your public IP.
The simpliest way to get it is to google “What is my ip”.[www.google.com]
Google will show it on the top of the results. Save it somewhere.

Now, run LF:E and open the “Create Server” menu.
Configure the server from there to your preferences.
Make sure that the “LAN” box is UNCHECKED:

Start the server.

Now you should be fine and your server should be visible in the server browser.
If it’s not, simply tell people to join you via the connect console command followed by your IP and the port of the server, like so:

connect XX.XX.XX.XX:27015

However, if you have any troubles or others have trouble connecting, ask for help in the #support channel.

What is “From Steam” hosting?

Hosting “From Steam” is similar to hosting a listenserver. You are still hosting form your PC, but the server is separate from the game, as you are running an external program for the server – the Source Dedicated Server – which is downloadable from Steam.
This is a hosting method for people who don’t want to have their game running all the time to be running the server.

1. Port Forwarding

On your router, forward the ports ranging from 27000 to 27050 for both UDP and TCP.
You also have to open these ports on your system firewall.

If you don’t know how to portforward

Check out .
This website[portforward.com] shows port forwarding instructions for every router!

If you don’t know how to open ports on your Windows Firewall

Check out this guide.[www.tomshardware.com]

2. Download SDK Base 2013 Dedicated Server

To find it, hover over “Library”, then click “Tools” and scroll down until you see it. Install it on the same drive that you installed TF2 on.
If you want to additionally run Ep1 or Ep2 or HL:S maps, you have to have them installed on the same drive that you installed TF2 on.

3. Running the Steam SDK 2013 DS

Before you start the server, you must copy the tf_coop_extended folder to the Source SDK Base 2013 Dedicated Server installation directory
OR
You can make a directory symlink. Run cmd.exe as administrator and use the following command:

mklink /D “<Source SDK 2013 DS folder path with additional ‘tf_coop_extended’ at the end>” “<Your tf_coop_extended folder path>”

Run the Source SDK 2013 Base Dedicated Server.
Pick a map, adjust everything to your preferences, make sure “Network” is set to “Internet”.
You’ll see two games named “Lambda Fortress: Extended”. One won’t let your start the server, you have to try which one works.
If you’re greeted with a nice server control UI, that means the server is up and running.

If you have any troubles, ask for help in the #support channel.

Before we move on

Before we move on

System requirements for hosting Lambda Fortress: Extended on Linux:

Minimum:

  • Decent CPU
  • 512MB RAM
  • 5GB free disk space (HL2 Campaign only)

Recommended:

  • Good CPU
  • 1024MB RAM
  • Over 13GB free disk space

Software requirements:

  • On 64-bit Ubuntu / Debian based distros run:
    sudo dpkg –add-architecture i386; sudo apt update; sudo apt install p7zip lib32gcc1 libstdc++6 libstdc++6:i386 libncurses5:i386 libtinfo5:i386 libcurl4-gnutls-dev:i386

    ⁠ ⁠ On 32-bit run:

    sudo apt install p7zip libstdc++6 libncurses5 libtinfo5 libcurl4-gnutls-dev
  • On 64-bit CentOS / Fedora run:
    sudo yum install p7zip p7zip-plugins libgcc.x86_64 libgcc.i686 glibc.i686 libstdc++.x86_64 libstdc++.i686 ncurses-libs.i686 libcurl.i686

    ⁠ ⁠ * Use dnf instead of yum on Fedora/RHEL.

1. Download SteamCMD for Linux

Create a folder in your user’s home directory and go into it.

cd ~ mkdir lfeserver && cd lfeserver

Next, download the linux SteamCMD Tar archive and unpack it:

curl -O https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar xvzf steamcmd_linux.tar.gz

2. Minimal content installation

This step goes over installing only the necessary content to run the server, namely SDK 2013 Dedicated server and TF2 Dedicated Server. This will allow you to only play the base HL2 campaign. If you wish to play more on your server, see the next step.

Run steamcmd.sh and wait for everything to update.

Now for the required downloads. Type in the following commands, one by one in order:

login anonymous force_install_dir “./Team Fortress 2 Dedicated Server” app_update 232250 force_install_dir ./sdkbase app_update 244310

Note, wait for every command to finish before you type the next. When a command finishes, you should see the

Steam>

show up again.

If after each command you get the message:
“Success! App ‘XXXXXX’ fully installed.”
that means everything installed properly and you can now quit steamcmd by typing:

quit

2b. Extra content installation

This is an extra step and it is not necessary to play the base game.
To play additional campaigns (Episode 1 & 2, Portal and Half-life: Source), you need to install additional content.
If before the installation you had enough free disk space for the “Recommended System Requirements” from step 1, you should be good to go.

Run steamcmd.sh again.
You have to login to your normal account which has the games of which content you want to install purchased (Except for EP1 and EP2, those come free with SDK 2013 Singleplayer).

login <username>

Now download the games you wish to support on your server with the app_update command followed by an app ID.

app_update <id>

App ID’s:
243730 ⁠ – ⁠ Source SDK Base 2013 Singleplayer (Contains EP1 & EP2 content and is free)
340 ⁠ – ⁠ Half-Life 2: Lost Coast
280 ⁠ – ⁠ Half-Life: Source
400 ⁠ – ⁠ Portal

After you’ve downloaded the games you want, run this script to move them to the correct directories:

mkdir ~/lfeserver/Half-Life 2: Episode One/ mkdir ~/lfeserver/Half-Life 2: Episode Two/ mkdir ~/lfeserver/Half-Life 2: Lost Coast/ mkdir ~/lfeserver/Half-Life: Source/ mv ~/Steam/steamapps/common/Source SDK Base 2013 Singleplayer/episodic ~/lfeserver/Half-Life 2: Episode One/ mv ~/Steam/steamapps/common/Source SDK Base 2013 Singleplayer/ep2 ~/lfeserver/Half-Life 2: Episode Two/ mv ~/Steam/steamapps/common/Half-Life 2/lostcoast/ ~/lfeserver/Half-Life 2: Lost Coast/ mv ~/Steam/steamapps/common/Half-Life 2/hl1/ ~/lfeserver/Half-Life: Source/ mv ~/Steam/steamapps/common/Half-Life 2/hl1_hd/ ~/lfeserver/Half-Life: Source/ mv ~/Steam/steamapps/common/Portal/ ~/lfeserver/

2c. Disk space optimizations

You can save some disk space by removing files not needed for the LF:E server, like TF2 maps, some textures and repeating “hl2” folders.
Run the following script to do so:

rm -r ~/lfeserver/Portal/hl2/ rm -r ~/lfeserver/Team Fortress 2 Dedicated Server/tf/maps/ rm -r ~/lfeserver/Team Fortress 2 Dedicated Server/hl2/ rm -r ~/lfeserver/Team Fortress 2 Dedicated Server/tf/resource/ rm -r ~/lfeserver/Team Fortress 2 Dedicated Server/tf/media/ rm -r ~/Steam/steamapps/common/Half-Life 2/ rm -r ~/Steam/steamapps/common/Source SDK Base 2013 Singleplayer/

3. Place LF:E files

Download or upload to the server the latest LF:E files. The official download link is available in the LF:E Discord Server[discord.gg] in the #downloads channel.

To unpack the archive, use the following command if you’re on Ubuntu / Debian based distros:

p7zip -d <archivename>

And the following on Fedora / CentOS / RHEL based distros:

7z x <archivename>

Then, move the unpacked /tf_coop_extended/ folder to the /sdkbase/ directory:

mv tf_coop_extended/ ~/lfeserver/sdkbase/

4. Necessary file links

This step is necessary because Valve, and because maps don’t like mounting.

Go into the /lfeserver/sdkbase/bin/ directory:

cd ~/lfeserver/sdkbase/bin/

and make a soft link for every file with a _srv suffix and name it so that it doesn’t have that suffix with the following script:

ln -s datacache_srv.so datacache.so ln -s dedicated_srv.so dedicated.so ln -s engine_srv.so engine.so ln -s materialsystem_srv.so materialsystem.so ln -s replay_srv.so replay.so ln -s scenefilecache_srv.so scenefilecache.so ln -s shaderapiempty_srv.so shaderapiempty.so ln -s soundemittersystem_srv.so soundemittersystem.so ln -s studiorender_srv.so studiorender.so ln -s vphysics_srv.so vphysics.so

Next, we need to create map links for Portal and Half-Life: Source content that you installed, since those map files are not provided with LF:E. Run these commands to make links for the one you installed (run both commands if you have Portal and HL:S installed):

Portal maps:

ln -s ~/lfeserver/Portal/portal/maps/* ~/lfeserver/sdkbase/tf_coop_extended_beta/maps/

Half-Life: Source maps:

ln -s ~/lfeserver/Half-Life: Source/hl1/maps/* ~/lfeserver/sdkbase/tf_coop_extended_beta/maps/

5. Running the server

To run the server, create a .sh file with the following contents in the /lfeserver/sdkbase/ folder:

#!/bin/sh ./srcds_run -console -game tf_coop_extended -port 27015 -secured +map d1_trainstation_01 +maxplayers 24

And run it to start the server (make it executable first).
Of course, you can use any launch options you want, but make sure to keep the

./srcds_run -console -game tf_coop_extended

launch options!

WARNING! The windows guide is out of date and is currently being updated. In the meantime, consider using Linux for hosting maybe?

Windows requirements

System requirements for hosting Lambda Fortress: Extended on Windows:

Minimum:

  • A somewhat good CPU
  • 1024MB RAM
  • 8GB free disk space (For the HL2 Campaign only)

Recommended:

  • Beefy CPU
  • 2048MB RAM
  • Over 13GB free disk space (For more than the base HL2 campaign)

Software requirements:

1. Download SteamCMD for Windows

Download steamcmd from here:
[link]
Put it in a folder that you want your server to be installed in. It has to be empty.
For this guide I’ll be placing it in a folder named “steamcmd”.
Unzip it with 7-zip like so:

You should see “steamcmd.exe” in the folder now.

4. Running the server

To run the server, first create a file named “runserver.txt” in your /steamcmd/sdkbase/ folder (the folder where you have srcds.exe), and edit it to have the following contents:

@echo off start srcds.exe -console -game tf_coop_extended +maxplayers 32 +map d1_trainstation_01

You have to save it as a bat file though:
Click “File” in the top left corner of your editor, then select “Save As…”
Change the name to “runserver.bat”, and under the filenamename field, select “All Files”:

From now on, you just have to double click the runserver.bat file to run your server.
Of course, you can use any launch options you want in the file, but make sure to keep the

start srcds.exe -console -game tf_coop_extended

launch options!

This part of the guide exists only as a backup in case LF:E has no Linux binaries at a given time. It also assumes you have good knowledge of Wine and general server hosting.

Differences

Wine srcds server setup is very similar to the linux one, but has a few differences. Just do the Linux installation section of the guide while keeping these things in mind:

  • You need slightly more RAM, a better CPU, and slightly more disk space than in the requirements.
  • Dependencies are different.
    • You don’t need the linux library dependencies from the guide.
    • But you do still need p7zip.

    New requirements are:

    • Wine (Version at least 4.0.2, get it here[wiki.winehq.org])
    • Xvfb
    • screen
  • Instead of creating and working in the /lfeserver/ folder, at the beggining run
    wine cmd /c mkdir C:\steamcmd

    And in all commands in the guide that have something to do with the ~/lfeserver/ path, replace it with the new steamcmd wine path: ~/.wine/drive_c/steamcmd/

  • Right after launching steamcmd.sh before running any other commands run once:
    @sSteamCmdForcePlatformType windows
  • You don’t have to do the “Binary Links” step, since it’s a linux-only issue.
  • To prevent the server from hanging without closing on a sudden crash, run this command:
    wine reg add “HKLMSOFTWAREPoliciesMicrosoftWindowsWindows Error Reporting” /v “DontShowUI” /t REG_DWORD /d 1 /f

    And I strongly advise using the script from the discord server in #community-downloads for autorestarting, since LF:E likes to crash. A lot.

  • Starting and stopping the server looks different.
    Create a screen session with:

    screen

    And run these commands in the ~/.wine/steamcmd/sdkbase/ folder to start the server:

    Xvfb :1 -screen 0 800x600x8 & export DISPLAY=:1 wine start srcds.exe -console -game tf_coop_extended_beta -ip XX.XX.XX.XX -port 27015 -secured +maxplayers 24 +map d1_trainstation_01

    Don’t worry if Fedora / CentOS / RHEL based distros throw some errors about keyboard input.

    To stop the server either rcon the quit command to the server and kill Xvfb:

    pkill xvfb

    Or kill all the processes with pkill:

    pkill srcds.exe pkill wine pkill xvfb
SteamSolo.com