Difference between revisions of "Dedicated Server Setup 2"

From Obsidian Conflict Wiki
Jump to: navigation, search
(Campaign Content)
Line 135: Line 135:
 
'''Note:''' The Obsidian Team might offer to copy the extracted GCF content onto servers via their Windows server to save upload time in future, in which case you can safely ignore this section.
 
'''Note:''' The Obsidian Team might offer to copy the extracted GCF content onto servers via their Windows server to save upload time in future, in which case you can safely ignore this section.
  
 +
===Manual method:===
  
===Half-Life: Source===
+
====Half-Life: Source====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
====half-life source.gcf====
+
=====half-life source.gcf=====
 
Extract everything from the <tt>hl1</tt> folder (in the GCF) to your dedicated server's <tt>orangebox/hl1</tt> folder, creating the folder if it doesn't exist.
 
Extract everything from the <tt>hl1</tt> folder (in the GCF) to your dedicated server's <tt>orangebox/hl1</tt> folder, creating the folder if it doesn't exist.
 
</div>
 
</div>
  
  
===Half-Life Deathmatch: Source===
+
====Half-Life Deathmatch: Source====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
''Incompatible at the time of writing.''
 
''Incompatible at the time of writing.''
Line 149: Line 150:
  
  
===Half-Life 2===
+
====Half-Life 2====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
====half-life 2 content.gcf====
+
=====half-life 2 content.gcf=====
 
Extract the <tt>maps</tt> folder from the <tt>hl2</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/hl2</tt> folder.
 
Extract the <tt>maps</tt> folder from the <tt>hl2</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/hl2</tt> folder.
====source 2007 binaries.gcf====
+
=====source 2007 binaries.gcf=====
====source 2007 shared materials.gcf====
+
=====source 2007 shared materials.gcf=====
====source 2007 shared models.gcf====
+
=====source 2007 shared models.gcf=====
====source 2007 shared sounds.gcf====
+
=====source 2007 shared sounds.gcf=====
====half-life 2 2007 base content.gcf====
+
=====half-life 2 2007 base content.gcf=====
 
For all of the above GCFs (<u>in given order</u>, with <tt>source 2007 binaries.gcf</tt> being extracted first and <tt>half-life 2 2007 base content.gcf</tt> being last), extract the <tt>hl2</tt> folder (in the GCFs) into your dedicated server's <tt>orangebox/hl2</tt> folder, overwriting if prompted to do so.
 
For all of the above GCFs (<u>in given order</u>, with <tt>source 2007 binaries.gcf</tt> being extracted first and <tt>half-life 2 2007 base content.gcf</tt> being last), extract the <tt>hl2</tt> folder (in the GCFs) into your dedicated server's <tt>orangebox/hl2</tt> folder, overwriting if prompted to do so.
 
</div>
 
</div>
  
  
===Half-Life 2: Lost Coast===
+
====Half-Life 2: Lost Coast====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
Huh?  :V  {{Todo|Further elaboration needed.}}
 
Huh?  :V  {{Todo|Further elaboration needed.}}
Line 168: Line 169:
  
  
===Half-Life 2: Episode One===
+
====Half-Life 2: Episode One====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
====episode 1 shared.gcf====
+
=====episode 1 shared.gcf=====
 
Extract everything from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder, creating the folder if it doesn't exist.
 
Extract everything from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder, creating the folder if it doesn't exist.
====half-life 2 episode one.gcf====
+
=====half-life 2 episode one.gcf=====
 
Extract the <tt>maps</tt> folder from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder.
 
Extract the <tt>maps</tt> folder from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder.
====episodic 2007 shared.gcf====
+
=====episodic 2007 shared.gcf=====
 
Extract everything from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder, overwriting if prompted to do so.
 
Extract everything from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder, overwriting if prompted to do so.
====episode one 2007 content.gcf====
+
=====episode one 2007 content.gcf=====
 
