Table of Contents

Fortress-Forever

Fortress Forever is a FREE online, multiplayer, class-based mod for the Half-Life 2 PC game. It was originally created by a group of Team Fortress Classic(TFC) players. After many years of waiting for the Release of TF2, with limited to no information at the time regarding TF2's production, most of the TFC community considered TF2 vaporware. With no evidence of continued production of TF2, the community took the TFC sequel into their own hands.

The project's early stages began in early August of 2004, where planning and forming began. http://www.fortress-forever.com launched in late november of that year. With the launch of the website much interest was sparked within the community. With a final promise of a TFC sequel many fans of the series gathered in support behind the team. Roughly three years in the making, and Fortress Forever was finally released on September 13th, 2007.

1. Installation

Below you'll find a install manual for the Halflife2:Source Mod Fortress Forever.
Before we begin I'd like to give a large shout to the following people for helping me maintain my servers and supply me with a large quantity of support:

  1. Bully (fellow admin)
  2. Psychonic (hlstatsx author)
  3. hlstriker (flagassist author (FF plugin))

For those who wish to see a bit more about my servers, feel free to visit the next urls:

1.1. Requirements:

1.2. Setting up all files

First of all we need to set all files ready on the machine we want to host it at.
Lets say I've got access to a box called manual which can be found on manual.localhost.lan.
I'm going to use Putty to connect to this machine on the ssh port 22.

After logging in I'm in the homedir of the server.
In the homedir I create 2 directories, called “install” and “servers”.
In the “install” directory I will store all the files that are listed above on the Requirements part.

cd ~/install/ 
wget "http://storefront.steampowered.com/download/hldsupdatetool.bin"
wget "ftp://ftp.snt.utwente.nl/pub/games/halflife2/mods/fortressforever/server/linux/FortressForever_2.2_Full_Server.tar.gz"
wget "ftp://ftp.snt.utwente.nl/pub/games/halflife2/mods/fortressforever/server/linux/FF_2.3_Patch_Server.tar.gz"


Next we need to make sure we can use all the files. Note: The hldsupdatetool.bin file is not a cd burn image!
We need to make the hldsupdatetool.bin executable and then run it, if we wish to make use of it.
In order to do so we write the following in the shell:

chmod +x hldsupdatetool.bin
./hldsupdatetool.bin

A screen will show with licence and other important stuff, read it if you wish and then type “yes” to continue.
A file called “steam” will now be created. Store this file somewhere else or just leave it be. The hldsupdatetool.bin file has had it uses and may be removed.

Next in line are the .tar.gz files. If you wish to know more about tar and gzip, spin up google and type in the names. In short, they are just packs with compressed files inside. In order to make use of the content of these we need to unpack them.
Important: Extract the “FF 2.2 Full” first and then the “FF 2.3 Patch”. Select “Always” when it's asking to overwrite files!

tar xcvf FortressForever_2.2_Full_Server.tar.gz
tar xcvf FF_2.3_Patch_Server.tar.gz

This covers the preparing part of the install.

1.3. Getting Halflife2 files

Now comes the fun and magical stuff!
In the last chapter I've shown you how to use the hldsupdatetool.bin file to create a file called “steam”. This file is the main basis for getting a server, under the halflife2 engine up and rolling.

Lets get on with it then!
Before we're going to use the file we need to make sure our target directory, where the gameserver files will be stored in, is created.
Go to your homedir (cd ~), get into the “servers” dir I've asked you to create in the first chapter. Inside this directory, create another directory which should hold the name of your server. As example I'm simply going to use “manual”.

Go back to the directory where you stored the file “steam” in. Use the following command to get the files.

./steam -command update -game hl2mp -dir /home/<user>/servers/manual -verify_all

Sit back and have some coffee as this might take a while!

Commandline explanation:


1.4. Moving over Fortress-Forever

We now need to move over the FF files. In chapter 2, where we set up all the files, you unpacked both the 2.2 full file and the 2.3 update.
This would've created a directory called “FortressForever” in the /home/<user>/install directory.
We are going to move this directory to the /home/<user>/servers/manual/ directory by typing:

cd ~/install
mv FortressForever ~/servers/manual/

Congrats! You have now installed a Fortress-Forever server!

1.5. Configuring the server

Last but not less important: Configuration of your servers!

In order to get your server to run, with a custom hostname for example or a maplist you prefer, you wil need to edit several files.
Below is a short list of files you can edit (and an explanation of what it might hold):

2. Running multiple servers

Below you'll find the things I do when hosting multiple servers.
This ofcource doesn't mean you will have to do it that way. It's just an indication to make my lazy life more lazy :)

2.1. Requirements

2.2. Setting up multiple severs

There are several ways for hosting multiple Fortress-Forever (FF) servers on one machine. Since harddisk space isn't really an issue anymore these days, I've decided to install FF into one directory and clone that directory, naming the directories like the servers are.

Currently my online servers are the following:

#FF.SNT @ quakenet - #1 2fort & well - 2.3 EU
#FF.SNT @ quakenet - #2 Concmaps - 2.3 EU
#FF.SNT @ quakenet - #3 AvD + hunted - 2.3 EU
#FF.SNT @ quakenet - #4 The Collapsed Dungeon - 2.3
#FF.SNT @ quakenet - #5 Snipers! - 2.3 EU

These servers are spread amongs 2 pretty hardcore machines. My first machine hosts 3 of them, called “2fortwell”, “concmaps” and “dungeon”. The 3 servers all have their own /home/<user>/servers/<servername> directories.

In order to keep them all up and running I'm using bash scripts. Bash scripts are tiny files which hold custom variables (defined by myself) to easilly start the server in a linux screen (more info above, at requirements). The reason I'm hosting them in a screen, and not as something that runs on the background (done when you use a “ &” after the command), is I'd like to see what's going on at the console of the game (for errors and such).

I'm keeping bash scripts for each server in the “servers” directory. The bash scripts are named “serv_<servername>” and each have been given the execute flag (+x) to run.
An example of the bash script that's keeping my first “2fortwell” server up:

manual@manual.localhost.lan:~/servers# cat serv_2fortwell.sh
#!/bin/bash
#
#
mpl=23
ip=130.89.149.201
tickrate=66
port=27015
screenname=FF_2fortwell
map=ff_2fort

cd 2fortwell
screen -dmS $screenname ./srcds_run -game FortressForever +ip $ip -port $port -tickrate $tickrate -autoupdate -maxplayers $mpl +exec server.cfg +map $map +log on 

If I wish to have a look on the servers console I can recall that screen by typing: “screen -xD FF_2fortwell”. When you are inside the screen and wish to detach it to do other things, you press “Ctrl” + “a” followed by pressing the letter “d”.

Hope this helps anyone out a bit who wishes to host multiple servers on their machine :)
You can always poke me (Rawh) on irc (irc.quakenet.org, channel #gamescom) or send me a pm on the Fortress-Forever forum!

– Rawh out