Addon Paks are pk4 files specially configured for custom content distribution and usage on multiplayer servers. An addon pak is not referenced by the server unless it is currently in use ( this particular map is running now for instance ), which is not true for a regular non-addon pak. This feature lets server administrators have a large number of custom maps on their server and only require the one that is currently running to be on the client's computer.

For Quake4 specific information on how to make addon paks, please see http://www.iddevnet.com/quake4/LevelEditor_MPMapDefs

Read on for all the technical details:

How to create addon paks

This section is intended for mod makers and level designers.

You will build your pak file just as usual, but add an addon.conf file at the root. That file can be empty, for an addon with no map and no dependencies, or it can define dependencies on a number of other addon paks, and define some map entries.

See this addon.conf for instance:

addonDef {
  // a  list of pak checksums this pak depends on ( one on each line, no commas )
  // you can read the checksum values for paks with the 'path' command in the console ( with developer 1 set )
  "0xdf3223a"
}

// any number of mapDef entries
// replaces the entries in def/
mapDef game/d2map01/d2map01_dm {
  "name"               "d2map01"
  "Deathmatch" "1"
  "Team DM"    "1"
  "Last Man"   "1"
  "Tourney"    "1"
}

If need to have a look at a fully working example, you can get a version of Hal9000's "EntryWay" repackaged ( thanks Hal for letting me use this ). It's split into two parts so you can see how addon pak dependencies are done too.

NOTE: The splash screen for your addon will show up in the multiplayer server creation menu, even when the pak is not referenced yet.

How to configure a multiplayer server to use addon paks

This section intended at server admins who wish to run custom addon paks.

You should only use addon paks with pure servers ( si_pure cvar ). Non pure server should only ever be used by developers.

Typing the path command at the console should usually tell you all you need to know about the paks running, referenced etc. It will list the inactive addon paks as well. When the server restarts on a map that's in an addon pak ( with si_map set to a map name that's found in addon ), the restart will reload the engine completely and reference the paks.

Note that using path with the developer cvar set to 1 gives a bit more information that may be useful.

One important gotcha is to understand that the paks that are referenced by the server and required to be present on the client is updated only during a reloadEngine step which restarts the filesytem code. If you are having trouble with addon paks accumulating, you should set the net_serverReloadEngine cvar.

Once you start running addon paks on your server it's likely you will want to setup AutoDownload so your players can get the files easily when connecting.

AddonPaks (last edited 2006-03-27 22:38:47 by TimotheeBesset)