Extract everything from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder, and everything from the <tt>hl2</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/hl2</tt> folder, overwriting if prompted to do so.
 
Extract everything from the <tt>episodic</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/episodic</tt> folder, and everything from the <tt>hl2</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/hl2</tt> folder, overwriting if prompted to do so.
 
</div>
 
</div>
  
  
===Half-Life 2: Episode Two===
+
====Half-Life 2: Episode Two====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
====episode two content.gcf====
+
=====episode two content.gcf=====
====episode two maps.gcf====
+
=====episode two maps.gcf=====
====episode two materials.gcf====
+
=====episode two materials.gcf=====
 
For all of the above GCFs (<u>in given order</u>), extract everything from the <tt>ep2</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/ep2</tt> folder, creating the folder if it doesn't exist and overwriting if prompted to do so.
 
For all of the above GCFs (<u>in given order</u>), extract everything from the <tt>ep2</tt> folder (in the GCF) into your dedicated server's <tt>orangebox/ep2</tt> folder, creating the folder if it doesn't exist and overwriting if prompted to do so.
 
</div>
 
</div>
  
  
===Half-Life 2: Episode Three===
+
====Half-Life 2: Episode Three====
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
<div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;">
 
You must be living in the future.
 
You must be living in the future.
 
</div>
 
</div>
  
 +
 +
 +
===Automatic method:===
 +
 +
