OPTIONS

From DoomWiki.org

OPTIONS is a text lump that can be used to set various game options from inside a WAD, taking precedence over configuration file settings.

History[edit]

The OPTIONS lump was first introduced by Lee Killough in 1998, together with the MBF source port, to give map authors the ability to set many of the new options that MBF included, such as those accessible in the Doom Compatibility menu, from inside a WAD file rather than requiring the player to set them themselves. The lump was later adapted by several source ports that built on MBF's code base, such as SMMU, Fusion, or WinMBF, as part of the general feature set of MBF.

The PrBoom source port, despite being MBF-compatible since its merger with LxDoom and LsdlDoom in May 2000 as well as featuring MBF's Doom Compatibility menu, did not implement support for the OPTIONS lump, nor did its direct successor PrBoom+.

In May 2021, DSDA-Doom, a fork of PrBoom+, introduced support for a trimmed-down version of the lump as part of the MBF21 specification, and in the process also added support for the lump's functionality under MBF compatibility (-complevel 11). Since DSDA-Doom had removed access to the individual compatibility options from the in-game menu (as well as the configuration file), this made the OPTIONS lump the only means to set these options in the engine.

In August 2024, the official Doom + Doom II port made in the KEX Engine introduced support for the MBF21 version of the lump upon its release.

Features[edit]

The OPTIONS lump in MBF supports 110 different options, ranging from things like compatibility settings and automap or HUD colors, to chat strings and weapon priority. The lump has the same format as the MBF configuration file: a text file listing key–value pairs, optionally separated by blank or comment lines; however, only the keys that are to be set need to be included in the lump.

MBF21's OPTIONS lump, by comparison, only supports 36 keys—including some new additions—most of which accept a boolean value of 1 or 0. The lump is only functional under compatibility levels that support it, namely MBF and MBF21 (-complevel 11+).

MBF OPTIONS lump[edit]

The following is a full listing of all the options in MBF that can be set through the OPTIONS lump as they are displayed inside the MBF configuration file.

;mbf.cfg format:
;[min-max(default)] description of variable
;* at end indicates variable is settable in wads
;variable   value

