ZDoom version history

From ZDoom Wiki
Jump to navigation Jump to search

This page tracks the evolution of ZDoom by listing the main features of each version.

By year 1998 · 1999 · 2000 · 2001 · 2002 · 2003 · 2004 · 2005 · 2006 · 2007 · 2008 · 2009 · 2010 · 2011 · 2012 · 2013 · 2014 · 2015 · 2016
1.x Branch 1.11 · 1.12 · 1.13 · 1.14 · 1.14a · 1.16 · 1.17 · 1.17a · 1.17b · 1.17b1 · 1.17c · 1.18 · 1.18a · 1.18b · 1.19 · 1.20 · 1.21 · 1.22 · 1.23 Beta · 1.23 Beta 19 · 1.23 Beta 20 · 1.23 Beta 23 · 1.23 Beta 24 · 1.23 Beta 25 · 1.23 Beta 33
2.0 Branch 2.0 Beta 13 · 2.0.21 · 2.0.22 · 2.0.23 · 2.0.24 · 2.0.25 · 2.0.26 · 2.0.27 · 2.0.28 · 2.0.29 · 2.0.30 · 2.0.32 · 2.0.33 · 2.0.34 · 2.0.35 · 2.0.36 · 2.0.37 · 2.0.38 · 2.0.39 · 2.0.40 · 2.0.41 · 2.0.42 · 2.0.43 · 2.0.44 · 2.0.45 · 2.0.46 · 2.0.47 · 2.0.47i · 2.0.47j · 2.0.47l · 2.0.47o · 2.0.47p · 2.0.48 · 2.0.49 · 2.0.50 · 2.0.51 · 2.0.52 · 2.0.53 · 2.0.54 · 2.0.55 · 2.0.56 · 2.0.57 · 2.0.58 · 2.0.59 · 2.0.60 · 2.0.61 · 2.0.62 · 2.0.63 · 2.0.64 · 2.0.90 · 2.0.91 · 2.0.92 · 2.0.93 · 2.0.94 · 2.0.95 · 2.0.96 · 2.0.97 · 2.0.98
2.1 Branch 2.1.0 · 2.1.1 · 2.1.2 · 2.1.3 · 2.1.3 · 2.1.4 · 2.1.5 · 2.1.6 · 2.1.7
Modern 2.2.0 · 2.3.0 · 2.3.1 · 2.4.0 · 2.4.1 · 2.5.0 · 2.6.0 · 2.6.1 · 2.7.0 · 2.7.1 · 2.8.0 · 2.8.1 · Post 2.8.1


1.11 (March 6)
Build | Source
Initial release, based on the NTDoom and ATB Doom. The version numbering follows from the Doom source code version numbering of 1.10.
  • Works under both Windows 95 and NT 4.0, although it works best under Win95.
  • Limited support for the Pause key. It works with some keyboards on some machines.
  • Supports any resolution compatible with your DirectDraw drivers.
  • Look up/down à la Heretic.
  • Translucency for selected objects.
  • Has a console with most of the functionality of Quake's. The only significant missing feature is Tab-completion.
  • Notarget cheat.
  • Command to kill all monsters in a level or yourself.
  • Can play MUS, MIDI, and MOD music.
  • Selected sounds are played in surround sound.
  • Doors that need keys to open are highlighted on the automap.
  • Automap now shows various statistics in addition to the level name.
  • True keybindings. Bind any key to any command or sequence of commands.
  • Intermission screen can now display your stats using absolute values rather than percentages.
  • A new more general demo format.
1.12 (April 7)
Build | Source
  • Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.
  • Console commands can now be specified on the command line.
  • Removed some of Doom's limits such as VisPlanes, VisSprites, and 2S HOM.
  • Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)
  • New CVARs relating to mouse movement. (invertmouse, m_pitch, m_yaw, etc.)
  • Mouse movement doesn't get sluggish in high resolutions.
  • Automap colors are customizable.
  • Automap overlay and rotation are available.
  • Eight crosshairs.
  • Shoot up/down.
  • Alt-Tab and Pause work properly on all machines now.
  • The +jump command now works.
  • 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.
  • The console font is now editable.
  • Near complete support for DeHackEd patches. (Only monster infighting and changing a few minor text strings are not supported.)
  • Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)
  • Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)
  • New options menu, which includes a key configuration screen.
  • Stealth monsters.
  • New full-screen HUD.
  • And a few other things not worth mentioning separately.
