MAPINFO/GameInfo definition

From ZDoom Wiki
Jump to navigation Jump to search
Note: This page is about the Gameinfo section in the MAPINFO lump. It should not be confused with the GAMEINFO lump.


A GameInfo definition begins with the keyword "gameinfo". This changes miscellaneous information about the game such as what lump should be used for the title picture.

GameInfo commands

gameinfo { properties }

Defines a GameInfo block.

GameInfo properties

The following properties are supported within a GameInfo definition:

Property Description
AdvisoryTime = <value> Amount of time in seconds needed to pass in order for the ADVISOR lump to be displayed. If this is set to 0 the ADVISOR lump will never be shown.


Border = <preset>

Border = <size>, <offset>, "<tr>", "<t>", "<tl>", "<r>", "<l>", "<br>", "<b>", "<bl>"

Sets the border graphics used in various places throughout the game. Most notably is the border around the game window when a small screen size is used. Valid presets are: DoomBorder, HereticBorder, or StrifeBorder.


BackpackType = "<actor>" Sets the backpack given when cheating.


BorderFlat = "<lump>" Default lump used for screen border.


ChatSound = "<sound>" SNDINFO entry played when chatting. Note that this sound is also used by the DoomWikiLogoIcon.pngconversation feature.


CreditPage = "<lump1>" [, "lump2" [, ...]] Sets the lumps used to display the credits, overriding any previously set credits lumps.


AddCreditPage = "<lump1>" [, "lump2" [, ...]] Adds to the list of already available credits lumps.


DefaultBloodColor = "<color>" Sets the default color for blood decals.


DefaultBloodParticleColor = "<color>" Sets the default color for blood particles.


DrawReadThis = <bool> Sets if the "Read This" option should appear on the menu.


FinaleFlat = "<lump>" Default background for cluster messages.


FinaleMusic = "<lump>" Default music for cluster messages.


FinalePage = "<lump1>" [, "lump2" [, ...]] Defines the default end game pictures.


ForceTextInMenus = <bool> Replaces all main menu graphics with BIGFONT-based text strings set in the LANGUAGE files, allowing for more flexible language support.

Note that there are two main menu definitions: the standard main menu, which is called MainMenu, and a text-only variant with the name MainMenuTextOnly. The engine switches between them based on the state of this property. So for the purpose of adding to or replacing the main menu, make sure the correct main menu definition is used.


InfoPage = "<lump1>" [, "lump2" [, ...]] Defines the help screens, overriding any previously defined ones (accessed by F1 or "Read This").


AddInfoPage = "<lump1>" [, "lump2" [, ...]] Adds to the list of already available lumps of info pages.


IntermissionCounter = <bool> If true, the numbers in the intermission (kills, secrets etc) count up to their totals (normal Doom behavior). If false, the final total for each category simply appears in turn without a count-up.


IntermissionMusic = "<lump>" Sets the default music played during the intermission.


NightmareFast = <bool> If true, all monsters move faster in fast monsters mode.


NoLoopFinaleMusic = <bool> Changes if the finale music should be looped.


PageTime = <value> Amount of time to display the credit page between demos.


QuitSound = "<sound>" SNDINFO entry played on quit.


SkyFlatName = "<lump>" Flat which represents the sky. (Example: "F_SKY1")


StatusBar = "<lump>" Sets the default SBARINFO status bar.


TelefogHeight = <height> Changes the height of the teleport fog.


TitleMusic = "<lump>" Sets the lump of the music played with the title picture.


TitlePage = "<lump>" Sets the lump used for the title picture.


TitleTime = <value> Sets the time in seconds the title picture is displayed for.


Translator = "<lump>" Sets the default xlat lump to use for Doom format maps.


WeaponSlot = <slot>, "<weapon>", ... Sets the default configuration for weapon slot <slot>.


ArmorIcons = "<basic icon lump>", <advanced savepercent value>, "<advanced icon lump>" Defines the default icon for the standard basic armor, the savepercent (as a floating point number) for the standard advanced armor, and the default icon for the standard advanced armor.


DimColor = "<color>" The color to which the screen is dimmed when in menu mode. This is overridden by the dimcolor console variable if dimamount is a positive or null value.


DimAmount = <value> Controls how much the game screen is "dimmed" to the dim color when in menu mode. A value of 0 doesn't change the screen at all, while a value of 1 obscures it entirely behind the dim color. This is overridden by the dimamount console variable if the latter is a positive or null value.


