SteamPipe Client fix and the new way to make a server

Obsidian General.
Post Reply
MaestraFénix
Team Member
Team Member
Posts: 2470
Joined: Mon May 10, 2010 11:50 am
Location: Spain
Contact:

SteamPipe Client fix and the new way to make a server

Post by MaestraFénix »

After many months of running tests, it is ready to be published this tutorial, created by several people lead by Neico and Raidensnake, so the players can fix the mount system, that broke since the SteamPipe update, and the server admins can again create servers from scratch.


Client mount fix:

Note: This only has to be done once, unless you have to reinstall all of your games, or there is a big update from Valve.


Go to the following paths, and extract the VPKs that has each folder to the same folder. You need GCFScape to open it. Open the ones that ends as _dir, since the other VPKs are just data (example: In Steamapps\Common\Half-Life 2\lostcoast, extract lostcoast_pak_dir contents in the same place, in the lostcoast folder):

Code: Select all

Steamapps\Common\Counter-Strike Source\cstrike

Steamapps\Common\Day Of Defeat Source\dod

Steamapps\Common\Half-Life 2\hl2

Steamapps\Common\Half-Life 2\hl1

Steamapps\Common\Half-Life 2\episodic

Steamapps\Common\Half-Life 2\ep2

Steamapps\Common\Half-Life 2\lostcoast

Now go to Steamapps\Common\Source SDK Base 2007 and delete the hl2 and episodic folders that are there, since they will get replaced.

Make the symlinks of the previous folders to this one, by running CMD with admin rights (The following paths are the common one for the default installation paths on a 64 bit machine. Change the paths if you installed Steam on another place):

Code: Select all

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\hl2" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\hl2"

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\hl1" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\hl1"

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\episodic" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\episodic"

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\ep2" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\ep2"

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\lostcoast" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\lostcoast"

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\cstrike" "C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Source\cstrike"

mklink /D "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2007\dod" "C:\Program Files (x86)\Steam\SteamApps\common\Day of Defeat Source\dod"

After that, your OC should be able to mount again the content of the games. Don't forget to check the mounts at the mod!



Illustrated version of the above:

(We only show how to do it with one _dir file of the HL2 folder):

Image

Image

Image

Image

Image

Don't forget to check the mounts at the mod!



How to make an OC server with SteamPipe:

First get SteamCMD from here.

Place SteamCMD on a different folder where you wanna put the server.

With CMD running on admin powers, run SteamCMD so it can update. Once updated, type quit.

Now is time to download the games to mount at the server. The games must to be downloaded ON THIS ORDER:
  1. 220 - Half-Life 2
  2. 380 - Episode 1
  3. 340 - Lost Coast
  4. 420 - Episode 2
  5. 280 - Half-life source
  6. 240 - Counter-strike source
  7. 300 - Day of defeat Source
  8. 310 - Source 2007 Dedicated Server
(Obviously, if you don't wanna install Lost Coast for example, skip it, but if later you wanna have it, you will have to repeat all the process to make sure there aren't bugs later. The main ones are HL2 and Source 2007 Dedicated Server).

At the same CMD window, type the following commands following this structure:

SteamCMD +login steamusername steampassword +force_install_dir pathtotheocserverfolder +app_update appid validate +quit


Your commands must look like the following:

Code: Select all

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 220 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 380 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 340 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 420 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 280 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 240 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 300 validate +quit

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 310 validate +quit
Note: As soon as you introduce your login and pass, confirm the Steam Guard code, and starts loading the games, you will lose connection with the Steam Community. If you have to use it, connect through the Web chat (log into the Steam website and go to the Community).

After downloading the games, go to your server folder and delete the following on it:

drivers folder, hl1_hd folder, resources folder, sourcetest folder and hl2.exe

Now, go into each folder of the downloaded game, and extract the VPKs that has each folder to the same folder. You need GCFScape to open it. Open the ones that ends as _dir, since the other VPKs are just data (example: In Steamapps\Common\Half-Life 2\lostcoast, extract lostcoast_pak_dir contents in the same place, in the lostcoast folder). But don't extract the bin and platform folders. Also, do not extract the VPKs that are at the platform folder at the root server folder.

After that, go and delete the maps hl2/maps/d2_coast_02.bsp and hl1/maps/c4a1y.bsp, since they aren't used and give problems on server load.