1.13 (May 26)
Release thread | Build
  • Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.
  • 3-D collisions for walking under and standing on other things.
  • The status bar can be scaled to the full width of the screen.
  • The screen mode can be selected from a menu inside the game.
  • ZDoom can run in a window on the desktop.
  • Better DeHackEd support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven't seen in any other port).
  • New features for level designers (see editing.txt for details):
  • Specification of next and secret maps on a per-map basis.
  • Specify sky texture on a per-map basis.
  • Use any lump in a wad as music for a map.
  • Give maps a custom name without using a DeHackEd patch.
  • Maps can be named anything (not just E?M? or MAP??).
  • Place any messages of any length between any two maps.
  • Hexen-style fog (of any color).
  • Ambient sounds — either point like Quake or global like Heretic and Hexen.
  • Automatic use of DeHackEd patches in PWADs.
  • No more DoomWikiLogoIcon.pngtutti-frutti for short textures of certain heights.
  • zdoom.wcf file for use with WadAuthor.
  • Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from Quake, and I will probably rewrite it for the next release.)
  • Dynamic palette flashes.
  • Supports stretching skies for freelook.
  • Larger freelook range.
  • Added tab-completion to the console.
  • zdoom.cfg is now the name of the default configuration file since Doom Legacy decided to start using config.cfg.
  • French language support. (Set language CVAR to "french".)
  • Player obituaries.
  • Unlimited ammo cheat (use g_unlimitedammo cvar).
1.14 (July 22)
Release thread | Build | Source
Bugs fixed:
  • The bunny scroller at the end of E3M8 no longer crashes the game.
  • The IDKFA cheat gives the proper amount of armor again.
  • Demo recording works again.
  • Telefragging works again.
  • Picking up the invulnerability sphere displays the correct colors now.
  • DeHackEd patches containing text replacements no longer crash the game.
  • Printing a string containing "%s" to the console and then changing the video mode will no longer crash the game.
  • Chat mode finally works again.
  • If MIDAS can't initialize, you can still play the game but without sound.
  • Pistol and chaingun sounds no longer cut out when there are lots of zombie men shooting their pistols at you.
  • Mouse input should no longer be so jerky under Windows NT.
  • The crosshair is finally accurate for aiming.
  • Autoaim is properly remembered each time you start ZDoom.
  • Switches in the Ultimate Doom that aren't also in the shareware Doom properly change their appearance when switched.
New features:
  • Players can choose their own colors and names. (Player setup menu is included).
  • 8-player support (untested but should work).
  • Miscellaneous internal code changes have been borrowed from the Boom source. (This does *not* mean that ZDoom supports Boom levels yet.)
  • Cheats, chat messages, and gamestate changes are now recorded in demos.
  • Single-player demos recorded with ZDoom are generally smaller than before.
  • Quake 2-style deathmatch flags.
  • Cheats (optionally) work in multiplayer games.
  • Mode X is now supported under Win95, so all the machines that couldn't run ZDoom in 320x200 before should be able to now.
  • Fewer conditions result in error messages that quit the game. (If you have Heretic, try this: Start ZDoom with -file heretic and go to the console and type "map E1M1".)
  • Keys can repeat in the console.
  • The console and chat mode now use the localized keymap set with the Keyboard control panel.
  • Messages at the top of the screen now break along between words instead of in the middle of them.
  • Added -config command line parameter.
  • Added -fastdemo command line parameter.
  • Added new screenshot command. (bound to "Print Screen" key by default)
  • Added Quake-like +showscores command. (bound to "\" key by default)
  • Aliases are now saved in the config file.
  • Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)
1.14a (July 27)
Release thread | Build | Source
Bugfix release.
Bugs fixed are:
  • No more crashing about freeing a pointer without ZONEID when changing levels.
  • Skies wider than 256 pixels are drawn correctly.
  • Monsters' heights are once again the same as they were in id's original Doom, so certain areas work properly again.
  • Monsters shouldn't teleport into each other anymore.
  • Improved support for international keyboards.
  • The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.
