Auto Download with EMZ

Servers often run custom maps to give players a little more variety than the stock maps that come with Doom 3. To allow players to join a server and get the extra files they need Doom 3 includes a simple system to automatically download files, which works well once you set it up correctly.

One thing to be clear on at the start is that the files that get downloaded do not come from the game server. It simply tells the player's copy of Doom 3 what extra files they need and where it can download them from. This can be either an http or an ftp server.


Setting Up Your Auto-download

If you have your own server that you plan to use to host the download files, read this section.

If you don't have your own download server don't panic and skip to here to take advantage of a public auto-download service.

Say you have "Phrantic II" and "Never Outgunned" on an EMZ 1.31a server the extra content  that needs downloading to players would look like this (assuming the server is running on Windows):

C:\Program Files\Doom 3\base\map_swd3dm1.pk4
C:\Program Files\Doom 3\base\map_swd3dm2.pk4
C:\Program Files\Doom 3\emz\emz000.pk4
C:\Program Files\Doom 3\emz\emz001.pk4
C:\Program Files\Doom 3\emz\emz002.pk4
C:\Program Files\Doom 3\emz\emz003.pk4
C:\Program Files\Doom 3\emz\the-emz-d3-131-data.pk4
C:\Program Files\Doom 3\emz\the-emz-d3-131a-windows.pk4
C:\Program Files\Doom 3\emz\the-emz-d3-131a-linux.pk4
C:\Program Files\Doom 3\emz\the-emz-d3-131a-mac.pk4

You should place the copies for download on your web server with the files stored in a mirror folder structure, like this:

http://www.your-web-server.com/doom3/base/map_swd3dm1.pk4
http://www.your-web-server.com/doom3/base/map_swd3dm2.pk4
http://www.your-web-server.com/doom3/emz/emz000.pk4
http://www.your-web-server.com/doom3/emz/emz001.pk4
http://www.your-web-server.com/doom3/emz/emz002.pk4
http://www.your-web-server.com/doom3/emz/emz003.pk4
http://www.your-web-server.com/doom3/emz/the-emz-d3-131-data.pk4
http://www.your-web-server.com/doom3/emz/the-emz-d3-131a-windows.pk4
http://www.your-web-server.com/doom3/emz/the-emz-d3-131a-linux.pk4
http://www.your-web-server.com/doom3/emz/the-emz-d3-131a-mac.pk4

To configure the server for auto-download you need to set up some CVars in your server configuration file:

  • net_serverDownload

0 - Server doesn't provide any downloads
1 - Download requests will take the player to the web page set in the si_serverURL CVar - the game will shut down and open the web page.
2 - Server provides locations of the files required to Doom 3 on the player's PC. This value of 2 is what you need for auto-download.

  • net_serverDlBaseURL

This is the "root" folder on the download server where you have stored your files. In the example above it would be "http://www.your-web-server.com/doom3". This can be either an ftp or http location. Do NOT put a slash on the end of the path or your auto-download may not work.

  • net_serverDlTable

With standard Doom 3 and versions of EMZ prior to 1.31a this has to be set to a list which included all of the files. With EMZ 1.31 you can simply set it to "*" and your server will assume that every custom map it is running is also available for download on your download server.

Even with 1.31.a you can still use the old list method if you want. For the files in the example above you would use the setting below. This would be one long line in your config script but has been split up to make it easier to see.

set net_serverDlTable "base/map_swd3dm1.pk4;base/map_swd3dm2.pk4;
    emz/emz000.pk4;emz/emz001.pk4;emz/emz002.pk4;emz/emz003.pk4;
    emz/the-emz-d3-131-data.pk4;emz/the-emz-d3-131a-windows.pk4;
    emz/the-emz-d3-131a-linux.pk4;emz/the-emz-d3-131a-mac.pk4"

Now that "*" can be used to mean "all custom PK4 files" setting up your own auto-download is as simple as adding the following three lines to your server config file:

    seta net_serverDownload "2"
    seta net_serverDlBaseURL "http://www.your-web-server.com/doom3"
    seta net_serverDlTable "*"


Website design based on Melankolia template by Ercan K.