Since Valve has decided not to release SrcDS for OS X, I took things into my own hands.
I noticed that a "dedicated.dylib" binary was included for most available Source engine games. This binary is what handles the logic for dedicated servers. I hoped that I could do something with it and I have -- but not without a lot of hacks.
My primary motivation for this was to make testing easier (for Metamod:Source and SourceMod). I find it nice to be able to develop and test without needing to run the full games on listen servers. This also has the advantage of being able to run inside a virtual machine that lacks the necessary hardware acceleration.
Hopefully someone else out there will find this useful. If you have any problems or questions, feel free to post them.
Downloads
Source Code
Special Thanks- pRED: Created CDetour
- psychonic: Checked dyld symbols on 10.5 and tested under virtual machine
- Fyren: Pasted some vital output from srcds and gdb on Linux
- Open Steamworks
General Guidelines
There are essentially two options for running a server. You could run it directly from the game's install directory in
SteamApps (usually
~/Library/Application Support/Steam/SteamApps/common/<game>). Or you may opt to have a separate copy of the game by copying it either from the
SteamApps/common directory or from a SteamCMD install on a Windows or Linux system (assuming Mac binaries are available from it).
Once you have downloaded the appropriate package for your game listed above, place the
srcds_osx and
srcds_run files from it into the server's root directory. If the package also includes a
bin directory, copy the files from it to the
bin directory of the server root as well.
Counter-Strike: Source Example
- Note: The Library folder may be hidden in Finder by default on Lion (10.7) or later. To get there you can either use Finder's Go menu while holding the Option/Alt key or you can unhide it semi-permanently it by running the following Terminal command:
You may have to reapply this nohidden flag after an OS X update.
- Note 2: If you decide to drag and drop the bin folder in Finder, make sure to hold the Option/Alt key while doing so. On OS X Lion (10.7) and later, you should be offered the option to 'Merge' folders rather than replace. I repeat, you do NOT want to completely replace the bin folder.
Once the files from the appropriate package have been extracted/copied, you can run the server by navigating to the server root directory in Terminal:
Then you can start the server by running
srcds_run with the game name, map, and any other options you'd like:
Note: It is recommended that you run a dedicated server on the same system that has the Steam client installed. Steam does NOT have to be running at the same time, however. But if you really want to run it on a computer that doesn't have the Steam client, see the
Running Server Without Steam Client section at the bottom of this post.
Note on Counter-Strike: Global Offensive
The
dedicated.dylib binary is not included in the OS X client download of the game, but this is still required to run a server. You may use the following download of
dedicated.dylib as a starting point, but I can't guarantee that it will be kept up to date:
dedicated.dylib (last updated: 12 September 2013)
It is instead recommended that the file be obtained from a dedicated server install (appid 740) via
SteamCMD on Windows or Linux (or Wine on OS X). Alternatively, you could use
Depot Downloader with
Mono. Either way, the file should be located in the
bin directory of the server's root directory.
You may even want to download the entire server via SteamCMD or Depot Downloader rather than the Steam client because all the Mac binaries are included. (The download package above is still required, of course).
Note on Insurgency
You may use the client install of the game to run a server, but Mac binaries are also included in the dedicated server install. You can download this in the Tools section of the Steam client. It's currently labeled
Insurgency Beta Dedicated Server. Note that if you use the dedicated server install, you will be overwriting/replacing the
srcds_osx binary with the one included in the srcds_osx download package above.
Running Server Without Steam Client
While it is recommended to run a dedicated server on a computer with the Steam client installed, it is possible to run one without it. However, you will need to copy a number of files from an OS X Steam client install.
First, from
/Applications/Steam.app/Contents/MacOS, copy the
Frameworks directory to your server's root directory (NOT
bin).
Next, from the
osx32 directory (full path:
/Applications/Steam.app/Contents/MacOS/osx32), copy the following files into the
bin directory of your server's root:
crashhandler.dylib,
libsteam.dylib,
libtier0_s.dylib,
libvstdlib_s.dylib, and
steamclient.dylib.
After you've copied these files, you should be able to run the server as described above.