IWADINFO

From ZDoom Wiki
Jump to: navigation, search

IWADINFO allows the engine to identify data files that serve as stand-alone games (IWAD), rather than mods. Detected games will be listed in the IWAD selection box on startup. The engine comes with its internal IWADINFO lump (in gzdoom.pk3) to detect the classic games, but games created for GZDoom can now feature their own custom IWADINFO to declare themselves as standalone games. GZDoom will scan files with either the .iwad or .ipk3 extensions for the presence of an IWADINFO lump. IWAD files without this extension (such as doom2.wad for example) are not scanned for presence of an IWADINFO lump and therefore rely on GZDoom's internal list.

Custom IWADINFO lumps and the lump in gzdoom.pk3 follow a similar syntax, except custom IWADINFOs are expected to only define one IWAD and not include a file list. Note that standalone games will not process GAMEINFO, as this other lump is only scanned for files loaded as mods.

IWad
{
	properties
	etc
	...
}

Properties

Property Description
Name = "<string>" The game's name. This appears in the game selection list, as well as acting as the window title in windowed mode when i_friendlywindowtitle is enabled.
AutoName = "<string>" The name used for your game in the ini files. You can use a completely stand alone name to completely separate your game from pre-existing configurations...
AutoName = "MyCustomGame"

...or you can inherit the autoloads etc. from a pre-existing game while allowing separate configuration specific to your game.

AutoName = "Heretic.MyCustomGame"
Game = "<string>" The core GZDoom game used as a base. Possible values are:
  • Doom
  • Chex
  • Heretic
  • Hexen
  • Strife

If in doubt (or if your game has no ties to any of the original games) just use Doom.

Config = "<string>" Similar to AutoName, but for keybinds etc. You can use a completely stand alone name to completely separate your game from pre-existing configurations...
Config = "MyCustomGame"

...or you can use a pre-existing game's name to use their settings.

Config = "Doom"
IWADName = "<filename>" Only used in the internal lump to identify files that do not have the custom .iwad or .ipk3 extensions. Ignored in custom lumps, which describe the file containing them.
MapInfo = "<lump name>" Specify a base MAPINFO lump to load before your game's MAPINFO lump (if present). If you've defined everything in your MAPINFO's gameinfo block, this is optional. Otherwise, you may wish to inherit from one of the default GZDoom definitions.
Mapinfo = "mapinfo/doom2.txt"
MustContain = "<lump name>", "<lump name>"... Only used in the internal lump to validate external files by verifying they have the expected content, and to resolve ambiguity when different IWADs can use the same name. Ignored in custom lumps, which describe the file containing them.
BannerColors = "<foreground color>", "<background color>" The same as STARTUPCOLORS in GAMEINFO.
StartupType = "<startup type>" Optional and presumably the same as the GAMEINFO implementation.
StartupSong = "<lump name>" Optional and presumably the same as the GAMEINFO implementation.
Compatibility = "<string>", "<string>"... Set certain compatibility flags. These probably aren't very useful for stand-alone games.
Required = "<string>" Specifies that another game is required for this game to work. If that game does not exist, this game will not appear on the IWAD list. Use the game's name string, not its filename!
Required = "Hexen: Beyond Heretic"

Probably not enormously useful for standalone games.

Example

IWad
{
	Name = "My Kickass Custom Game"
	AutoName = "MyCustomGame"
	Game = "Doom"
	Config = "Doom"
	StartupType = "Hexen"
	BannerColors = "ff ff ff", "c9 00 00"
}