diff --git a/Library-Locations.md b/Library-Locations.md new file mode 100644 index 0000000..6e29e69 --- /dev/null +++ b/Library-Locations.md @@ -0,0 +1,64 @@ +Generally speaking the native dlls (steam_api.dll, steam_api64.dll, libsteam_api.dylib etc) need to be next to the application's exe. + +# Development + +When you're developing the appropriate dll needs to be somewhere your game/editor can find them. If you're using Unity they need to be in your project root. Be careful that they match with the dlls we provide in the release zip - if they don't you'll probably crash. + +![Rust Development Example](https://files.facepunch.com/garry/2017/07/08/93e03fee.png) + +# Rust Example + +We ship Rust on Windows32, Windows64, Osx and Linux. Here's where we copy the libraries, where Rust/ is the location of Rust.exe/Rust.app/Rust + +![Rust Development Example](https://files.facepunch.com/garry/2017/07/08/b9577971.png) + + +| Platform | File, Location | +| ------------- | ------------- | +| Windows (32bit) | Rust/steam_api.dll | +| Windows (64bit) | Rust/steam_api64.dll | +| Osx (64bit) | Rust/libsteam_api.dylib | +| Linux (64bit) | Rust/libsteam_api64.so | + +## Dedicated Server + +The dedicated server is a bit different. It can run without Steam so we need to ship a few more dlls alongside it. + +| Platform | File, Location | +| ------------- | ------------- | +| Windows (64bitbit) | Rust/steam_api64.dll | +| | Rust/steamclient64.dll | +| | Rust/tier0_s64.dll | +| | Rust/vstdlib_s64.dll | + +Technically when you ship a dedicated server you're meant to include appid 1007 - which includes these dlls already (something you need to talk to Valve about I think). But we play it safe by including dlls we know will always work - so we don't run the risk of appid 1007 updating and breaking our server. + +We grab these dlls using [steamcmd](https://developer.valvesoftware.com/wiki/SteamCMD), using these scripts. Osx doesn't seem to be able to run dedicated servers. + +### Windows +``` +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../sdk_win +app_update 1007 validate +quit +``` + +### Linux +``` +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +@sSteamCmdForcePlatformType linux +login anonymous +force_install_dir ../sdk_lin +app_update 1007 validate +quit +``` + +### Bat File +``` +"SteamCmd.exe" +runscript ../sdk_win.txt +"SteamCmd.exe" +runscript ../sdk_osx.txt +``` \ No newline at end of file