Cosmetic changes:
  • No more "sv_gravity changed to...", "skill changed to...", etc. messages in single player games.
  • Activating the player setup menu automatically stops any playing demos, since it doesn't work properly while they play.
  • Barrels don't go flying away when exploding anymore.
  • Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.
  • ZDoom savegames now use the name zdoomsv?.dsg instead of doomsav?.dsg.
This version also includes some preliminary Boom support as I started integrating some of the Boom source code with ZDoom:
  • Medusa fix.
  • Openings limit removed.
  • Removed limit on switches and animations.
  • Added support for Boom-like ANIMATED and SWITCHES lumps in PWADs.
  • Added support for Boom-style scrollers (including conveyors).
  • Added partial deep water support.
1.16 (December 22)
Release thread | Build | Source
Bug fixes:
  • No more limit on size of savegames or demos.
  • Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)
  • Improved the brightness of the console font.
  • Bullet puffs can show up on the floor and ceiling and not just walls.
  • Missile weapons can trigger gun activation lines.
  • Barrels now bounce around as much as they did in original Doom. (They were too "inert" in 1.14.)
  • If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)
New features for players:
  • Proper support for Boom maps.
  • Mouse wheel support and weapnext/weapprev commands.
  • Doublebindings.
  • Better analog joystick support.
  • 180 degree turn command for keyboarders.
  • Damage done by a rocket to its shooter is configurable and defaults to the original Doom behavior.
  • User-configurable gender. (Even though I don't have any new player sounds, at least the obituaries are gender-aware. :-)
  • Teamplay mode.
  • New CVAR to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.
  • Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.
  • Support for Doom Legacy skins.
  • Rewrote the MIDI/MUS code so that it has a working volume control.
  • Many more console commands and CVARs.
New features for editors:
  • Proper support for Boom maps.
  • Obituaries are configurable with a .bex patch.
  • Monster paths
  • Colored lighting
  • Fog can be applied to only part of a level instead of all of it.
  • Per-sector gravity settings.
  • Support for up to 256 ambient sounds (as opposed to the limit of 64 in earlier versions).
  • Sector damage adjustable from between 0-255 points of damage.
  • Changeable camera views.
  • The following editing features that were introduced in Hexen are also available in ZDoom:


January 6 of this year saw the first release of the Raven Software source code.

1.17 (February 17)
Release thread | DOS build
Bug fixes:
  • Multiplayer games with monsters do not crash.
  • Player corpses do not levitate and then fall down when a player respawns in multiplayer games.
  • Using togglemap outside of a game will not crash.
  • Monsters stop attacking their target once it is dead.
  • EV_StopPlat() does not get stuck in an infinite loop if there are moving platforms.
  • Partially invisible players are drawn the proper colors (instead of green) if r_drawfuzz is 0.
  • If you are invisible, so are your muzzle flashes.
  • Trying to execute a non-existent script will not crash.
  • Using a ChangeCamera special from an open script will not crash.
  • The FloorAndCeiling_RaiseByValue and FloorAndCeiling_LowerByValue now behave like Hexen's.
  • Using -loadgame from the command line works.
  • Fixed a memory leak during generation of the translucency tables.
  • In high resolutions, weapon sprites meet the bottom of the screen.
  • Sounds will not cut out mysteriously when there is no reason for them to do so.
  • Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.
  • Things can make more than one sound at once.
  • The deathmatch scoreboard is aligned properly at high resolutions.
  • Spynext and spyprev work properly instead of leaving the status bar "lagging behind" the player being viewed.
  • The light-amp does not disable colored lighting.
  • The sky gets DoomWikiLogoIcon.pnginverted when using the invulnerability powerup.
  • Implemented better z-checking code (from Heretic/Hexen).
  • Pain elementals will spawn one lost soul at a time instead of two inside of each other.
  • Bex patches that use thing mnemonics really do work now, and unknown bit messages aren't generated for regular DeHackEd patches.
  • Linedef type 134 for regular Doom/Boom maps requires a red key for activation (it was being improperly translated to require a blue one).
  • Monsters can activate secret lines when they cross them. (See Doom II MAP08).
  • The player extreme death sound is used.
  • When a player leaves a network game, their body is removed instead of being left empty.
  • 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.
  • Skins that replaced player sounds with sounds in the IWAD work.
  • Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.
  • Alphanumeric keys no longer automatically repeat on the console.
  • Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.
New features:
  • Significant speed improvements on modern processors.
  • Armor and keys are shown on the fullscreen HUD.
  • Colored text.
  • A playdemo console command.
  • A chasecam.
  • A particle system.
  • An optional railgun to show off the particle system. (Start the game with -deh railgun.bex if you want to use it.)
New features interesting for wad authors:
1.17a (February 21)
Release thread
Mostly minor bug fixes, released because Herian 2 needed some of those fixes. There are a few new features, however:
  • If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don't have to load your skins by hand to use them.
  • New formatting options for text printed using ACS.
  • A code pointer to make monsters fire a railgun.
1.17b (March 17)
Release thread
Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting Heretic and Hexen, but those don't affect the user yet.
1.17b1 (March 19)
Release thread
Bugfix release.
1.17c (May 5)
Release thread | Build | Source
  • Fixed game saving crashes on maps with wind/current effects.
  • In Boom deep water sectors, the underwater light and fog colors can now be set independently of the area above water.
  • Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in MAPINFO lumps to control jumping and free look.
  • The random number seed now changes each time you run the program.
1.18 test 1 (June 30)
Release thread
  • Tweaked the optimized renderer for fifth-generation processors.
  • Added the following specials:
  • Added an additional parameter to the Transfer_Heights special.
  • Switched to the OpenPTC library for display.
  • Converted lots of code to an object-oriented C++ architecture.
1.18 test 2 (July 1)
Release thread
  • Fixed vertical aim clipping (BFG works again).
  • Fixed monster wandering.
  • Maps with mapthings of type 0 no longer generate warning messages.
  • Crushers that do no damage no longer act as if they inflict pain to actors.
  • The alias command lists aliases again.
  • Aliases are saved to the config file again.
1.18 test 3 (July 2)
Release thread
  • Removed unnecessary display mode switches.
  • Created a DCanvas class to encapsulate most 2D rendering.
1.18 test 4 (July 3)
Release thread
  • Fixed the "Bad DCanvas::CopyRect" problem introduced in test3.
  • Fixed sound sequences that should not be cut off when stopped (such as the standard doors).
1.18 test 5 (July 6)
Release thread
1.18 test 6 (July 10)
Release thread
  • Rewrote the MiniWikipediaLogoIcon.pngWu line drawer to look better (especially in overlay mode).
  • Stretched skies now get stretched horizontally as well as vertically.
  • Did an initial integration of the Cajun Bot 0.71 code.
1.18 test 7 (July 12)
  • Fixed handling of maps with scrolling walls.
  • Single player works again. In test 6, all games were considered either coop or deathmatch.
  • Disabled the bot thinking code in single player games, so you don't suffer a performance hit when not using bots.
  • Added some performance counters accessible through the stat command.
1.18 test 8 (July 20)
Release thread
  • Fixed a crash problem with the "burn" screen wipe.
  • Fixed a crash problem with playing non-assigned sound sequences.
  • Fixed a crash problem related to trying to shutdown the music subsystem twice.
  • If you try to add more coop bots than there are coop starts, the extra bot leaves quietly instead of ending the game.
  • Weapondrop is now a "server" CVAR, which it should have been in the first place.
  • Changed the nodetable file format to be more compact.
  • Bots can now be recorded in demos.
  • Bots work in multiplayer games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.
1.18 test 9 (August 9)
Release thread
  • Fixed the "wild" bot spinning problem.
  • Commands like changemap that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.
  • Finished the serializer. Now savegames work. Hubs don't, because I haven't written the player travelling code yet.
  • Various other code cleanup.
1.18 test 10 (August 14)
  • Reimplemented hub travel.
  • Optimized R_MapPlane slightly.
  • Added fov command.
  • Added vertical sub-pixel accuracy to the renderer.
  • Added searches for an IWAD in the current directory, $DOOMWADDIR, and $HOME.
1.18 (September 5)
Release thread
1.18a (September 12)
Release thread
Bugfix release.
  • Fixed liquid warping temporarily stopping when changing levels.
  • +/-mlook commands do not generate unknown command messages.
  • Fixed support for maps with >10 deathmatch starts. Thanks to Roman Hatsiev.
  • Fixed support for the special "maps" EndGame? in MAPINFO lumps.
  • Teleport destination (no gravity) now works as intended.
  • Hopefully fixed savegame problems.
  • Bots are restored from savegames.
  • Fixed keyboard turning speed when -dup is used.
  • Network commands get executed only once when -dup is used.
  • In sectors with damaging floors and swimmable deep water, the damage will also be applied while the player is swimming and not just when the player is on the ground.
1.18b (September 15)
Release thread | Build | Source
Bugfix release.
  • Fixed crash when saving games with more than 1024 objects.
  • Fixed crash when loading a game without starting a new one first.
  • Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.
1.19 (November 24)
Release thread | Source/Linux build release thread | Source
First official Linux build.
  • DeHackEd patches that set an actor's death sound to 0 without removing the A_Scream call no longer crash.
  • Fixed sync problems when playing with bullet puffs as particles vs as sprites.
  • Fixed friction when walking on the bottom of swimmable water.
  • Added Jeffrey Cuenco's fixes to get -host and -join command line parameters to work properly.
  • Fixed Boom generalized locked doors so that the open/close type will actually close.
  • Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.
1.20 (November 25)
Release thread
Bugfix release.
  • Fixed saving, reloading, and then resaving games when travelling between levels in a hub.
  • Fixed saving of ACS scripts scheduled to occur on a future level.
1.21 (November 26)
Release thread | Build | Source
Bugfix release.
  • Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.
  • Added hud_scale CVAR
1.22 (November 12)
Release thread | Windows build | Linux build | Windows source | Linux source


June 20 of this year saw the public release of the Build source code.

1.23 Beta (May 10)
Release thread


1.23 Beta 19 (March 9)
Release thread
Added new camera types.
Added string localization.
Added decals.
Added slopes.
Added skyboxes.
1.23 Beta 20 (March 11)
Release thread
1.23 Beta 23 (April 9)
Release thread
1.23 Beta 24 (April 12)
Release thread
1.23 Beta 25 (August 15)
Release thread
Linux build now uses SDL
1.23 Beta 28 (September 17)
Release thread
Added a few decal-related CVARs.
1.23 Beta 28a (December 13)
Release thread


1.23 Beta 33 (February 5)
Release thread | Linux build | Source
Many fixes and rendering optimization.
2.0 Beta 13 (August 27)
  • Further increased Heretic/Hexen support.
  • Added PNG support for screenshots. Savegames are actually PNG files now.
  • Added internal nodebuilder, made it polyobject-aware.
  • Added SNES SPC music support.
  • Added a loader for Build maps.
  • Added support for double- and quadruple-resolution flats (128x128 and 256x256).
  • Added ACS libraries.
  • Added support for up to 8 mouse buttons.
  • Added the very first version of DECORATE.
  • Removed MBF's torque simulation because of the problems it caused.
2.0.21 (December 10)
2.0.22 (December 11)
2.0.23, 2.0.24 (December 12)
2.0.25 (December 13)
2.0.26, 2.0.27 (December 19)
2.0.28 (December 24)
2.0.29 (December 28)


2.0.30 (January 1)
2.0.32, 2.0.33 (January 2)
2.0.34 (January 3)
2.0.35 (January 8)
2.0.36 (January 10)
2.0.37 (January 23)
2.0.38 (January 24)
2.0.39 (February 2)
2.0.40 (February 8)
2.0.41 (February 10)
2.0.42 (February 12)
2.0.43 (April 8)
2.0.44 (April 9)
2.0.45 (April 9)
2.0.46 (April 14)
2.0.47 (April 26)
Release thread | Build
2.0.47i (June 9)
2.0.47j (July 7)
2.0.47l (July 21)
2.0.47o (August 5)
2.0.47p (August 6)
2.0.48 (October 23)
2.0.49, 2.0.50 (October 26)
2.0.51 (October 30)
2.0.52 (October 31)
2.0.53 (November 16)
2.0.54, 2.0.55 (November 23)
2.0.56 (November 25)
2.0.57 (November 26)
2.0.58, 2.0.59 (December 7)
2.0.60 (December 8)


2.0.61 (January 22)
2.0.62 (February 7)
2.0.63 (February 10)
Build | Source
  • Added custom monsters to DECORATE.
2.0.64 (June 8)
2.0.90 (October 21)
  • Added Strife support and new inventory system
2.0.91 (October 22)
2.0.92 (October 31)
2.0.93 (November 3)
2.0.94 (November 19)
2.0.95 (December 24)
2.0.96 (December 25)
Build | Source | Changelog


2.0.97 (September 28)
Release thread | Build | Source
Bugfix release.
2.0.98 (November 3)
Release thread | Build | Source
Bugfix release.


February 16 of this year saw the first commit to the SVN repository.

2.1.0r204 (June 21)
Release thread | Build | Source
2.1.1r226 (June 25)
Release thread | Build | Source
Bugfix release.
2.1.2r257 (July 17)
Release thread | Build | Source
2.1.3r265 (July 18)
Release thread | Build | Source
Bugfix release.
  • Sounds can be specified by full path now in SNDINFO and S_SKIN.
  • DECORATE replacement is more universal.
  • Added NecroMage's submission for bitwise/shift assignment operators for ACS. (Requires ACC 1.42+.)
  • Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the HereticPlayer to use the same animation as PlayAttacking2. Now the special handling for Heretic in the FireWeapon functions can be removed.
2.1.4r273 (July 29)
Release thread | Build | Source
  • Added partial emulation of Boom's TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.
  • Added a queryiwad_key cvar to control which key can force the IWAD selection box to appear. It can be either "shift" or "control". Any other value will disable its functionality.
2.1.5r321 (September 2)
Release thread | Build | Source
2.1.6r346 (October 2)
Release thread | Build | Source
  • Scaled 2D images are supported.
  • Dehacked max health usage defaults to consistency with other (Boom) ports.
  • A font parameter was added to A_Print.
  • Quoted strings in DECORATE can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.
  • A new writeini console command can be used to save the ini at any time, with any file name.
  • If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.
  • Multiple stat displays can be enabled at once.
  • Several bugfixes.
2.1.7r365 (October 31)
Release thread | Build | Source
  • Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.
  • A new MapMarker actor has been added that you can use to mark points of interest on the automap. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a TID matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use Thing_Activate and Thing_Deactivate on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with DECORATE.
  • Added the SetActorPitch ACS command to set an actor's pitch.
  • You can pass multiple jump targets to the A_Jump DECORATE function, and it will choose one of them at random if it jumps.
  • Using a TID of 0 with Thing_Deactivate, SetActorAngle, Thing_Spawn*, Thing_Projectile*, and Thing_Move will now operate on the activator.
  • The fifth argument for Line_SetIdentification can be used to set the high byte of the line ID.
  • Added a CameraHeight DECORATE property for actors.
  • Added special death states for projectiles hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn't exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.
  • Added a PIERCEARMOR DECORATE flag for projectiles.
  • The morphme console command can be given an optional argument to specify which class to morph into.
  • Miscellaneous bugfixes.


No release this year.


2.2.0r748 (February 15)
Release thread | Build | Source
  • This is the final version of ZDoom to fully support Windows 95 since later versions switched to FMOD Ex.
  • Added custom damage types, with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.
  • Custom damage color for palette flashes per player class.
  • Custom state labels. New states can be defined in DECORATE.
  • The SBARINFO lump for creating status bar and other HUDs.
  • Skill definition in MAPINFO, with many properties.
  • Most thing functions treat a TID of 0 as the activator now.
  • Support for ENDOOM screens and the graphical or semi-graphical screens from Heretic, Hexen and Strife.
  • Several things backported from Skulltag, including powerups and flags for increased port compatibility:
  • Drain, HighJump and Regeneration runes as powerups and used specific player sounds for their sound effects.
  • PowerQuadDamage and PowerQuarterDamage as more customizable PowerDamage and PowerProtection. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.
  • Armor.MaxBonus and Armor.MaxBonusMax properties to create armor bonuses that increases the max amount that can be given by other armor items.
  • Custom F1 help screen MAPINFO option
  • Added REDMAP and GREENMAP palette blends.
  • Imported SAME_SPAWN_SPOT DM flag
  • Pickup sprite for the pistol.
  • Imported r_maxparticles CVAR.
  • New Direct3D code for better Vista support.
  • Autoload sections in the ini.
  • GZDoom's alternate HUD.
  • Custom blood on an actor-by-actor basis into DECORATE.
  • Smart autoaim code to prevent the targeting of friendly monsters.
  • New NOBLOODDECALS flag that prevents bleeding actors from spawning blood decals.
  • Customizable border textures. They are defined with the MAPINFO keyword 'bordertexture' and are settable per map.
  • Custom label support for A_Chase and A_VileChase
  • Player.RunHealth property to expose the StrifePlayer's behavior of not being able to run when its health is below 10.
  • Customizable gravity per actor
  • New summonfoe console command, which is analogous to summonfriend but forces the summoned creature to be hostile instead.
  • Added two new MAPINFO flags to control what actor activates impact lines: MissileShootersActivateImpactLines (the current behavior) and MissilesActivateImpactLines (the original Hexen behavior).
  • More player water sounds: *dive (head goes below water), *surface (your head goes back above water), *gasp (getting air back after starting to drown)
  • Using "*" with ACS's music commands will play the level's default music set in MAPINFO
  • Two new CVARs (win_x and win_y) that keep track of the window position when not playing in fullscreen mode
  • Key bindings can now be printed with ACS
  • INVENTORY.KEEPDEPLETED flag for inventory items to keep them in the player's inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.
  • INVENTORY.IGNORESKILL flag for ammo that prevents the given quantity from being modified by the skill level
  • Player.AttackZOffset for PlayerPawn. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.
  • Added a new SetActorState ACS function.
  • CANUSEWALLS flag which allows a monster to activate 'use' specials like doors. This flag is on by default for any monster, which was the previous behavior.
  • Thing_Stop action special.
  • New FORCERADIUSDMG flag that allows exploding items to hurt boss monsters.
  • New USESPECIAL flag that allows using things to execute their specials.
  • Compatibility option to restore the original behavior of the Invisibility powerup
  • Telefrag option added to A_SpawnItemEx.
  • Added option to A_Chase that prevents the monster from moving.
  • New allowrespawn MAPINFO option.
  • New scoreboards.
  • New A_LookEx function.
  • Customizable teams through the TEAMINFO lump.
  • New take console command to do the opposite of give.
  • UseInventory/UseActorInventory ACS functions.
  • New A_CustomBulletAttack aimfacing parameter
  • New A_PlaySoundEx attenuation parameter.
  • Automap markers are stored in savegames now.
  • 'No respawn' DM flag which prevents a player from respawning after they have died.
  • 'Keep frags gained' DM flag which allows you to choose whether you want to reset the frags of each player next level or not.
  • Sector_Outside sector type which forces outside fog regardless of ceiling texture.
  • User-defined crosshairs in the Display options menu. See xhairs.txt in zdoom.pk3.
  • Generic log display that can show Strife's log messages in all games regardless of the current game, active status bar and HUD mode.
  • Support for stenciling actors with RenderStyle property.
  • .TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.
  • 'Ice' translation is accessible from DECORATE.
  • Teamplay MAPINFO option.
  • ACS script type RETURN. These are executed by players who return to a map they've previously been to.


2.3.0r1455 (March 1)
Release thread | Build | Source
2.3.1r1480 (March 15)
Release thread | Build | Source
Mostly a bugfix release.
  • Fixes the bug that prevented you from switching weapons after respawning in multiplayer.
  • Fixes a performance regression introduced in 2.3.0.
  • Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)
  • Addresses a few other niggles.