DefInventoryMaxAmount = <value> Maximum amount in an inventory of an item with the inventory.defmaxamount actor property.


DefKickback = <value> Weapon kickback for weapons with the Weapon.DefaultKickBack property. For Doom and Chex Quest, this is 100; for Heretic, Hexen and Strife, it is 150.


DefaultRespawnTime = <value> Number of seconds before a monster is respawned in skill settings such as Doom's Nightmare!.


DefaultDropStyle = <value> Manner in which items are dropped, unless overridden by the sv_dropstyle console variable. Valid values are 1 (standard style) or 2 (Strife style). The Strife style generally tosses dropped item farther away.


Endoom = "<lump>" Name to use for the ENDOOM lump.


PickupColor = "<color>" Changes the color of the screen tint caused by picking up items. (This effect was historically handled by a palette swap in Doom, but ZDoom has not supported that method for a long time, so this property can be used as a replacement.)


QuitMessages = "<message1>" [, "message2" [, ...]] Lists the various random quit messages, overriding any previously defined messages. If the first character of a message is a $ sign, it is taken as a reference to a string defined in the LANGUAGE lump.


AddQuitMessages = "<message1>" [, "message2" [, ...]] Adds to the list of already available quit messages.


MenuFontColor_Title = "<color>" Color used for the titles of menu pages, as defined in TEXTCOLO.


MenuFontColor_Label = "<color>" Color used for setting labels in menu pages, as defined in TEXTCOLO.


MenuFontColor_Value = "<color>" Color used for setting values in menu pages, as defined in TEXTCOLO.


MenuFontColor_Action = "<color>" Color used for actions in menu pages, as defined in TEXTCOLO.


MenuFontColor_Header = "<color>" Color used for section headers in menu pages, as defined in TEXTCOLO.


MenuFontColor_Highlight = "<color>" Color used for highlighted items in menu pages, as defined in TEXTCOLO.


MenuFontColor_Selection = "<color>" Color used for selected items in menu pages, as defined in TEXTCOLO.


MenuSliderColor = "<color>" Color used for the slider.


MenuSliderBackColor = "<color>" Color used for the slider's background.


MenuBackButton = "<lump>" Back button icon optionally used in menu pages.


PlayerClasses = "<playerclass1>" [, "playerclass2" [, ...]] Defines which player classes are available in the game, overriding any previous definitions.


AddPlayerClasses = "<playerclass1>" [, "playerclass2" [, ...]] Adds to the list of already available player classes.


PauseSign = "<lump>" Defines which image lump to use for the sign displayed when the game is paused.


GibFactor = <value> Defines the negative value, as a factor of a monster's starting health, to which its hit points must be reduced to trigger the extreme death state instead of the normal death state when killed. This only affects monsters who do not have a GibHealth property defined.


CursorPic = "<lump>" Chooses the default mouse cursor when using the mouse in menu mode. A cursor must be a graphic no larger than 32x32 pixels in dimensions.


SwapMenu = <bool> The normal main menu order is "new game, options, load game, save game". If swapmenu is true, this becomes "new game, load game, save game, options". This property defaults to false.


TextScreenX = <value> Defines the default X offset for intermission text screens.


TextScreenY = <value> Defines the default Y offset for intermission text screens.


DefaultEndSequence = "<name>" Selects which end sequence is used with the default endgame. The name must correspond to a sequence defined in MAPINFO.


MapArrow = "<lump>" [, "cheatlump"] Defines which map arrow vector graphics is used to represent the player on the automap.


NoRandomPlayerClass = <bool> Removes the random option from the class selection menu and player setup.


DontCrunchCorpses = <bool> Corpses will not turn into gibs when crushed, provided they do not have a Crush state defined. If they do, this flag is ignored for them.


CheatKey = <lump> Defines which map arrow vector graphics is used to represent keys on the automap when using the automap cheat to show actors and am_showkeys is true.


EasyKey = <lump> Defines which map arrow vector graphics is used to represent keys on the automap when using a skill setting that has the EasyKey property set.


ForceKillScripts = <bool> If set to true, forces all killable things to fire KILL-type ACS scripts. (Unless they have the +NOKILLSCRIPTS flag)


PrecacheSounds = "<sound1>" [, "sound2" [, ...]] Preloads all the sounds provided when a level is first loaded. Unlike the map property, the sounds are preloaded on every map.


PrecacheTextures = "<texture1>" [, "texture2" [, ...]] Preloads all the textures provided when a level is first loaded. Unlike the map property, the textures are preloaded on every map.