Next step is installing OC. Run the installer, select the server option without checking the sourcemod option (since it's obsolete), and select to install at any folder different of the server folder. When it finished, grab the obsidian folder, and drop it at the root of the server folder (so is along with the hl2, episodic and the rest of folder games). After that, download and install the SERVER hotfix.


Go to the website of Metamod: Source and download the last version.

You will have to extract the files and put them at the obsidian/addons folder (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:

Code: Select all

"Plugin"
{
  "file"   "../obsidian/addons/metamod/bin/server"
}
Put this file in the addons folder (replacing the old one).


Visit the Sourcemod homepage and download the last version.
Put the addons and cfg folders inside the obsidian folder.


Download the Sourcemod extension for Obsidian Conflict here.

Replace master.games.txt and make it read-only, or you will have crashes when the server gets loaded.

In case you installed the SM extension while installing OC, go to sourcemod/gamedata and do the following:
  • In core.games, delete the custom folder.
  • In sdktools.games, delete the custom folder.

Go to addons/metamod/metaplugins.ini and add at a new line the following command so it can load Sourcemod:

Code: Select all

sm addons/sourcemod/bin/sourcemod_mm


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. Make yourself as admin of the server by adding a new line, and writing "your steam ID" "99:z".
In order to know your Steam ID, go into any Source game/mod, type at console STATUS (after loading a map), and copy it.

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.


Move to obsidian/cfg, make a copy of server_default.cfg, and name it server.cfg.
Go to this page, copy and replace the server.cfg with it.
Edit the ip, port, rcon_password, sv_contact, sv_download url, sv_tags, motdfile and motdurl parts as your needs.
  • IP obviously is the IP to host on.
  • port is the port to host on (maybe is not needed to be modified).
  • rcon_password is for admin security.
  • sv_contact is to find out who to speak to if there's any problems.
  • sv_downloadurl is used for the FastDL system hosted on a web server.
  • sv_tags give allows you to specify what things the server has.
  • motd file is the message of the day of course.
  • motdurl links to a web based motd file.
Here ends the server configuration.


There are three ways to start the server:
  • With ServerDoc:

    Get ServerDoc, it allows to automatically restart servers that crashed.
    Place it on their own folder, preferably outside of your server folder, since it creates some files. Ignore an unsafe notice pop-up in case you get it.
    Run the program. At the text input, write (example):

    Code: Select all

    c:\ocsteampipe\srcds.exe -console -condebug -game obsidian +maxplayers 8 +map oc_lobby +hostname "(SteamPipe) Test Server"
    Go to Menu->start.
    The SRCDS window should appear (not if you didn't put the -console command), showing all the information related with the server. From this moment, ServerDoc will take care of the server.
    To stop the server, go to ServerDoc, menu->stop (if you close the SRCDS window instead, ServerDoc will think that it crashed, restarting the server).


    Extra information about ServerDoc:
    The only types of crashes that it can't reboot against is if the server console window has frozen.
    Also the free version expires every month or 2 so you just need to download the new one and paste again your launch command line in.
  • CMD way:

    Open a command window and run the following command (example):

    Code: Select all

    c:\ocsteampipe\srcds.exe -console -condebug -game obsidian +maxplayers 8 +map oc_lobby +hostname "(SteamPipe) Test Server"
    The SRCDS command window should appear.
    To stop the server, just close the SRCDS window.
  • GUI way:

    The least used since the GUI uses more resources. Run srcds.exe, and set it as you want. For more info look here.

Ignore the following messages that can appear at the server console while loading:
  • Unknown command sv_rollangle
  • MySQL server failed to connect message to the Master OC server
  • Error warnings about gameserver.cpp (682)
  • Messages about updated sdkhooks files
  • Unknown command mat_bloom_scalefactor_scalar, cant use cvar snd_obscured_gain_db and the mat_dxlevel doesnt point into an exisiting convar?
  • Messages about doesnt recognize from the cfg net_compresspacket_minsize, mp_respawnwavetime, sv_forcepreoloadall and mp_teams_unbalance_limit.
  • Messages about func_door entity.
  • Messages about soundscapes.
  • Messages related to Steam just before the line "VAC is enabled".

Extra information about the command parameters used at the examples:
  • -console: Makes appear the SRCDS command window.
  • -condebug: Allows you to debug the server more effectively, since it logs all console output into the console.log text file.
  • -game: Defines the game/mod loaded, on this case is OC.
  • +maxplayers: Indicates the maximum number of players that can host the server.
  • +map: Changes to the indicated map as soon as the server is loaded.
  • +hostname: The name of the server that will be show at the server browser.
More information about command parameters here.

Also it could be useful this article about optimizing a dedicated server.
Last edited by MaestraFénix on Fri Jun 13, 2014 5:36 pm, edited 2 times in total.
Click on my photo to add me into your friends in Steam
Image
Steam photos | Steam videos

Image
User avatar
Neico
Lead Coder
Lead Coder
Posts: 1799
Joined: Tue Aug 15, 2006 3:39 pm
Location: Germany
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by Neico »

You don't need to repeat all the updating, if you add something via steamcmd, just make sure to run "+app_update 310 validate" afterwards

also: validate only on the first installation cycle, it costs a lot of time to validate existing content, only use it if you encounter problems or need to make sure that the content from this one appid needs to be there (like 310 ;))

PS: don't replace master.games.txt or game.obsidian.txt in sourcemod's gamedata, the most recent version for 1.35 is already shipped with sourcemod
generally, the sourcemod stuff is 2 years old, expect things not to be like they used to be...
Image
MaestraFénix
Team Member
Team Member
Posts: 2470
Joined: Mon May 10, 2010 11:50 am
Location: Spain
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by MaestraFénix »

Neico wrote:You don't need to repeat all the updating, if you add something via steamcmd, just make sure to run "+app_update 310 validate" afterwards

also: validate only on the first installation cycle, it costs a lot of time to validate existing content, only use it if you encounter problems or need to make sure that the content from this one appid needs to be there (like 310 ;))
So it would be like the following?:

Code: Select all

SteamCMD +login yoursteamlogin yoursteampass +force_install_dir pathoftheserverfolder +app_update 380 +app_update 340 +app_update 420 +app_update 280 +app_update 240 +app_update 300 +app_update 310 validate +quit
Neico wrote:PS: don't replace master.games.txt or game.obsidian.txt in sourcemod's gamedata, the most recent version for 1.35 is already shipped with sourcemod
generally, the sourcemod stuff is 2 years old, expect things not to be like they used to be...
Something happens if you do? If yes, it can be restored/solved?


I will update the wiki page ASAP (and if you could delete the "original one", or unlock it, so I could edit it and avoid having two different pages about the same topic, I would be pleased).
Click on my photo to add me into your friends in Steam
Image
Steam photos | Steam videos

Image
User avatar
Neico
Lead Coder
Lead Coder
Posts: 1799
Joined: Tue Aug 15, 2006 3:39 pm
Location: Germany
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by Neico »

you coould use validate there, but usually there's no need for that (unless there's a game update from the ones before that overrides the bin folder)
Image
MaestraFénix
Team Member
Team Member
Posts: 2470
Joined: Mon May 10, 2010 11:50 am
Location: Spain
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by MaestraFénix »