2.4.0r2075 (January 1)
Release thread | Build | Source
  • Added support for new archive formats: 7z, Quake PAK, "Shrink" and "Implode".
  • Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.
2.4.1r2126 (January 24)
Release thread | Build | Source
Bugfix release.
  • Floor_Waggle effects are smoother now.
  • Negative numbers in the alternate HUD have their minus sign at the right place now.
  • Menu option scales better in widescreen resolution.
  • Player setup menu looks better in non-Doom games.
  • Moving cameras work correctly again.
  • Polyobjects glitch a bit less now.
  • The internal nodebuilder works correctly now with certain troublesome maps.
  • Strife conversations fixed and improved.
  • Many nitpicky fixes in Strife (switch sounds, messages, etc.).
  • Action Doom 2 and Harmony can now use idclev, and they have their Autoload section in the ini.
  • MAPINFO ResetInventory keyword now works as expected.
  • The norawinput console variable can be set to true to fix input problems while playing a Windows build through MiniWikipediaLogoIcon.pngWine.
  • A character input grid is available to play ZDoom with a controller without having to use the keyboard.
  • Added GAMEINFO lump so that a mod can specify which IWAD and external resource files it uses.
2.5.0r2508 (August 11)
Release thread | Build | Source
  • Enhanced polyobject system, allowing them to move anywhere in the map (like Eternity's "dynasegs") and to give them any arbitrary shape. This is accompanied by new ACS polyobject movement functions.
  • Support for uncompressed extended nodes, also supported by Eternity Engine and PrBoom+, to create a new cross-port standard for node storage.
  • Support for using Byte Map Fonts.
  • Ability to use metadata tags in audio formats to define custom loop points.
  • Added support for the MUSINFO lump (from Risen3D and PrBoom+).
  • Improved compatibility settings to allow optionally a greater faithfulness to the vanilla Doom and vanilla Heretic behaviors.
  • ZMAPINFO as an alias for MAPINFO to avoid compatibility problems with other ports parsing this lump.
  • Full rewrite of the SBARINFO system allowing many additional features and options.
  • Added support for multi-monitor display.
  • default reverbs environment setting in MAPINFO
  • Several generalized codepointers to emulate some very specific Heretic and Hexen action functions
  • New functions to refine actor behavior through
  • Enhanced poison damage system
  • Generalized railgun codepointers
  • New automap options
  • HOM detection system
  • New console commands
  • The usual bug fixes and minor enhancements.


No release this year.


2.6.0r3730 (July 2)
Release thread | Build | Source
2.6.1r3794 (July 28)
Release thread | Build | Source
  • Solved compatibility issue with Massmouth 2.
  • Voxels are now rotated by 90° to match their orientation in Slab6 and Build games.


2.7.0r4342 (June 8)
Release thread | Build | Source
2.7.121efe3b (July 3)
Release thread | Build | Source

Note: this is the first version based on the Git repository; 2.7.0 was the last version based on the SVN repository.

  • Added new additive GameInfo keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.
  • Added a new DONTDRAIN flag to mark actors as ineligible for vampirism attacks.
  • Compatibility fixes for Ultimate Simplicity map07, Cheogsh map01, Super Sonic Doom map31
  • Polyobject mirror numbers can no longer be changed with SetLineSpecial. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.
  • The powered-up Gold Wand was not puffing on actors.
  • Disabled Heretic's punishment cheats when in allcheats mode.
  • Objects that explode on death no longer deal the damage they were dealt instead of their own.
  • Vampirism attacks now respect damage reduction.
  • Demo recording now writes correct user info to demos.
  • ACS's PlaySound for looping sounds now works properly when using channel flags.


No release this year.


No release this year.


2.8.056359b6 (February 3)
Release thread | Build | Source
2.8.11a9bc53 (February 23)
Release thread | Build | Source
  • #region/#endregion is now supported for text lumps. ZDoom does not do anything with them but ignore them, but this allows editors to treat them however they like.
  • Better localizability of the menus.
  • Terrain definitions can now be optional.
  • Walking into an area with a reverb effect no longer mutes all sound.
  • Heretic's time bomb artifacts now spawn in the proper locations.
  • Heretic's powered firemace balls once again seek their targets.
  • The whirlwind attack used by Heretic's Ironlich sometimes fizzled out immediately.
  • Instant sector movement actions are again instant.
  • Various other minor fixes.

Post 2.8.1

The following additions are available in Git builds, but never were released officially before ZDoom ceased development.

The final commit to ZDoom was made December 29, 2016. These features would become part of GZDoom releases.

External links