PK3 is an alternate extension for ZIP files. This nomenclature was introduced by Quake III Arena. However, contrarily to the PAK format used by Quake and Quake II, PK3 is not its own format, but merely a naming trick to prevent the operating system from associating these files with "virtual folders" or archiving software, and to avoid leading users to believe they have to extract the content to make the game work.
Several source ports have adopted support for using PK3 instead of, or in addition to, WAD files to distribute mods. But unlike WAD files (which have standardized marker lumps such as P_START/P_END or F_START/F_END for various lump types), there are no cross-port standards for how data should be organized when placed in a PK3 file.
Since the ZIP format imitates a filesystem with a tree hierarchy, the differences between the various implementations of "PK3" files reside mostly in the folder structure to which a PK3 mod should conform.
- Doomsday and Risen3D use a model detailed here.
- Eternity uses a model mostly compatible with ZDoom's, detailed here. A .pke extension is recommended for Eternity-specific modifications.
- 3DGE also uses a model mostly compatible with ZDoom's, detailed here. An .EPK (Edge PaK) zip extension is recommended for 3DGE-specific modifications.
- Vavoom has a model inspired from the approach used in the Quake series or Doom 3.
- ZDoom, GZDoom, and Zandronum use a model detailed here.
Although the ZIP format allows for many different compression methods, only two are generally supported: store (method 0), which applies no compression at all, and deflate (method 8). Many utilities may simply fail to open a ZIP archive if at least one of its files was compressed with an unsupported method. See section 4.4.5 in the official ZIP format specifications for a full list of ZIP compression methods.