Updated the OP with some images to try make it clear as crystal.
Click on my photo to add me into your friends in Steam
Image
Steam photos | Steam videos

Image
10n02
Donator
Donator
Posts: 3
Joined: Mon Jun 30, 2014 8:49 pm

Re: SteamPipe Client fix and the new way to make a server

Post by 10n02 »

Hi,
I often play with some friends at OC on a private server, and this year, we had this error "STEAM certificate length error! 0/2048"
After investigating, I realize that I had to re-create a new server with the new SteamCMD style.
I'm a newbie in Source server management, so I have started from zero, and I have blindly followed the instructions and I'm happy to say that now everything seems to work on the coop of HL1, lost coast, HL2, HL2 ep1&2.

So thanks for this useful post.


I would like to give you some feedback, for you, and the OC server admin community, of my vision as a newbie admin :)

Maestro Fénix wrote:
Now, go into each folder of the downloaded game, and extract the VPKs that has each folder to the same folder. You need GCFScape to open it. Open the ones that ends as _dir, since the other VPKs are just data (example: In Steamapps\Common\Half-Life 2\lostcoast, extract lostcoast_pak_dir contents in the same place, in the lostcoast folder). But don't extract the bin and platform folders. Also, do not extract the VPKs that are at the platform folder at the root server folder.
I was a bit lost for this instruction. it would be good to precise "Now, go into each folder of the downloaded game in your server folder".
Also, The example is bad because you speak of "Steamapps\Common\Half-Life 2\" and at first, I thought you were talking of the folder in Steam directory.
You should use an example with "c:\ocsteampipe\lostcoast, extract lostcoast_pak_dir contents in the same place, in the lostcoast folder"
You should also specify, if we extract folder AND files? FYI, I have extracted files in the root of the pak_dir.. I'm not sure if it was useful.
Maestro Fénix wrote:
Download the Sourcemod extension for Obsidian Conflict here.

Replace master.games.txt and make it read-only, or you will have crashes when the server gets loaded.

In case you installed the SM extension while installing OC, go to sourcemod/gamedata and do the following:

In core.games, delete the custom folder.
In sdktools.games, delete the custom folder.
This is unclear for me. I have not done it... and it works without that...
Maestro Fénix wrote:
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. Make yourself as admin of the server by adding a new line, and writing "your steam ID" "99:z".
In order to know your Steam ID, go into any Source game/mod, type at console STATUS (after loading a map), and copy it.

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.