PrecacheClasses = "<actor1>" [, "actor2" [, ...]] Preloads all the actors provided when a level is first loaded. This means all actor sprites, translations, renderstyles, etc. In some heavier mods, an actor's sprite images may be of high quality and cause a noticeable moment of lag when viewing it for the first time. Using this property will resolve that issue. Unlike the map property, the actors are preloaded on every map.


AddEventHandlers = "<classname1>" [, "classname2" [, ...]]

EventHandlers = "<classname1>" [, "classname2" [, ...]]

Adds the specified event handler(s) to the list of global event handlers. Unlike map-specific event handlers, StaticEventHandler-derived classes are allowed here.

EventHandlers behaves identically to AddEventHandlers. Prior to 4.8.0, EventHandlers used to clear the list before adding to. This was changed due to concerns over compatibility between mods.


MessageBoxClass = "<classname>" Allows to specify a custom class for message box displays. The class must derive from the MessageBoxMenu class.


DefaultConversationMenuClass = "<classname>" Allows to specify a custom class for Strife conversation displays. The class must derive from the ConversationMenu class.


CorrectPrintBold = <bool> When PrintBold is called, the engine executes Print, instead. Due to compatibility concerns, the issue cannot simply be fixed. This property, if set to true, corrects the behavior of the function.


AltHudClass = "<classname>" Allows to specify a custom class for the alternate HUD, which must derive from the AltHUD class. The engine falls back to the internal alternate HUD class if the specified class is either "None", does not exist, or is not derived from the AltHud class. The custom class is only usable by the engine if the hud_althud_forceinternal console variable is set to false.


NoMergePickupMsg = <bool> When picking up multiple items with identical pickup messages at the same time, only a single pickup message is displayed for those items combined. This property disables that so that a pickup message is displayed for each item, instead.


FullscreenAutoaspect = <mode> Aspect ratio control for fullscreen images. The modes are:
  • 0: Treat all images as having an aspect ratio of 4:3.
  • 1: Scale all images to fit the screen, becoming either pillarboxed or letterboxed.
  • 2: Scale all images to fill the screen.
  • 3: Scale all images so that the center 4:3 area is always fully visible. This is the recommended mode for 16:9 images designed to be shown with the sides being cropped on narrower displays.

The default mode is 3.


StatusBarClass = "<classname>" The status bar class to use as defined in ZScript. The class must derive from the BaseStatusBar class or a descendant.


ForceNoGFXSubstitution = <bool>


BlurAmount = <amount> Controls how much the game screen is blurred when in menu mode. This ranges from 0 to 1.0, with 0 being no blur.


StatScreen_MapNameFont = "<fontname>" [, "color"]


StatScreen_FinishedFont = "<fontname>" [, "color"]


StatScreen_EnteringFont = "<fontname>" [, "color"]


StatScreen_ContentFont = "<fontname>" [, "color"]


StatScreen_AuthorFont = "<fontname>" [, "color"]


Dialogue = "<lump>" Adds the specified conversation lump. This lump is loaded with each map as long as the map does not have a local conversation lump. Long-name lumps are supported.

Dialogue clears the list of global conversation lumps that are added by AddDialogues before it.


AddDialogues = "<lump1>" [, "lump2" [, ...]] Adds the specified conversation lump(s) to the list of global conversation lumps. These lumps are loaded with each map, before a map's local conversation lump and that which is added through Dialogue. Long-name lumps are supported.


StatScreen_Single = "<classname>" The intermission (tally) class to use as defined in ZScript for single-player mode. The class must derive from the StatusScreen class or a descendant.


StatScreen_Coop = "<classname>" The intermission (tally) class to use as defined in ZScript for cooperative mode. The class must derive from the StatusScreen class or a descendant.


StatScreen_DM = "<classname>" The intermission (tally) class to use as defined in ZScript for deathmatch mode. The class must derive from the StatusScreen class or a descendant.


NormSideMove = <walkspeed>, <runspeed> Player's base side movement speeds. In all games, walking speed is 24.0 and running speed is 40.0.


NormForwardMove = <walkspeed>, <runspeed> Player's base forward/backward movement speeds. In all games, walking speed is 25.0 and running speed is 50.0.


HideParTimes = <bool> Par and "suck" times are not displayed on the intermission (tally).


