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.
Contents
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:
- MBF
- SMMU
- Eternity Engine
- Fusion
- WinMBF
- Woof!
- DSDA-Doom (added in v0.19.0)
- From DOOM With Love
- Pooch
- Nugget Doom
- Tartar
- Cherry Doom
- Doom + Doom II (KEX Engine)