# Game Configuration - Map Format Settings

formatinterface (string)
Interface class name in Doom Builder that is used to read and write the map data.

- For Doom map format, use "DoomMapSetIO". This is a map format that uses numeric flags.
- For Hexen map format, use "HexenMapSetIO". This is a map format that uses numeric flags.
- For UDMF map format, use "UniversalMapSetIO". This is a map format that uses named flags.

gamedetect (structure)
This is used to determine if the Game Configuration is suitable for the opened WAD file. None of the settings in this structure have any impact on the actual editing, limitations or storage of the map, but only assist the user when opening WAD files that have not been opened with Doom Builder before (when no .dbs file is available). The setting names in this structure are the lump names that must be checked for. The value of these settings (integers) indicates which rule applies to the lump name for a positive check. Valid values are:

- 1 - At least one of these lumps must exist.
- 2 - None of these lumps must exist.
- 3 - All of these lumps must exist.

Example:

    gamedetect
    {
    	TEXTMAP = 2;
    	ENDMAP = 2;
    	EXTENDED = 2;
    	BEHAVIOR = 3;
    	E1M1 = 2;
    	E1M2 = 2;
    	E1M3 = 2;
    	MAP01 = 1;
    	MAP02 = 1;
    	MAP03 = 1;
    }

maplumpnames (structure)
This structure describes the lumps that make up the complete map, including scripts and nodes. It must also indicate what Doom Builder is supposed to do with these lumps and/or where the lumps come from. These lumps are normally written by the map format interface class, but some could be generated by the nodebuilder compiler or stored by Doom Builder directly. In this structure, there should be a structure for every map lump. The name of the structure should be the lump name, in uppercase. For the map header (which name differs) you can use the name ~MAP. The following settings should be in the lump structure (unless the default value applies):

- required (boolean).
  True to indicate that this lump is a required lump for the map. Default is false.
- blindcopy (boolean).
  Set this to true when Doom Builder should copy this lump along with the map without using it. Default is false.
- nodebuild (boolean).
  When set to true, this indicates that the nodebuilder compiler generates or modifies this lump. Default is false.
- allowempty (boolean).
  Set to true to allow the nodebuilder to leave this lump empty. Default is false.
- script (string).
  When this is set, it indicates that this lump can be edited with the script editor. The contents of this lump will be loaded in the script editor automatically. Set the value to the .cfg filename (without path) of a Script Configuration to use.

Example:

    maplumpnames
    {
    	~MAP
    	{
    		required = true;
    		blindcopy = true;
    		nodebuild = false;
    	}

    	THINGS
    	{
    		required = true;
    		nodebuild = true;
    		allowempty = true;
    	}

    	LINEDEFS
    	{
    		required = true;
    		nodebuild = true;
    		allowempty = false;
    	}

    	SIDEDEFS
    	{
    		required = true;
    		nodebuild = true;
    		allowempty = false;
    	}

    	VERTEXES
    	{
    		required = true;
    		nodebuild = true;
    		allowempty = false;
    	}

    	SEGS
    	{
    		required = false;
    		nodebuild = true;
    		allowempty = false;
    	}

    	SSECTORS
    	{
    		required = false;
    		nodebuild = true;
    		allowempty = false;
    	}

    	NODES
    	{
    		required = false;
    		nodebuild = true;
    		allowempty = false;
    	}

    	SECTORS
    	{
    		required = true;
    		nodebuild = true;
    		allowempty = false;
    	}

    	REJECT
    	{
    		required = false;
    		nodebuild = true;
    		allowempty = false;
    	}

    	BLOCKMAP
    	{
    		required = false;
    		nodebuild = true;
    		allowempty = false;
    	}

    	SCRIPTS
    	{
    		required = false;
    		nodebuild = false;
    		script = "ZDoom_ACS.cfg";
    	}
    }