[0-1(0)] 1 to enable variable pitch in sound effects (from id's original code) *
pitched_sounds                0

[0-1(1)] 1 to enable translucency for some things *
translucency                  1

[0-100(66)] set percentage of foreground/background translucency mix *
tran_filter_pct              66

[0-1(1)] 1 to enable flashing HOM indicator *
flashing_hom                  1

[0-1(0)] 1 to enable recoil from weapon fire *
weapon_recoil                 0

[0-1(0)] 1 to enable pre-beta BFG2704 *
classic_bfg                   0

[0-1(1)] 1 to enable monsters remembering enemies after killing others *
monsters_remember             1

[0-1(1)] 1 to enable monsters fighting against each other when provoked *
monster_infighting            1

[0-1(0)] 1 to enable monsters backing away from targets *
monster_backing               0

[0-1(1)] 1 to enable monsters to intelligently avoid hazards *
monster_avoid_hazards         1

[0-1(0)] 1 to enable monsters to move up/down steep stairs *
monkeys                       0

[0-1(1)] 1 to enable monsters to be affected by friction *
monster_friction              1

[0-1(1)] 1 to enable monsters to help dying friends *
help_friends                  1

[0-3(0)] number of single-player helpers *
player_helpers                0

[0-999(128)] distance friends stay away *
friend_distance             128

[0-1(1)] 1 to enable dogs to jump *
dog_jumping                   1

[0-1(1)] 1 to disable use of color on status bar *
sts_always_red                1

[0-1(0)] 1 to make percent signs on status bar always gray *
sts_pct_always_gray           0

[0-1(1)] 1 to disable doubled card and skull key display on status bar *
sts_traditional_keys          1

[0-1(1)] 1 to use Doom's main menu ordering *
traditional_menu              1

[0-1(0)] Zombie players can exit levels *
comp_zombie                   0

[0-1(0)] Powerup cheats are not infinite duration *
comp_infcheat                 0

[0-1(1)] Build stairs exactly the same way that Doom does *
comp_stairs                   1

[0-1(0)] Monsters can telefrag on MAP30 *
comp_telefrag                 0

[0-1(0)] Some objects never move over tall ledges *
comp_dropoff                  0

[0-1(0)] Objects do not fall off ledges under their own weight *
comp_falloff                  0

[0-1(0)] Monsters randomly walk off of moving lifts *
comp_staylift                 0

[0-1(0)] Monsters get stuck on doortracks *
comp_doorstuck                0

[0-1(0)] Monsters do not give up pursuit of targets *
comp_pursuit                  0

[0-1(0)] Arch-Vile resurrects invincible ghosts *
comp_vile                     0

[0-1(0)] Pain Elemental limited to 20 lost souls *
comp_pain                     0

[0-1(0)] Lost souls get stuck behind walls *
comp_skull                    0

[0-1(0)] Blazing doors make double closing sounds *
comp_blazing                  0

[0-1(0)] Tagged doors do not trigger special lighting *
comp_doorlight                0

[0-1(0)] God mode isn't absolute *
comp_god                      0

[0-1(0)] Sky is unaffected by invulnerability *
comp_skymap                   1

[0-1(0)] Use exactly Doom's floor motion behavior *
comp_floors                   0

[0-1(0)] Use exactly Doom's linedef trigger model *
comp_model                    0

[0-1(0)] Linedef effects work with sector tag = 0 *
comp_zerotags                 0

[("No")] chat string associated with 0 key *
chatmacro0                "No"

[("I'm ready to kick butt!")] chat string associated with 1 key *
chatmacro1                "I'm ready to kick butt!"

[("I'm OK.")] chat string associated with 2 key *
chatmacro2                "I'm OK."

[("I'm not looking too good!")] chat string associated with 3 key *
chatmacro3                "I'm not looking too good!"

[("Help!")] chat string associated with 4 key *
chatmacro4                "Help!"

[("You suck!")] chat string associated with 5 key *
chatmacro5                "You suck!"

[("Next time, scumbag...")] chat string associated with 6 key *
chatmacro6                "Next time, scumbag..."

[("Come here!")] chat string associated with 7 key *
chatmacro7                "Come here!"

[("I'll take care of it.")] chat string associated with 8 key *
chatmacro8                "I'll take care of it."

[("Yes")] chat string associated with 9 key *
chatmacro9                "Yes"

[0-255(247)] color used as background for automap *
mapcolor_back               247

[0-255(104)] color used for automap grid lines *
mapcolor_grid               104

[0-255(23)] color used for one side walls on automap *
mapcolor_wall                23

[0-255(55)] color used for lines floor height changes across *
mapcolor_fchg                55

[0-255(215)] color used for lines ceiling height changes across *
mapcolor_cchg               215

[0-255(208)] color used for lines denoting closed doors, objects *
mapcolor_clsd               208

[0-255(175)] color used for red key sprites *
mapcolor_rkey               175

[0-255(204)] color used for blue key sprites *
mapcolor_bkey               204

[0-255(231)] color used for yellow key sprites *
mapcolor_ykey               231

[0-255(175)] color used for closed red doors *
mapcolor_rdor               175

[0-255(204)] color used for closed blue doors *
mapcolor_bdor               204

[0-255(231)] color used for closed yellow doors *
mapcolor_ydor               231

[0-255(119)] color used for teleporter lines *
mapcolor_tele               119

[0-255(252)] color used for lines around secret sectors *
mapcolor_secr               252

[0-255(0)] color used for exit lines *
mapcolor_exit                 0

[0-255(104)] color used for lines not seen without computer map *
mapcolor_unsn               104

[0-255(88)] color used for lines with no height changes *
mapcolor_flat                88

[0-255(112)] color used as things *
mapcolor_sprt               112

[0-255(208)] color used for dot crosshair denoting center of map *
mapcolor_hair               208

[0-255(208)] color used for the single player arrow *
mapcolor_sngl               208

[0-255(112)] color used for the green player arrow *
mapcolor_ply1               112

[0-255(88)] color used for the gray player arrow *
mapcolor_ply2                88

[0-255(64)] color used for the brown player arrow *
mapcolor_ply3                64

[0-255(176)] color used for the red player arrow *
mapcolor_ply4               176

[0-255(252)] color used for friends *
mapcolor_frnd               252

[0-1(1)] 1 to show automap pointer coordinates in non-follow mode *
map_point_coord               1

[0-1(1)] 1 to not show secret sectors till after entered *
map_secret_after              1

[0-9(5)] color range used for automap level title *
hudcolor_titl                 5

[0-9(3)] color range used for automap coordinates *
hudcolor_xyco                 3

[0-9(6)] color range used for messages during play *
hudcolor_mesg                 6

[0-9(5)] color range used for chat messages and entry *
hudcolor_chat                 5

[0-?(4000)] Duration of chat messages (ms) *
chat_msg_timer             4000

[0-9(5)] color range used for message review *
hudcolor_list                 5

[1-16(1)] number of lines in review display *
hud_msg_lines                 1

[0-1(1)] 1 enables message review list scrolling upward *
hud_msg_scrollup              1

[0-1(1)] 1 enables temporary message review list *
hud_msg_timed                 1

[0-?(4000)] Duration of temporary message review list (ms) *
hud_msg_timer              4000

[0-1(0)] 1 means multiline message list is active *
message_list                  0

[0-?(4000)] Duration of normal Doom messages (ms) *
message_timer              4000

[0-1(0)] 1 enables background window behind message review *
hud_list_bgon                 0

[0-1(0)] 1 splits HUD into three 2 line displays *
hud_distributed               0

[0-200(25)] amount of health for red to yellow transition *
health_red                   25

[0-200(50)] amount of health for yellow to green transition *
health_yellow                50

[0-200(100)] amount of health for green to blue transition *
health_green                100

[0-200(25)] amount of armor for red to yellow transition *
armor_red                    25

[0-200(50)] amount of armor for yellow to green transition *
armor_yellow                 50

[0-200(100)] amount of armor for green to blue transition *
armor_green                 100

[0-100(25)] percent of ammo for red to yellow transition *
ammo_red                     25

[0-100(50)] percent of ammo for yellow to green transition *
ammo_yellow                  50

[0-2(2)] 0 for HUD off, 1 for HUD small, 2 for full HUD *
hud_active                    2

[0-1(0)] 1 to enable display of HUD *
hud_displayed                 0

[0-1(1)] 1 to disable display of kills/items/secrets on HUD *
hud_nosecrets                 1

[1-9(6)] first choice for weapon (best) *
weapon_choice_1               6

[1-9(9)] second choice for weapon *
weapon_choice_2               9

[1-9(4)] third choice for weapon *
weapon_choice_3               4

[1-9(3)] fourth choice for weapon *
weapon_choice_4               3

[1-9(2)] fifth choice for weapon *
weapon_choice_5               2

[1-9(8)] sixth choice for weapon *
weapon_choice_6               8

[1-9(5)] seventh choice for weapon  *
weapon_choice_7               5

[1-9(7)] eighth choice for weapon *
weapon_choice_8               7

[1-9(1)] ninth choice for weapon (worst) *
weapon_choice_9               1

MBF21 OPTIONS lump[edit]

The following is a listing of all keys supported under MBF21, their function, and the first source port/game version that included this fix/feature.

Key Description Origin
weapon_recoil Firing a weapon pushes the player back MBF
monsters_remember Friendly monsters return to old target when losing current one MBF
monster_infighting Monsters infight MBF
monster_backing Ranged monsters will back away from close melee targets MBF
monster_avoid_hazards Monsters avoid hazards such as crushing ceilings MBF
monkeys Monsters can climb steep stairs MBF
monster_friction Monsters are affected by friction modifiers MBF
help_friends Friendly monsters prefer targets of friends MBF
player_helpers Number of dogs to spawn MBF
friend_distance Friendly monsters try to keep at least this distance apart MBF
dog_jumping Dogs can jump down from high ledges MBF
comp_telefrag Spawners only telefrag on MAP30 MBF
comp_dropoff Discourage / prevent enemies from walking off ledges (deprecated in MBF21→ see comp_ledgeblock) MBF
comp_vile Arch-viles can create ghosts Boom
comp_pain Pain elementals do not spawn lost souls if there are over 20 already in the map Boom
comp_skull Lost souls can spawn past impassable lines Boom
comp_blazing Blazing doors have double sounds Boom
comp_doorlight Door lighting changes are abrupt Boom
comp_model Assorted physics quirks and bugs →use exactly Doom's linedef trigger model Boom
comp_god God mode bestowed by iddqd cheat is removed in sector 11 & ignored at 1000+ damage Boom
comp_falloff Do not pull monsters off ledges they are hanging off of MBF
comp_floors Use exactly Doom's floor motion behaviour (sectors do not move when things on it touch walls or ceiling) Boom
comp_skymap Do not apply invulnerability palette to skies MBF
comp_pursuit Monsters can infight immediately when alerted/woken up MBF
comp_doorstuck Monsters get stuck in door tracks Boom
comp_staylift Monsters randomly walk off lifts that their target is on - 0 means they will stay on lift MBF
comp_zombie Dead players can activate things PrBoom
comp_stairs Assorted stair bugs Boom
comp_infcheat Powerups given through the idbehold cheat have infinite duration, turning them into toggle MBF
comp_zerotags Allow tag zero actions Boom
comp_respawn Monsters not spawned at level start respawn at the origin of the map MBF
comp_soul Lost souls do not bounce off floors Ultimate Doom
comp_ledgeblock Monsters are blocked by ledges (except when scrolling) MBF21
comp_friendlyspawn Spawned things inherit the friend attribute from the source MBF21
comp_voodooscroller Voodoo dolls on slow scrollers move too slowly MBF21
comp_reservedlineflag The line flag 0x0800 disables extended flags MBF21

The following keys have been deoptionalized in MBF21, forcing them to false.

Key Description Origin
comp_moveblock Use exactly Doom's movement clipping code (i.e. mancubus fireballs can penetrate certain walls) LxDoom
comp_666 Use pre-Ultimate Doom A_BossDeath checks (e.g. E2M8 ends after whichever last boss monster dies) Ultimate Doom
comp_maskedanim Two-sided midtextures do not animate Doom v1.666
comp_ouchface Buggy vanilla ouch face code PrBoom+
comp_maxhealth Max health in DeHackEd patch only applies to potions (bonus health) Boom
comp_sound Use assorted sound errors Boom

MBF21 defaults[edit]

# General / AI
weapon_recoil 0
monsters_remember 1
monster_infighting 1
monster_backing 0
monster_avoid_hazards 1
monkeys 0
monster_friction 1
help_friends 0
player_helpers 0
friend_distance 128
dog_jumping 1

# Compatibility Flags
comp_telefrag 0
comp_dropoff 0
comp_vile 0
comp_pain 0
comp_skull 0
comp_blazing 0
comp_doorlight 0
comp_model 0
comp_god 0
comp_falloff 0
comp_floors 0
comp_skymap 0
comp_pursuit 1
comp_doorstuck 0
comp_staylift 0
comp_zombie 1
comp_stairs 0
comp_infcheat 0
comp_zerotags 0
comp_respawn 0
comp_soul 0
comp_ledgeblock 1
comp_friendlyspawn 1
comp_voodooscroller 0
comp_reservedlineflag 1

Supported ports[edit]

The OPTIONS lump is supported by the following ports:

External links[edit]