Move to obsidian/cfg, make a copy of server_default.cfg, and name it server.cfg.
Go to this page, copy and replace the server.cfg with it.
Edit the ip, port, rcon_password, sv_contact, sv_download url, sv_tags, motdfile and motdurl parts as your needs.

IP obviously is the IP to host on.
port is the port to host on (maybe is not needed to be modified).
rcon_password is for admin security.
sv_contact is to find out who to speak to if there's any problems.
sv_downloadurl is used for the FastDL system hosted on a web server.
sv_tags give allows you to specify what things the server has.
motd file is the message of the day of course.
motdurl links to a web based motd file.
I have not done that, and everything seems to work well.


It would be good to update your wiki page with this Tutorial.


Thank you for your great job.
MaestraFénix
Team Member
Team Member
Posts: 2470
Joined: Mon May 10, 2010 11:50 am
Location: Spain
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by MaestraFénix »

1: My bad, I was on a hurry and copy-pasted the same part of the client tutorial. And yes, you must extract all the content from the VPKs.

2: This step is for installing Sourcemod, and is not needed for a server.

3: This step is for installing Metamod, and is optional too for the server. The last part defines some aspects of the server, like the name or the tags.


I didn't updated the wiki page since I'm busy. I will made these fixes to the actual guide ASAP. Thank you for your feedback.
Click on my photo to add me into your friends in Steam
Image
Steam photos | Steam videos

Image
funk
Vertex
Vertex
Posts: 13
Joined: Mon Jul 25, 2011 1:05 am

Re: SteamPipe Client fix and the new way to make a server

Post by funk »

Is there an easier way to get the client to mount games? I want to set a new OC server up for my friends, but it is way too hard for them to make symbolic links and extract all the files. I wanted to do so back in march and I thought there'd be something easier since last time :/
MaestraFénix
Team Member
Team Member
Posts: 2470
Joined: Mon May 10, 2010 11:50 am
Location: Spain
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by MaestraFénix »

funk wrote:Is there an easier way to get the client to mount games? I want to set a new OC server up for my friends, but it is way too hard for them to make symbolic links and extract all the files. I wanted to do so back in march and I thought there'd be something easier since last time :/
The only easier thing to create the symlinks that I have found since the last time I wrote the tutorial was an "addon" that allows you to create them as if it was an extra option to the context menu that deploys with the right-click mouse button:

http://schinagl.priv.at/nt/hardlinkshel ... nsion.html


It can't be easier than that.


XP USERS, go follow the instructions: http://schinagl.priv.at/nt/hardlinkshel ... rwindowsxp
Last edited by MaestraFénix on Fri Nov 28, 2014 10:22 pm, edited 1 time in total.
Click on my photo to add me into your friends in Steam
Image
Steam photos | Steam videos

Image
funk
Vertex
Vertex
Posts: 13
Joined: Mon Jul 25, 2011 1:05 am

Re: SteamPipe Client fix and the new way to make a server

Post by funk »

Dang, oh well thanks anyway.
funk
Vertex
Vertex
Posts: 13
Joined: Mon Jul 25, 2011 1:05 am

Re: SteamPipe Client fix and the new way to make a server

Post by funk »

Okay im up to this part and I want to install sourcemod and metamod, just as in the other post it was unclear to the other person. I'm just as confused with this part.

"
Download the Sourcemod extension for Obsidian Conflict here.

Replace master.games.txt and make it read-only, or you will have crashes when the server gets loaded.

In case you installed the SM extension while installing OC, go to sourcemod/gamedata and do the following:

In core.games, delete the custom folder.
In sdktools.games, delete the custom folder."

where is master.games.txt and where do i place it, and is the sourcemod extension this file? game.oc.ext.2.ep2.dll
User avatar
Neico
Lead Coder
Lead Coder
Posts: 1799
Joined: Tue Aug 15, 2006 3:39 pm
Location: Germany
Contact:

Re: SteamPipe Client fix and the new way to make a server

Post by Neico »

master.games.txt is shipped with sourcemod itself, The stuff on wuala merely extends on it...
To me that info seems outdated as the current sourcemod ships with the most recent offset file so there's no need to touch the master.games.txt at all.

Just install metamod and sourcemod and place the content of the wuala folder into it, it shouldn't touch any existing files...
Image
funk
Vertex
Vertex
Posts: 13
Joined: Mon Jul 25, 2011 1:05 am

Re: SteamPipe Client fix and the new way to make a server

Post by funk »

Oh okay, thank you. I'm also setting up servers with only the oc_paysan, oc_harvest maps inside of a virtual machine so as to save running snapshots :D
Post Reply