HelpMenuClass = "<classname>" The menu class to use to handle drawing of the help screen, as defined in ZScript. The class must derive from the Menu class or a descendant. Default is "ReadThisMenu".


MenuDelegateClass = "<classname>" The menu delegate class to use by the game, as defined in ZScript. The class must derive from the MenuDelegateBase class or a descendant. Default is "DoomMenuDelegate".


Intro { ... } The cutscene to play at the beginning of the game, this block supports the following commands:
  • Video = "<videoname>"
Sets the video for the cutscene to play. This must be the full name of the video file, which consists of the path to the file, its name and extension, e.g "graphics/videos/coolvideo.ivf". For a list of supported video formats, see Video format.
  • Function = "<functionname>"
Specifies a ZScript function for the cutscene to run, rather than a video. This ZScript function needs to be static, have no return type, and take a ScreenJobRunner as its sole argument.
  • Sound = "<soundname>"
Specifies the sound that should play during the cutscene. This uses the logical name of a sound. (Verification needed) By default, GZDoom will instead look for an identically named OGG, FLAC, MP3, OPUS, or WAV file in the same directory as the video.
  • SoundID = <id>
Specifies the ID of the sound to play during the cutscene. The default is -1. (Need more info) (Verification needed)
  • FPS = <value>
Sets the framerate to play the cutscene at. This only works with ANM video.
  • Delete
Deletes the cutscenes' function and assigned video. The cutscene will still be defined, but will simply not play anything.
  • Clear
Clears the cutscene definition.


BasicArmorClass = "<classname>" (New from 4.13.0)

The basic armor class to use for the game as defined in ZScript. The class must derive from BasicArmor or a descendant. The engine falls back to BasicArmor if the specified class is not valid.


HexenArmorClass = "<classname>" (New from 4.13.0)

The Hexen armor class to use for the game as defined in ZScript. The class must derive from HexenArmor or a descendant. The engine falls back to HexenArmor if the specified class is not valid.

Examples

Gameinfo
{
    titlepage = "TITLEPIC"
    creditpage = "CREDIT"
    titlemusic = "$MUSIC_DM2TTL"
    titletime = 11
    advisorytime = 0
    pagetime = 5
    chatsound = "misc/chat"
    finalemusic = "$MUSIC_READ_M"
    finaleflat = "SLIME16"
    finalepage = "CREDIT"
    infopage = "HELP", "CREDIT"
    quitsound = "menu/quit2"
    borderflat = "GRNROCK"
    border = DoomBorder
    telefogheight = 0
    defkickback = 100
    skyflatname = "F_SKY1"
    translator = "xlat/doom.txt"
    mapinfo = "mapinfo/doom2.txt"
    defaultbloodcolor = "68 00 00"
    defaultbloodparticlecolor = "ff 00 00"
    backpacktype = "Backpack"
    armoricons = "ARM1A0", 0.5, "ARM2A0"
    statusbar = "sbarinfo/doom.txt"
    intermissionmusic = "$MUSIC_DM2INT"
    intermissioncounter = true
    weaponslot = 1, "Fist", "Chainsaw"
    weaponslot = 2, "Pistol"
    weaponslot = 3, "Shotgun", "SuperShotgun"
    weaponslot = 4, "Chaingun"
    weaponslot = 5, "RocketLauncher"
    weaponslot = 6, "PlasmaRifle"
    weaponslot = 7, "BFG9000"
    dimcolor = "ff d7 00"
    dimamount = 0.2
    definventorymaxamount = 25
    defaultrespawntime = 12
    defaultdropstyle = 1
    endoom = "ENDOOM"
    pickupcolor = "d6 ba 45"
    quitmessages = "$QUITMSG", "$QUITMSG1", "$QUITMSG2", "$QUITMSG3", "$QUITMSG4", "$QUITMSG5", "$QUITMSG6", "$QUITMSG7",
                   "$QUITMSG8", "$QUITMSG9", "$QUITMSG10", "$QUITMSG11", "$QUITMSG12", "$QUITMSG13", "$QUITMSG14"
                  
    menufontcolor_title = "RED"
    menufontcolor_label = "UNTRANSLATED"
    menufontcolor_value = "GRAY"
    menufontcolor_action = "GRAY"
    menufontcolor_header = "GOLD"
    menufontcolor_highlight = "YELLOW"
    menufontcolor_selection = "BRICK"
    menubackbutton = "M_BACK_D"
    playerclasses = "DoomPlayer"
    pausesign = "M_PAUSE"
    gibfactor = 1
}