Download the [http://wiki.obsidianconflict.net/?title=Campaign-Extract Campaign Extract], and select the content of the games that you want for your server.
 +
 +
'''NOTE:''' You will need the content of Half-Life 2 if you want the content of Half-Life 2: Lost Coast.
  
 
==Additional Game Content==
 
==Additional Game Content==

Revision as of 18:27, 11 October 2012

WIP.png This page is still a Work In Progress

This page was created since I can't update the one here. I'm still working on it (but don't have enough time to do it all at once), so it may seem incomplete. - TESLA-X4 12:01, 3 April 2011 (CEST)

Prerequisites

  • A basic understanding of filesystem paths (i.e. orangebox/hl2 refers to the folder hl2 inside orangebox, not both the folders), and the different path representations between Windows and *nix (i.e. \ in Windows is the same as / in UNIX[-like] operating systems).
  • A basic understanding of the operating system's command-line interface (i.e. Command Prompt for Windows and Terminals for Linux and Mac OS).
  • A fast broadband connection (preferably one without a data transfer limit) to prevent premature aging waiting for the uploads to complete.

Note: At the time of writing, no binaries are publicly available for Linux and Mac OS.


Base Server Install

Step 1: Download The HLDS Update Tool

WindowsWindows

Download this file to a temporary location: http://www.steampowered.com/download/hldsupdatetool.exe

LinuxLinux

Adapted from http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920

In a Terminal (On Ubuntu: Applications → Accessories → Terminal) window, execute the following commands:
mkdir srcds_l
cd srcds_l
wget http://www.steampowered.com/download/hldsupdatetool.bin

MacMac

Unavailable at time of writing.


Step 2: Install The HLDS Update Tool

WindowsWindows

Adapted from http://www.srcds.com/db/engine.php?subaction=showfull&id=1097362093


This could help : http://planethalflife.gamespy.com/View.php?view=HL2Guides.Detail&id=4&game=3
.
Double-click on hldsupdatetool.exe and follow the instructions given by the wizard.
For the purpose of this tutorial, we will assume that you put the HLDSUpdateTool in c:\srcds.
Open a Command Prompt (Start → Accessories → Command Prompt) window and execute the following commands:
c:
cd srcds
hldsupdatetool

An updated version of hldsupdatetool will now be downloaded to replace the one installed by the wizard.

LinuxLinux

Adapted from http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920

In the same Terminal window as Step 1, execute the following commands:
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
./steam

An updated version of steam (the executable) will now be downloaded to replace the one extracted when you ran ./hldsupdatetool.bin.

MacMac

Unavailable at time of writing.

Step 3: Download The Base Server Files

WindowsWindows

Adapted from http://www.srcds.com/db/engine.php?subaction=showfull&id=1097362093

In the same Command Prompt window as Step 2, execute the following command:
hldsupdatetool.exe -command update -game "orangebox" -dir .

A breakdown of the command:
hldsupdatetool.exe: The executable to run.
-command update: Omnipresent, never omit this.
-game "<game>": The set of files to download, specify list instead to see what can be downloaded.
-dir <directory|.>: The directory to install the files in, specify '.' to automatically use the directory hldsupdatetool is located in. NOTE: Choosing the directory where is the HLDSUpdateTool will reinstall this program.

The base server files will now be downloaded. It will take a while, so don't go staring at the window waiting for it to complete. ;)

LinuxLinux

Adapted from http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920

In the existing Terminal window from Steps 1 and 2, execute the following command:
./steam -command update -game "orangebox" -dir .

A breakdown of the command:
./steam: The executable to run.
-command update: Omnipresent, never omit this.
-game "<game>": The set of files to download, specify list instead to see what can be downloaded.
-dir <directory|.>: The directory to install the files in, specify '.' to automatically use the directory steam is located in.

The base server files will now be downloaded. It will take a while, so don't go staring at the window waiting for it to complete. ;)

MacMac

Unavailable at time of writing.

Step 4: Setting Up The Folder Structure

After Step 3 completes, you should end up with something like this:

WindowsWindows

hl2\
orangebox\
orangebox\bin\
orangebox\hl2\
orangebox\platform\
orangebox\reslists\ //No longer appears, and isn´t necessary now.
orangebox\hlds_steamgames.vdf
orangebox\srcds.exe
orangebox\steam_appid.txt //No longer appears,it must be created by the user.
ClientRegistry.blob
HldsUpdateTool.exe
HldsUpdateTool_<tool version>.mst
InstallRecord.blob

LinuxLinux

.steam\
.steam\clientregistry.blob
hl2\
orangebox\
orangebox\bin\
orangebox\hl2\
orangebox\platform\
orangebox\reslists\
orangebox\hlds_steamgames.vdf
orangebox\srcds_linux
orangebox\srcds_run
orangebox\steam_appid.txt
hldsupdatetool.bin
InstallRecord.blob
steam
test1.so
test2.so
test3.so

MacMac

Unavailable at time of writing.


Now, because Valve didn't set up the files properly on their server, you'll need to fix it yourself.

GUI Approach:

Merge the two hl2 folders by copying the contents of the hl2 folder (the one outside) into the orangebox/hl2 folder. This may take a while since it totals to about 1.5 GBs.

If you're impatient or tight on time / space, consider doing the inverse instead, i.e. moving the orangebox/hl2 to the hl2 folder (the one outside), and then moving that folder back into the orangebox folder. This will be significantly faster since move operations are faster than copies.

Command-Line Approach:

WindowsWindows

In the existing Command Prompt window from the earlier steps, execute the following commands:
xcopy /s /e hl2 orangebox\hl2

LinuxLinux

In the existing Terminal window from the earlier steps, execute the following commands:
cp -R hl2 orangebox/hl2

MacMac

Unavailable at time of writing.

Also, since it not longer appears, you must create a file text called steam_appid, that must be inside the orangebox folder. The file only must contain the number 320.

Campaign Content

Campaign content is stored only in GCFs downloadable only via the Steam client, so be prepared to upload the extracted files to your server. You will need this application in order to proceed.

Things are a little easier for Windows server operators with Remote Desktop access to their servers since they can simply install Steam on their servers and do everything directly there.

Note: The Obsidian Team might offer to copy the extracted GCF content onto servers via their Windows server to save upload time in future, in which case you can safely ignore this section.

Manual method:

Half-Life: Source

half-life source.gcf

Extract everything from the hl1 folder (in the GCF) to your dedicated server's orangebox/hl1 folder, creating the folder if it doesn't exist.


Half-Life Deathmatch: Source

Incompatible at the time of writing.


Half-Life 2

half-life 2 content.gcf

Extract the maps folder from the hl2 folder (in the GCF) into your dedicated server's orangebox/hl2 folder.

source 2007 binaries.gcf
source 2007 shared materials.gcf
source 2007 shared models.gcf
source 2007 shared sounds.gcf
half-life 2 2007 base content.gcf

For all of the above GCFs (in given order, with source 2007 binaries.gcf being extracted first and half-life 2 2007 base content.gcf being last), extract the hl2 folder (in the GCFs) into your dedicated server's orangebox/hl2 folder, overwriting if prompted to do so.


Half-Life 2: Lost Coast

Huh?  :V Template:Todo


Half-Life 2: Episode One

episode 1 shared.gcf

Extract everything from the episodic folder (in the GCF) into your dedicated server's orangebox/episodic folder, creating the folder if it doesn't exist.

half-life 2 episode one.gcf

Extract the maps folder from the episodic folder (in the GCF) into your dedicated server's orangebox/episodic folder.

episodic 2007 shared.gcf

Extract everything from the episodic folder (in the GCF) into your dedicated server's orangebox/episodic folder, overwriting if prompted to do so.

episode one 2007 content.gcf

Extract everything from the episodic folder (in the GCF) into your dedicated server's orangebox/episodic folder, and everything from the hl2 folder (in the GCF) into your dedicated server's orangebox/hl2 folder, overwriting if prompted to do so.


Half-Life 2: Episode Two

episode two content.gcf
episode two maps.gcf
episode two materials.gcf

For all of the above GCFs (in given order), extract everything from the ep2 folder (in the GCF) into your dedicated server's orangebox/ep2 folder, creating the folder if it doesn't exist and overwriting if prompted to do so.


Half-Life 2: Episode Three

You must be living in the future.


Automatic method:

Download the Campaign Extract, and select the content of the games that you want for your server.

NOTE: You will need the content of Half-Life 2 if you want the content of Half-Life 2: Lost Coast.

Additional Game Content

Note: If you download any of the following (sans Portal) using the HLDS Update Tool after downloading orangebox, you will be forced to download a new set of engine binaries incompatible with the current release of Obsidian Conflict. A telltale sign that this has occurred is when you see an engine error along the lines of SetupArrayProps_R: array prop '(null)' is at index zero or Host_Error: IDLLFunctions::DLLInit returned false when you try to start the server. To workaround that, simply rename the bin folder (inside orangebox) to something else (e.g. bin_se2007) before downloading the game's files. On completion, delete the newly created bin folder and rename the old one back to bin.

For the curious, the reason for this is that almost all official Valve games now run on Source Engine 2009, but most mods (sans Garry's Mod) continue to run on the older Source Engine 2007 (Source SDK Base 2007). These two versions are incompatible with each other, and Valve has yet to release a version of Source SDK Base for Source Engine 2009.

Counter-Strike: Source


Day of Defeat: Source


Portal

Incompatible at the time of writing.


Team Fortress 2

Incompatible at the time of writing.


Downloading And Installing Obsidian

Copy the obsidian folder from a fresh install of Obsidian Conflict into your dedicated server's orangebox folder. Template:Todo


Mounting Content

Content mounts are controlled by a set of files in the obsidian/mount folder. Each file determines whether or not the respective game's content is mounted. These files are merely blank files without any extensions - their contents do not matter since the mod merely checks if the file is there, mounting the content if the file is present. Valid file names are:

css ↔ Counter-Strike: Source

dod ↔ Day of Defeat: Source

ep2 ↔ Half-Life 2: Episode Two

episodic ↔ Half-Life 2: Episode One

hls ↔ Half-Life: Source

lostcoast ↔ Half-Life 2: Lost Coast

Template:Todo


Still in progress, give me more time, will ya?