Difference between revisions of "Dedicated Server Setup 2"
(47 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | <span style="color:red;">'''Note:''' At the time of writing, no binaries are publicly available for Linux and Mac OS.</span> | |
− | + | ||
+ | |||
+ | <span style="color:red;">Warning: Do not update your server content or you will have to struggle with SteamPipe bugs. Please.</span> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
__TOC__ | __TOC__ | ||
Line 9: | Line 15: | ||
* A fast broadband connection (preferably one without a data transfer limit) to prevent premature aging waiting for the uploads to complete. | * A fast broadband connection (preferably one without a data transfer limit) to prevent premature aging waiting for the uploads to complete. | ||
− | |||
==Base Server Install== | ==Base Server Install== | ||
+ | |||
+ | <span style="color:red;">'''Don't use SteamCMD for OC, use only HLDS Update Tool as that's the only one providing the non-vpk content.'''</span> | ||
+ | |||
===Step 1: Download The HLDS Update Tool=== | ===Step 1: Download The HLDS Update Tool=== | ||
{{Windows|Download this file to a temporary location: '''http://www.steampowered.com/download/hldsupdatetool.exe'''}} | {{Windows|Download this file to a temporary location: '''http://www.steampowered.com/download/hldsupdatetool.exe'''}} | ||
Line 27: | Line 35: | ||
===Step 2: Install The HLDS Update Tool=== | ===Step 2: Install The HLDS Update Tool=== | ||
{{Windows|''Adapted from <nowiki>http://www.srcds.com/db/engine.php?subaction=showfull&id=1097362093</nowiki>''| | {{Windows|''Adapted from <nowiki>http://www.srcds.com/db/engine.php?subaction=showfull&id=1097362093</nowiki>''| | ||
+ | ||''This could help : <nowiki>http://planethalflife.gamespy.com/View.php?view=HL2Guides.Detail&id=4&game=3</nowiki>''|. | ||
|Double-click on <tt>hldsupdatetool.exe</tt> and follow the instructions given by the wizard. | |Double-click on <tt>hldsupdatetool.exe</tt> and follow the instructions given by the wizard. | ||
− | |For the purpose of this tutorial, we will assume that you | + | |For the purpose of this tutorial, we will assume that you put the HLDSUpdateTool in <tt>c:\srcds</tt>. |
|Open a ''Command Prompt (Start → Accessories → Command Prompt)'' window and execute the following commands: | |Open a ''Command Prompt (Start → Accessories → Command Prompt)'' window and execute the following commands: | ||
|<tt>c:</tt> | |<tt>c:</tt> | ||
Line 34: | Line 43: | ||
|<tt>hldsupdatetool</tt>| | |<tt>hldsupdatetool</tt>| | ||
|An updated version of ''hldsupdatetool'' will now be downloaded to replace the one installed by the wizard.}} | |An updated version of ''hldsupdatetool'' will now be downloaded to replace the one installed by the wizard.}} | ||
− | + | ||
{{Linux|''Adapted from <nowiki>http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920</nowiki>''| | {{Linux|''Adapted from <nowiki>http://www.srcds.com/db/engine.php?subaction=showfull&id=1098643920</nowiki>''| | ||
|In the same ''Terminal'' window as [[#Step 1: Download The HLDS Update Tool|Step 1]], execute the following commands: | |In the same ''Terminal'' window as [[#Step 1: Download The HLDS Update Tool|Step 1]], execute the following commands: | ||
Line 53: | Line 62: | ||
|<tt>-command update</tt>: Omnipresent, never omit this. | |<tt>-command update</tt>: Omnipresent, never omit this. | ||
|<tt>-game "<game>"</tt>: The set of files to download, specify ''list'' instead to see what can be downloaded. | |<tt>-game "<game>"</tt>: The set of files to download, specify ''list'' instead to see what can be downloaded. | ||
− | |<tt>-dir <nowiki><directory|.></nowiki></tt>: The directory to install the files in, specify '.' to automatically use the directory ''hldsupdatetool'' is located in.| | + | |<tt>-dir <nowiki><directory|.></nowiki></tt>: 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. ;)}} | |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. ;)}} | ||
Line 74: | Line 83: | ||
{{Windows|<tt>hl2\ | {{Windows|<tt>hl2\ | ||
|orangebox\ | |orangebox\ | ||
− | |orangebox\bin\ | + | |orangebox\bin\ |
|orangebox\hl2\ | |orangebox\hl2\ | ||
|orangebox\platform\ | |orangebox\platform\ | ||
− | |orangebox\reslists\ | + | |orangebox\reslists\ //No longer appears, and isn´t necessary now. |
|orangebox\hlds_steamgames.vdf | |orangebox\hlds_steamgames.vdf | ||
|orangebox\srcds.exe | |orangebox\srcds.exe | ||
− | |orangebox\steam_appid.txt | + | |orangebox\steam_appid.txt //No longer appears, and isn´t necessary now. |
|ClientRegistry.blob | |ClientRegistry.blob | ||
|HldsUpdateTool.exe | |HldsUpdateTool.exe | ||
Line 112: | Line 121: | ||
'''GUI Approach:''' | '''GUI Approach:''' | ||
<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;"> | ||
− | + | Merge the two <tt>hl2</tt> folders by copying the contents of the <tt>hl2</tt> folder (the one outside) into the <tt>orangebox/hl2</tt> 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 <tt>orangebox/hl2</tt> to the <tt>hl2</tt> folder (the one outside), and then moving that folder back into the <tt>orangebox</tt> folder. This will be significantly faster since move operations are faster than copies. | ||
</div> | </div> | ||
+ | |||
'''Command-Line Approach:''' | '''Command-Line Approach:''' | ||
{{Windows|In the existing ''Command Prompt'' window from the earlier steps, execute the following commands: | {{Windows|In the existing ''Command Prompt'' window from the earlier steps, execute the following commands: | ||
− | |<tt> | + | |<tt>xcopy /s /e hl2 orangebox\hl2</tt>}} |
− | |||
{{Linux|In the existing ''Terminal'' window from the earlier steps, execute the following commands: | {{Linux|In the existing ''Terminal'' window from the earlier steps, execute the following commands: | ||
− | |<tt> | + | |<tt>cp -R hl2 orangebox/hl2</tt>}} |
− | |||
{{Mac|''Unavailable at time of writing.''}} | {{Mac|''Unavailable at time of writing.''}} | ||
− | + | ===Step 5: Setting Up the 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 [http://nemesis.thewavelength.net/index.php?p=25 this application] in order to proceed. | 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 [http://nemesis.thewavelength.net/index.php?p=25 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. | 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. | ||
− | + | ====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 159: | ||
− | ===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 shared materials.gcf==== | + | ======source 2007 binaries.gcf====== |
− | ====source 2007 shared models.gcf==== | + | |
− | ====source 2007 shared sounds.gcf==== | + | ======source 2007 shared materials.gcf====== |
− | ====half-life 2 2007 base content.gcf==== | + | |
+ | ======source 2007 shared models.gcf====== | ||
+ | |||
+ | ======source 2007 shared sounds.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;"> | ||
− | + | Extract the content from ''lostcoast content.gcf'' | |
</div> | </div> | ||
+ | =====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;"> | ||
− | == | + | ======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 maps.gcf==== | + | ======episode two content.gcf====== |
− | ====episode two materials.gcf==== | + | |
+ | ======episode two maps.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. | ||
Line 196: | Line 220: | ||
− | ==Additional Game Content== | + | |
+ | ====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==== | ||
'''Note:''' If you download any of the following (sans ''Portal'') using the ''HLDS Update Tool'' after downloading <tt>orangebox</tt>, <span style="color:red;">you will be forced to download a new set of engine binaries incompatible with the current release of Obsidian Conflict</span>. 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 <tt>bin</tt> folder (inside <tt>orangebox</tt>) to something else (e.g. <tt>bin_se2007</tt>) '''before''' downloading the game's files. On completion, delete the newly created <tt>bin</tt> folder and rename the old one back to <tt>bin</tt>. | '''Note:''' If you download any of the following (sans ''Portal'') using the ''HLDS Update Tool'' after downloading <tt>orangebox</tt>, <span style="color:red;">you will be forced to download a new set of engine binaries incompatible with the current release of Obsidian Conflict</span>. 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 <tt>bin</tt> folder (inside <tt>orangebox</tt>) to something else (e.g. <tt>bin_se2007</tt>) '''before''' downloading the game's files. On completion, delete the newly created <tt>bin</tt> folder and rename the old one back to <tt>bin</tt>. | ||
+ | |||
+ | And don´t let the game content overwrite the HL2 folder, or you will forced to download again orangebox to fix it. | ||
For the curious, the reason for this is that almost all official Valve games now run on [http://developer.valvesoftware.com/wiki/Source_Engine_2009 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''. | For the curious, the reason for this is that almost all official Valve games now run on [http://developer.valvesoftware.com/wiki/Source_Engine_2009 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=== | + | |
+ | |||
+ | =====Counter-Strike: 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;"> | ||
− | + | Extract everything from ''counter-strike source shared.gcf'' | |
+ | |||
+ | Or: | ||
+ | |||
+ | ''hldsupdatetool.exe -command update -game "Counter-Strike: Source" -dir theserverdir/orangebox'' | ||
</div> | </div> | ||
+ | =====Day of Defeat: Source===== | ||
+ | <div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;"> | ||
+ | Extract everything from ''day of defeat source.gcf'' | ||
+ | |||
+ | Or: | ||
− | + | ''hldsupdatetool.exe -command update -game "dods" -dir theserverdir/orangebox'' | |
− | |||
− | |||
</div> | </div> | ||
− | + | =====Portal===== | |
− | ===Portal=== | ||
<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 218: | Line 260: | ||
− | ===Team Fortress 2=== | + | =====Team Fortress 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;"> | ||
''Incompatible at the time of writing.'' | ''Incompatible at the time of writing.'' | ||
</div> | </div> | ||
+ | ==Downloading And Installing Obsidian== | ||
+ | Copy the <tt>obsidian</tt> folder from a fresh install of Obsidian Conflict into your dedicated server's <tt>orangebox</tt> folder. While installing Obsidian Conflict, remember install '''ONLY''' the server files without the Sourcemod extension (because those are outdated), not the client files. | ||
+ | |||
+ | After putting the obsidian folder inside the orangebox folder, install the available server hotfixes of your current version. | ||
− | + | Download the Sourcemod extension for Obsidian Conflict [http://www.wuala.com/Obsidian%20Conflict/SourceMod here]. | |
− | + | ||
− | + | In case you installed the SM extension during installing OC, go to ''sourcemod/gamedata'' And do the following: | |
+ | |||
+ | |||
+ | -In ''core.games'', delete the ''custom'' folder. | ||
+ | -In ''sdktools.games'', delete the ''custom'' folder. | ||
==Mounting Content== | ==Mounting Content== | ||
Line 245: | Line 295: | ||
<tt>lostcoast</tt> ↔ Half-Life 2: Lost Coast | <tt>lostcoast</tt> ↔ Half-Life 2: Lost Coast | ||
</div> | </div> | ||
− | |||
+ | At the end, the file structure inside your orangebox folder must be like this: | ||
+ | |||
+ | {{Windows|<tt> | ||
+ | |bin\ | ||
+ | |cstrike\ //if their content was extracted | ||
+ | |dod\ //if their content was extracted | ||
+ | |ep2\ //if their content was extracted | ||
+ | |episodic\ //if their content was extracted | ||
+ | |hl1\ //if their content was extracted | ||
+ | |hl2\ | ||
+ | |lostcoast\ //if their content was extracted | ||
+ | |obsidian\ | ||
+ | |platform\ | ||
+ | |hlds_steamgames.vdf | ||
+ | |srcds.exe | ||
+ | |steam_appid.txt | ||
+ | </tt>}} | ||
+ | |||
+ | {{Linux|<tt> | ||
+ | ToDo: Get information about how it would look in Linux | ||
+ | </tt>}} | ||
+ | |||
+ | {{Mac|<tt> | ||
+ | Unavailable at time of writing. | ||
+ | </tt>}} | ||
+ | |||
+ | |||
+ | ==Installing, configuring the server plugins and running the server== | ||
+ | |||
+ | Now, after configure the server, it´s time to install and configure the server plugins for the basic admin options. | ||
+ | |||
+ | |||
+ | ===Installing Metamod: Source=== | ||
+ | |||
+ | Go to the website of Metamod: Source and [http://www.sourcemm.net/downloads download the last version]. | ||
+ | |||
+ | You will have to extract the files and put them in ''orangebox/obsidian/addons'' (don´t confuse with the add-ons folder, that is where the files of the mounted content are). | ||
+ | |||
+ | Now, go [http://www.sourcemm.net/vdf here] and generate a .VDF file. It must look inside like this: | ||
+ | |||
+ | |||
+ | <div style="padding: 0.5em 1em 0.5em 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;"> | ||
+ | "Plugin" | ||
+ | { | ||
+ | "file" "../obsidian/addons/metamod/bin/server" | ||
+ | } | ||
+ | </div> | ||
+ | |||
+ | Put this file in the addons folder. | ||
+ | |||
+ | |||
+ | ===Installing Sourcemod=== | ||
+ | |||
+ | Visit the Sourcemod homepage and [http://www.sourcemod.net/downloads.php download the last version]. | ||
+ | |||
+ | Put the ''addons'' and ''cfg'' folders inside the ''obsidian'' folder. | ||
+ | |||
+ | |||
+ | ====Configuring Sourcemod==== | ||
+ | |||
+ | Since Metamod only needs to be put inside the addons folder and have their .VDF file to be loaded automatically by the server, you only need to configure Sourcemod: | ||
+ | |||
+ | To add admins, go to ''addons/sourcemod/config'' and open ''admins_simple.ini''. | ||
+ | |||
+ | If you want enable rtv, nominations and more, go to ''addons/sourcemod/plugins/disabled'', and move them outside of that folder (to ''/plugins''). | ||
+ | |||
+ | To configure the different options that have Sourcemod, go to ''/cfg/sourcemod'' and open ''sourcemod.cfg''. '''NOTE:''' The options of the different plugins that have/will load Sourcemod like rtv, only will appear after start the server and load both Metamod and Sourcemod. | ||
+ | |||
+ | |||
+ | |||
+ | ===Running the server=== | ||
+ | |||
+ | To finish, start your server (you can use the GUI by clicking the srcds.exe file, but it needs more resources) opening a command window and typing (after being in the folder where is the srcds.exe file): | ||
+ | |||
+ | <tt>''srcds.exe -console -game obsidian -port 27015 +map oc_lobby +maxplayers 8''</tt> | ||
+ | |||
+ | (you can make also a .bat file to avoid this). | ||
+ | |||
+ | |||
+ | If apart of the lines about the soundscapes, the func_door and two lines related with Steam that comes before "VAC is enabled", you dont see nothing more, congratulations, your server works fine. | ||
+ | |||
+ | Now, it´s up to you configure the server as you want/need. | ||
− | |||
[[Category:ServerOP]] | [[Category:ServerOP]] |
Latest revision as of 18:44, 20 January 2018
Note: At the time of writing, no binaries are publicly available for Linux and Mac OS.
Warning: Do not update your server content or you will have to struggle with SteamPipe bugs. Please.
Contents
- 1 Prerequisites
- 2 Base Server Install
- 2.1 Step 1: Download The HLDS Update Tool
- 2.2 Step 2: Install The HLDS Update Tool
- 2.3 Step 3: Download The Base Server Files
- 2.4 Step 4: Setting Up The Folder Structure
- 2.5 Step 5: Setting Up the campaign content
- 3 Downloading And Installing Obsidian
- 4 Mounting Content
- 5 Installing, configuring the server plugins and running the server
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.
Base Server Install
Don't use SteamCMD for OC, use only HLDS Update Tool as that's the only one providing the non-vpk content.
Step 1: Download The HLDS Update Tool
Download this file to a temporary location: http://www.steampowered.com/download/hldsupdatetool.exe
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
Unavailable at time of writing.
Step 2: Install The HLDS Update Tool
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.
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.
Unavailable at time of writing.
Step 3: Download The Base Server Files
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. ;)
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. ;)
Unavailable at time of writing.
Step 4: Setting Up The Folder Structure
After Step 3 completes, you should end up with something like this:
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, and isn´t necessary now.
ClientRegistry.blob
HldsUpdateTool.exe
HldsUpdateTool_<tool version>.mst
InstallRecord.blob
.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
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:
In the existing Command Prompt window from the earlier steps, execute the following commands:
xcopy /s /e hl2 orangebox\hl2
In the existing Terminal window from the earlier steps, execute the following commands:
cp -R hl2 orangebox/hl2
Unavailable at time of writing.
Step 5: Setting Up the 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.
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
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
Extract the content from lostcoast content.gcf
Half-Life 2: Episode One
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.
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.
And don´t let the game content overwrite the HL2 folder, or you will forced to download again orangebox to fix it.
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
Extract everything from counter-strike source shared.gcf
Or:
hldsupdatetool.exe -command update -game "Counter-Strike: Source" -dir theserverdir/orangebox
Day of Defeat: Source
Extract everything from day of defeat source.gcf
Or:
hldsupdatetool.exe -command update -game "dods" -dir theserverdir/orangebox
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. While installing Obsidian Conflict, remember install ONLY the server files without the Sourcemod extension (because those are outdated), not the client files.
After putting the obsidian folder inside the orangebox folder, install the available server hotfixes of your current version.
Download the Sourcemod extension for Obsidian Conflict here.
In case you installed the SM extension during installing OC, go to sourcemod/gamedata And do the following:
-In core.games, delete the custom folder.
-In sdktools.games, delete the custom folder.
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
At the end, the file structure inside your orangebox folder must be like this:
bin\
cstrike\ //if their content was extracted
dod\ //if their content was extracted
ep2\ //if their content was extracted
episodic\ //if their content was extracted
hl1\ //if their content was extracted
hl2\
lostcoast\ //if their content was extracted
obsidian\
platform\
hlds_steamgames.vdf
srcds.exe
steam_appid.txt
ToDo: Get information about how it would look in Linux
Unavailable at time of writing.
Installing, configuring the server plugins and running the server
Now, after configure the server, it´s time to install and configure the server plugins for the basic admin options.
Installing Metamod: Source
Go to the website of Metamod: Source and download the last version.
You will have to extract the files and put them in orangebox/obsidian/addons (don´t confuse with the add-ons folder, that is where the files of the mounted content are).
Now, go here and generate a .VDF file. It must look inside like this:
"Plugin" {
"file" "../obsidian/addons/metamod/bin/server"
}
Put this file in the addons folder.
Installing Sourcemod
Visit the Sourcemod homepage and download the last version.
Put the addons and cfg folders inside the obsidian folder.
Configuring Sourcemod
Since Metamod only needs to be put inside the addons folder and have their .VDF file to be loaded automatically by the server, you only need to configure Sourcemod:
To add admins, go to addons/sourcemod/config and open admins_simple.ini.
If you want enable rtv, nominations and more, go to addons/sourcemod/plugins/disabled, and move them outside of that folder (to /plugins).
To configure the different options that have Sourcemod, go to /cfg/sourcemod and open sourcemod.cfg. NOTE: The options of the different plugins that have/will load Sourcemod like rtv, only will appear after start the server and load both Metamod and Sourcemod.
Running the server
To finish, start your server (you can use the GUI by clicking the srcds.exe file, but it needs more resources) opening a command window and typing (after being in the folder where is the srcds.exe file):
srcds.exe -console -game obsidian -port 27015 +map oc_lobby +maxplayers 8
(you can make also a .bat file to avoid this).
If apart of the lines about the soundscapes, the func_door and two lines related with Steam that comes before "VAC is enabled", you dont see nothing more, congratulations, your server works fine.
Now, it´s up to you configure the server as you want/need.