Downloading a Steam Depot

How does this work?

Every game on Steam stores its files in a Steam Depot. This is a file storage system, and they are designed to store past versions of those files. These game files are organized by App ID, Depot ID, and Manifest ID. App ID is the game or software, for example 570 is Dota 2. Depot ID is a specific collection of game files, such as 316570 for "Dota 2 Content". Manifest ID is a specific version of those game files, like 23442636256031311 for September 2nd, 2015.

You can download your desired version of the Dota 2 files directly from Steam freely. We have neatly packaged these to make things easier here, but if you wish you can download directly from Steam with the following instructions.

What do I download?

SteamDB is a wonderful organization which maps all the data related to Steam. By using this we can determine what App ID, Depot ID, and Manifest ID we need for a particular patch.

Please note, that when Source 2 released, Valve moved all the Source 1 Depots under a different App ID. This means you can download every Source 1 version from App ID 316570 and every Source 2 version from 570.

Source 1 Depots: https://steamdb.info/app/316570/depots/
Source 2 Depots: https://steamdb.info/app/570/depots/

Now that we have the appropriate App ID, we need to find the right Depots. Game data is split between these Depots, so we need to download several and combine them.

For Source 1, you must download at minimum Depot ID 571 "dota 2 beta content", your system binaries like Windows Depot ID 573 "dota 2 beta win32 content", and your language. For english it's Depot ID 575 "dota 2 beta english".

For Source 2, the game is much larger, but the process is the same. You must download every Content Depot (1-6), and your system binaries (win32 + win64).

Now that we know which Depots, we need to know which version of those files. These are saved as snapshots called "Manifests". SteamDB shows the date of a Manifest. So for example, that last update for Source 1 happened on September 2nd, 2015. If we wanted to download patch 6.84c Source 1, we would simply need to download all the latest Manifests for Content/Windows/English Depots for Source 1.

To save time, I'll include the App ID, Depot IDs, and Manifest IDs for 6.84c Source 1. If you wanted to download a different patch, you would need to download the AppID/DepotID/ManifestID that matches the date of a patch release (for example, 7.00 released on December 12th, 2016. So you would download the Manifests from that day).

Source 1 6.84c App/Depots/Manifests

Content:

AppID: 316570 - DepotID: 571 - ManifestID: 23442636256031311
Windows Binaries:
AppID: 316570 - DepotID: 573 - ManifestID: 7613852565918547628
English Language:
AppID: 316570 - DepotID: 575 - ManifestID: 1660329391753369241

How do I download?

You can use the Steam Client itself, or another helpful tool called the SteamRE Depot Downloader. This guide will focus on using the Steam Client. To use the Steam Client, you can use the web address steam://open/console. When you choose open link with Steam, you will get a new tab in the Steam Client called "Console". Here we can enter commands to download from the depots.

The commands are simple

download_depot {AppID} {DepotID} {ManifestID}
So to download for Source 1 6.84c, you would use:
download_depot 316570 571 23442636256031311
download_depot 316570 573 7613852565918547628
download_depot 316570 575 1660329391753369241

Finished downloading, what now?

When your download completes, it will show you where the Depot was downloaded.

After you have finished downloading all the Depots needed, you will then need to combine the downloaded files. You can move this folder anywhere on your computer for easier access.
We're almost ready to play. There is a file not include that tells Steam what App ID is being launched. We need to create this file "steam_appid.txt" alongside dota.exe. Inside this file, we need to add 570 in hexadecimal.
3537 300a 00
Lastly, we want to modify "steam.inf" so that the game thinks it's running the latest version. This file is inside the "dota" folder. You can simply change the ClientVersion and ServerVersion to a Steam URL, which will always keep you up to date.
ClientVersion=https://api.steampowered.com/IGCVersion_570/GetClientVersion/v1?format=xml
ServerVersion=https://api.steampowered.com/IGCVersion_570/GetClientVersion/v1?format=xml
You can skip this step if you download the Depot fixups, which includes the text config files: Depot Fixups for Source 1 or Source 2

