DMFlags
From DoomWiki.org
DMFlags are a set of options, present in certain source ports, that are meant for multiplayer games and more generally for deathmatch rounds, allowing the host or other players to modify a variety of settings to customize their style of play.
History[edit]
In the original Doom games, it is possible to change some of the game's launch parameters to modify the game's deathmatch ruleset, most notably with the -deathmatch and -altdeath commands that differ in the behavior of pickups. Besides these and a handful of other commands, however, it was not possible to cherry-pick most settings, such as having elements of deathmatch and altdeath interspersed with one another. id Software's next FPS game, Quake, implemented console variables that could be used to change gameplay elements individually, thus allowing for greater flexibility when hosting multiplayer games.
DMFlags were originally introduced in 1997 for Quake II, merging multiple game settings into a single variable which, upon being changed, would alter the overall settings accordingly.
DMFlags[edit]
DMFlags were first implemented in ZDoom by Marisa Heit (Randi) in version 1.13 (dated May 22, 1998). This was done to compartmentalize several of the deathmatch-specific console variables from ZDoom and launch parameters from vanilla into a single variable, inspired by the Quake II implementation. This includes the ability to make weapons stay after pickup, allow items to respawn (including, separately, partial invisibility and invulnerability spheres), enable falling damage, and so on.
DMFlags, as a result of appearing early on in ZDoom's development, became ubiquitous among its forks, including most of the Doom multiplayer source ports, such as CsDoom, ZDaemon, Skulltag and Odamex. Over the years, many more DMFlags have been added to ZDoom and its peers,
DMFlags2[edit]
A brand new parameter, dubbed DMFlags2, was added to ZDoom on July 3, 2000, as part of the in-development version 1.23 of the source port. The parameter was added by Randi upon consultations with Brad Carney (Carnevil) after testing features on the then-nascent Skulltag source port. Brand new gameplay options were added to DMFlags2, such as the ability for players to drop their held weapon upon death, or disabling BFG free-aim out of balance concerns even in cases where it remains enabled for other weapons.
While some of the DMFlags2 remain commented out in the ZDoom and GZDoom codebase, this was done to keep the code backwards compatible with Skulltag and ZDaemon which did end up implementing these DMFlags values.
DMFlags3[edit]
DMFlags3 was added by ZDaemon to cover a few extra edge cases such as unique pickups for DeHackEd items, or the ability to reset player inventories at the conclusion of an episode in Ultimate Doom.
A wholly different and later implementation was done by Nash Muhandes for GZDoom, introducing DMFlags3 to that engine in 2023. Currently only two options exist, the ability to have players share key inventory and also disabling player collision for cooperative games. Both of these options originate among ZaDMFlags.
ZaDMFlags[edit]
After Skulltag ceased development in favor of the Zandronum source port continuation, a brand new set of DMFlags was created to further flesh out the complexity of the multiplayer game modes available for it. Over 20 ZaDMFlags options were created, allowing for things such as sharing keys between players, disabling collision between players, disabling rocket jumping, preventing any kind of item drop, and more.