Now just run dota.exe and you're ready to play! For Source 2, this exe will be found in /game/bin/Win64/dota.exe - Replace Win64 with your system binaries.

Linux Configuration

While there are Linux binaries for Source 1, they can be iffy. This is largely due to library incompatibility of the old game, and some bugs with the OpenGL renderer. Source 2 versions tend to work very well, and also support Vulkan. The default launch script from the Depot has some issues on some systems. You can download a modified version of the Linux/OSX Script here: Source 1 or Source 2

If the game does not launch with Linux binaries, it is recommended to add the game as a non-steam game. Then go to the games properties and set compatibility mode to use the "Steam Linux Runtime". This will use Steams internal libraries instead of your systems, and may help fix issues.

Alternatively, you can do the above steps but target the Windows binaries and run the game using Proton. Proton 6.3+ works very well, as do the GE versions. One noted bug is the Play tab crashes, however this does not prevent you from playing.

Mac Configuration

Recent Mac computers use ARM based CPUs. These will not work with the Mac binaries, because they are designed for x86_64. If you have an older Mac, then this may work for you. Otherwise, you would need to use something like "Rosetta" to translate these instruction.

Unfortunately, our testing team does not own any Macs, and so we are not able to provide instructions on using Rosetta for this. Please refer to the Apple documentation: https://support.apple.com/en-us/102527

Lastly, the Wine compatibility layer has been experimenting with translating ARM/x86_64. This is not possible at the moment, but may be at a later date.

Game Configuration - Autoexec.cfg

These are some common Autoexec commands

// change hero minimap size Dota_minimap_hero_size 1300 // right click deny dota_force_right_click_attack 1 // auto repeat right click dota_player_auto_repeat_right_mouse 1 // disable camera zoom dota_camera_disable_zoom 1 // quick attack (you need to unbind "a" in the settings) bind "a" "mc_attack; +sixense_left_click; -sixense_left_click"

Server Setup

Source 1 Dedicated Server

We have

Setting up a Source 1 server is a fairly straight forward process. First, you need a copy of your desired patch. This involves the content depot and your system binaries, such as Win32. I will focus on 6.84c here, but other patches should work as well. Next, you will need to install a server plugin known as D2Fixups. This was developed by the AlliedModders. A wonderful group that develops server-side modifications for Gold Source and Source engine games. D2Fixups is a plugin for Metamod:Source, a C++ hook platform for the Source engine. SourceMod is also useful to add extra functions, such as joining a team with a chat command. AlliedModders stopped developing for Dota 2 because of the Source 2 Reborn client. However, the last versions released for Dota 2 Source 1 work perfectly well. These are SourceMod 1.8.0 build 5660, and Metamod:Source 1.11 build 990.

First, you need the full Source 1 Dota 2 client. Either copy an existing install or download a fresh copy from the Steam Depots. You must remove autoexec.cfg to start a server. Otherwise, the server will immediately crash. Then we need to install SRCDS, D2Fixups, Metamod:Source, and SourceMod to this new or copied Dota 2 client. Download the zips for your platform. SRCDS should be extracted to the root directory. The rest should be extracted to the /dota/ folder.



D2Fixups: https://forums.alliedmods.net/attachment.php?attachmentid=142959&d=1425658537

Windows

Linux

Mac

Disable AutoUpdate in /dota/addons/sourcemod/config/core.cfg "DisableAutoUpdate" "yes"

After installing SRCDS, SourceMod, Metamod:Source, and D2Fixups, you will want to disable the auto update for SourceMod. This will prevent it from updating to an unsupported version. The file can be found in:

/dota/addons/sourcemod/config/core.cfg
Inside core.cfg, add or change DisableAutoUpdate to yes:
"DisableAutoUpdate" "yes"