ZDoom version history/2.x

This article is a stub. Please help the ZDoom Wiki by adding to it.
This page tracks the 2.x release cycle of ZDoom by listing the main features of each version.
2016
Post 2.8.1
The following additions are available in Git builds, but never were released officially before ZDoom ceased development.
- The scripting branch was merged, laying the VM groundwork for ZScript.
- DECORATE:
- States:
- Can contain multiple action functions enclosed in braces
if
/else
blocks- return; statement
- Functions:
- Added the following non-action functions: CountInv, GetDistance
- Added the following action functions: A_SetChaseThreshold
- States:
- Portals via Line_SetPortal (visual only; original forum thread)
The final commit to ZDoom was made December 29, 2016. These features would become part of GZDoom releases.
2.8.1 (February 23 2016)
Release thread | Build | Source 1a9bc53
- #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.
2.8.0 (February 3 2016)
Release thread | Build | Source 56359b6
- Frontend
- GOG-installed IWADs are now detected automatically. Steam-installed IWADs are detected on OS X and Linux.
- Improved netcode and added network options menu to configure new features.
- Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.
- Added WAD compatibility fixes for over a dozen maps, including Cheogsh 2, XtheaterIII, and the infamous missing yellow keycard on TNT MAP31.
- +warp now works from the command line.
- Added support for standard file paths on Windows.
- Added a user-settable factor for earthquake intensity.
- Automap
- Non-countable monster actors can have their own separate automap color.
- Extended am_cheat with three modes to prevent lines flagged as hidden from being shown on the automap.
- Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.
- Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of am_cheat console variable are enabled.
- Console
- Added a closemenu console command, so that menu options that close the menu can be added.
- The behavior of auto-loading external DEHACKED lumps can be controlled by setting the dehload console variable.
- Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.
- Fixed: the wi_noautostartmap console variable was not sync-safe.
- Added sv_freelook, sv_allowfreelook and sv_nofreelook.
- Building
- Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.
- Added optional support for the OpenAL sound library, allowing for compiling without FMOD.
- Added a new software synthesizer, WildMIDI, and a new OPL core.
- Added support for building with clang.
- Nearly-complete support for ARM devices such as the Raspberry Pi. (Some known bugs remain — in particular, you must set vid_forcesurface to true in zdoom.ini, or ZDoom will instantly segfault.)
- Modding
- Added Ceiling_CrushAndRaiseSilentDist.
- New type of earthquake, can only be accessed with A_QuakeEx or its ACS equivalent, which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.
- Menu's back button and the pause sign can be animated.
- The particle engine is now exposed to modders via the A_SpawnParticle action function and SpawnParticle ACS function.
- Directory-structured archives now support lump filtering, which loads different resources depending on the base game.
- Friction and TERRAIN-based sector damage are now transferred to 3D floors.
- Fixed scaling of textures on 3D floors.
- Overhauled sector types and properties. Sectors have several new UDMF properties.
- Lines and sectors may now have multiple ids/tags via the moreids UDMF property.
checkswitchrange
now correctly prevents players from pressing switches embedded in the floor or ceiling, and works correctly with switches that are part of 3D floors.- Added blockhitscan and transparent line properties, waterzone sector property, and alpha, fillcolor, gravity, health, pitch, renderstyle, roll, scale, scalex, scaley and score thing properties for UDMF.
- ACS:
- Added DropItem, DropInventory, CheckFlag, GetLineActivation, GetMaxInventory, SetLineActivation, GetArmorInfo, GetActorPowerupTics, IsPointerEqual, ChangeActorAngle, ChangeActorPitch, PickActor, SetSectorDamage, QuakeEx, Warp and CanRaiseActor functions.
- Added FHF_NORANDOMPUFFZ flag for LineAttack.
- Added BLOCKF_HITSCAN flag for Line_SetBlocking.
- Added APROP_ViewHeight, APROP_AttackZOffset and APROP_StencilColor ACS actor properties.
- Fixed potential desync with CheckPlayerCamera.
- Fixed: Thing_SetGoal could put an actor's target and goal out of sync.
- GetSectorFloorZ and GetSectorCeilingZ now interpret 0-tag as 'any sector' and return the z-height of whatever sector is at those coordinates.
- Arrays are now supported at the script scope.
- ANIMDEFS:
- Added an optional worldpanning flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.
- Added allowdecals option to animated doors.
- DECORATE:
- Four new keybinds for DECORATE use with weapons (see A_WeaponReady's User states.)
- Sprites now support mirroring via negative scales.
- Added Player.UseRange and Player.AirCapacity player properties.
- Actors can now have extreme death/crash states that are damage type specific.
- New
randompick
andfrandompick
non-action functions. - A_Print, A_PrintBold, and A_Log can now use
$FOO
translation strings. - The following functions have been given additional functionalities: A_AlertMonsters, A_BFGSpray, A_Change/ScaleVelocity, A_CustomPunch, A_SetAngle and A_SetPitch, A_DamageMaster/Children/Siblings, A_KillMaster/Children/Siblings, A_Log, A_Print, A_PrintBold, A_RadiusGive, A_Saw, A_SetScale, A_SetTics, A_SpawnItemEx, A_Teleport, A_VileAttack, A_Warp, A_WeaponReady.
- Added NOFORWARDFALL, NOTONAUTOMAP, RELATIVETOFLOOR, NEVERTARGET, NOTELESTOMP, ALWAYSTELEFRAG, ALLOWPAIN, CAUSEPAIN, DONTTHRUST, BUDDHA, FOILBUDDHA, MIRRORREFLECT, AIMREFLECT, THRUREFLECT, HARMFRIENDS, NOFORWARDFALL, HITTARGET, HITMASTER, HITTRACER, WEAPONSPAWN, INVENTORY.TOSSED, INVENTORY.ALWAYSRESPAWN, INVENTORY.TRANSFER, and INVENTORY.NOTELEPORTFREEZE actor flags.
- MTHRUSPECIES now works with A_BFGSpray and rail attacks.
- Added A_DamageSelf/Target/Tracer, A_Remove/Siblings/Target/Tracer, A_KillTarget/Tracer, A_DropItem, A_SetSpeed, A_SetHealth, A_ResetHealth, A_SetFloatBobPhase, A_SetRoll, A_SetTeleFog, A_GiveTo/TakeFromChildren, A_GiveTo/TakeFromSiblings, A_JumpIfHigherOrLower, A_SetFloatSpeed, A_SetSpecies, A_CheckBlock, A_CheckProximity, and A_QuakeEx action functions.
- Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.
- The amount of health regeneration gained from a PowerRegeneration powerup can be controlled with the Powerup.Strength property.
- Improved the NoDelay state flag reliability.
- Added Subtract render style.
- Different types of gargoyles and golems could infight amongst themselves (original Heretic behavior).
- Added CanRaise and Slow actor state flags.
- LANGUAGE:
- Externalized "New save game" line for save screen, and automap statistics display.
- MAPINFO:
- Custom colors for both modes of the automap can be set on per-mod basis.
- Added SlowMonsters, HealthFactor, NoInfighting and TotalInfighting skill definitions property.
- SBARINFO:
- Extended DrawImage command.
- SNDINFO:
- Fixed incorrect Maulotaur melee attack sound.
- Internals
- Removed Polymost code.
- Vast improvements to movement interpolation.
- Fixed a lot of leaks and garbage collection issues.
- Fixed miscellaneous bugs.
- Frontend
2015
No release this year.
2014
No release this year.
2013
2.7.1 (July 3 2013)
Release thread | Build | Source 21efe3b 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.
2.7.0 (June 8 2013)
Release thread | Build | Source r4342
- Added Floor_RaiseAndCrushDoom.
- ACS:
- Made dynamic strings persistent. ACS can now safely generate up to one million new strings.
- Added CheckFont, GetCVarString, GetUserCVar, GetUserCVarString, IsTIDUsed, LineAttack, SetCVar, SetCVarString, SetUserCVar, SetUserCVarString, SpawnDecal, and UniqueTID.
- Added HUD layers, visibility flags, additive blending, and alpha parameter to HudMessage and HudMessageBold.
- Also added HUD message wrapping and clipping with SetHudClipRect and SetHudWrapWidth.
- Added PLAYERINFO_FOV and _DESIREDFOV to GetPlayerInfo.
- Added support for desaturated translations.
- Added Sqrt, FixedSqrt, and VectorLength functions.
- Support for advanced structures from non-ACC compilers.
- Added the ability to retrieve the ReactionTime, Height and Radius properties through GetActorProperty.
- Added CHANGELEVEL_PRERAISEWEAPON to ChangeLevel.
- FLOATBOB things are no longer moved physically when bobbing.
- Added Player.FallingScreamSpeed, Player.GruntSpeed, Weapon.MinSelectionAmmo1, and Weapon.MinSelectionAmmo2.
- Added random state duration and A_SetTics.
- A_Explode's affectsource parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to A_RadiusThrust.
- A_RadiusThrust can use negative force values.
- Added A_JumpIfTargetInsideMeleeRange, A_JumpIfTargetOutsideMeleeRange, A_SetDamageType, and A_CheckLOF.
- Added INVENTORY.NEVERRESPAWN, INVENTORY.NOSCREENFLASH, POWERSPEED.NOTRAIL, and PLAYERPAWN.CROUCHABLEMORPH.
- Added JLOSF_NOAUTOAIM flag to A_JumpIfTargetInLOS.
- Added WRF_DISABLESWITCH to A_WeaponReady.
- A_Light can use negative values to darken the scene.
- Added NORANDOMPUFFZ flag to A_CustomPunch, A_FireBullets, and A_CustomBulletAttack.
- Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to A_SpawnItemEx.
- Added the ability to adjust the vertical offset of a rail attack to A_RailAttack and A_CustomRailgun.
- Player-fired seeker missiles' range at which the missiles initially lock-on a tracer can be set via MaxTargetRange actor property.
- ReactionTime added to DECORATE expressions.
- Added NoDelay state flag.
- Added Bounce actor states.
- Fixed few cases of DECORATE definitions inaccuracies for Doom, Heretic, Hexen and Strife actors.
- FONTDEFS: Backported SPACEWIDTH from ECWolf.
- LANGUAGE: Brazilian Portuguese support.
- MAPINFO: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for map definitions and NoRandomPlayerclass for GameInfo definitions.
- MIDI: FluidSynth now recognize libfluidsynth.dll as a valid alias for fluidsynth.dll, various FluidSynth tweaks and fixes. The OPL emulator now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.
- Updated foo_DUMB.
- Implemented additive rendering for 3D floors.
- Added
Quake-like no-clipping with noclip2.
- Exported the scoreboard text to LANGUAGE.
- The sound system should now precache nearly all sounds used by actor properties and ambient sounds, and the MAPINFO command "PrecacheSounds" can be used to precache other sounds.
- Arbitrary FPS cap with vid_maxfps.
- Increased maximum resolution to 5760×3600.
- Added lightfog property for sidedefs.
- Added support for
Doom 3: BFG Edition's modified IWADs, including
No Rest for the Living.
- Improved WAD archive code with support for big-endian format and LZSS compression used in several console ports.
- Added ability in UDMF to specify things to spawn by thing specials and Hexen breakable items by names with arg1str, as well as the ability to set initial values to a thing's user variable.
- Added new node format for complex UDMF maps which need fractional precision on node splitters.
- The alternate HUD now features a Berserk indicator and a customizable time display.
- Tweaked scripted marines.
- Added acsprofile console command.
- Weapon slots can be configured from the Customize controls menu.
- Solved compatibility issues with Daedalus: Alien Defense,
Community Chest 3, Nuke Mine, Khorus, Void, the
Master Levels, and
Claustrophobia 1024.
- RandomSpawners now respect nomonsters.
- Added the ability to define mod-specific console variables through the addition of the CVARINFO lump.
- Fixed miscellaneous bugs.
2012
2.6.1 (July 28 2012)
Release thread | Build | Source r3794
-
- Added ACS_NamedExecuteWait and NamedScriptWait.
- Added RandomPlayerStarts and UsePlayerStartZ flags for map definitions.
- Solved compatibility issue with Massmouth 2.
- Voxels are now rotated by 90° to match their orientation in Slab6 and Build games.
2.6.0 (July 2 2012)
Release thread | Build | Source r3730
- Added Hacx IWAD support.
- Added text-format Strife conversation system with USDF and ZSDF.
- A textured automap is now available; automap graphics are now externalized.
- Rewritten menu system, which can now be defined with the MENUDEF lump.
- Externalized intermissions to MAPINFO.
- Externalized IWAD detection and gave each IWAD its own independent config section.
- Added FluidSynth and GUS emulator softsynths; fixed issues with TiMidity++.
- Added VOC support and enhanced MIDI playback with support for alternative formats such as XMI and HMI.
- Action specials: Added Ceiling_LowerAndCrushDist and Thing_SetConversation. Added console command to execute specials.
- ACS:
- Increased maximum script number from 999 to 32767.
- Named scripts allow to avoid script number conflicts.
- Added StrCpy, CheckSight, SetActivator, SetPointer functions.
- Added APROP_ScaleX/Y and APROP_Mass actor properties.
- Added temporary dynamic strings variables with StrParam.
- Scripts can now have up to four parameters.
- Added A_CheckFlag, A_FaceMaster, A_FaceTracer, A_RadiusGive, A_SetMass, A_SetScale, A_Warp and A_WolfAttack...
- Enhanced A_AlertMonsters, A_BFGSpray, A_Blast, A_CustomBulletAttack, A_FireBullets, A_GunFlash, A_PainAttack, A_RadiusThrust...
- Added an actor pointer manipulation system with several new codepointers...
- Added DOHARMSPECIES, DONTCORPSE, SEEINVISIBLE and INVENTORY.UNTOSSABLE
- Increased damage type flexibility in several ways with DeathType and PainType.
- Added customizable fléchettes.
- Made accuracy and stamina accessible through DECORATE expressions.
- Added ProjectileKickback, Inventory.RestrictedTo and Inventory.ForbiddenTo class-based properties.
- Backported VisibleToTeam, VisibleToPlayerClass and weapon DropItem feature from Skulltag, and enhanced them.
- Added "Fast" keyword for states and deprecated the unreliable FASTER and FASTMELEE flags.
- Added a secret hint system.
- 3D floors support.
- FraggleScript support.
- Voxel support.
- SBARINFO: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.
- SNDINFO: Added $musicalias and $attenuation.
- Compatibility: fixed issues with
Eternal Doom, Happy Time Circus,
Phobos, vanilla compat, Boom compat, light levels higher than 255, Heretic, Strife, MUSINFO, misnamed UDMF field.
- Fixed loading of BMF palettes.
- restart console command.
- Added PALVERS lump.
- Custom IWADs no longer need to include a COLORMAP, as ZDoom will generate one automatically if it is missing.
- Fixed vertical tiling of non-power-of-two textures.
- Fixed blockmap overflows in huge maps with help from Maes and Entryway.
- Joystick support for non-Windows platforms.
- As always, a plethora of bug fixes and minor enhancements.
2011
No release this year.
2010
2.5.0 (August 11 2010)
Release thread | Build | Source r2508
- 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.
2.4.1 (January 24 2010)
Release thread | Build | Source r2126
- 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
Wine.
- 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.4.0 (January 1 2010)
Release thread | Build | Source r2075
- Rewritten archive management code.
- 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.
- Rewritten mouse and keyboard handling input under Windows.
- Reimplemented and improved support for gamepads and joysticks.
- Added truecolor display of the HUD, menus and other 2D elements outside the game world when using Direct3D on Windows.
- Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated music formats.
- Added compiling support for
Macintosh systems.
- Added IWAD recognition for Ultimate Freedoom, Action Doom 2, Blasphemer and Harmony.
- Added -noautoload, -norun, -stdout, and -warpwipe command line parameters.
- Added save_dir and d3d_antilag console variables.
- Added optional parameters to summon commands, added summonmbf command.
- Added info command to obtain very verbose debugging information on actors.
- Buddha mode
- Added score and ScoreItems.
- Added GameInfo definitions to MAPINFO.
- Changed random seed initialization so that it uses the system's cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough's algorithm to the SFMT607 variant of the
Mersenne twister.
- Disabled custom DEHSUPP lumps.
- Added 'damage' to the actor variables exported to DECORATE's expression evaluator.
- Added 'frandom' DECORATE function to the expression evaluator, which is like 'random' but for floating point values instead of integers.
- Added Raven color set and dagger-like vector sprite to the automap.
- Added desatured translations.
- SBARINFO: Added the ability to center things with fullscreenoffsets enabled, added underwater stats.
- MAPINFO: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for nextmap.
- Added actor replacement to skill definitions.
- Exported many hardcoded values to GameInfo definitions.
- Added Line_SetBlocking and Sector_SetPortal specials.
- Added defaultterrain section to TERRAIN.
- Added new earthquake functions.
- Added user variables.
- DECORATE: Added Species, Activation, PainThreshold, PushFactor, WeaveIndexXY, WeaveIndexZ, Powerup.Strength, Player.MugShotMaxHealth, Inventory.InterHubAmount properties.
- Turned old bounce flags into BounceType property.
- Added DamageFactor handling to Armors.
- Added "BLUEMAP" palette blend for Powerup.Color, and added Powerup.Colormap for custom colormaps.
- Added MOVEWITHSECTOR, NOBOSSRIP, THRUACTORS, THRUSPECIES, DONTSEEKINVISIBLE, FORCEPAIN, NOFEAR, BUMPSPECIAL, STEPMISSILE, NOTELEPORT, NOTRIGGER, AVOIDMELEE, JUMPDOWN, SCREENSEEKER, INVENTORY.PERSISTENTPOWER, WEAPON.AMMO_CHECKBOTH, WEAPON.NOAUTOAIM flags.
- Added A_CheckCeiling, A_MonsterRefire, A_Weave, A_JumpIfTargetInSight, A_ZoomFactor, A_SetAngle, A_SetPitch, A_ScaleVelocity, A_ChangeVelocity, A_SetCrosshair, A_RemoveSiblings, A_RaiseMaster/Children/Siblings, A_Log, A_PrintBold, A_SetArg, A_SetSpecial, A_Blast codepointers.
- Added parameters to A_PodPain, A_MakePod, A_MLightningAttack, A_M_Saw, A_FireCustomMissile, A_FadeOut, A_Explode, A_WeaponReady, A_VileAttack, A_Mushroom, A_SeekerMissile, A_KillChildren/Master/Siblings, A_CustomRailgun and A_RailAttack, added SXF_TRANSFERPOINTERS flag to A_SpawnItemEx and several flags to A_Respawn.
- Imported PowerDoubleFiringSpeed from Skulltag, added PowerInfiniteAmmo.
- PowerProtection and PowerInvisibility can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player's RenderStyle.
- Customizable mage lightning, sapphire wand, and SpawnShot spawn lists.
- ACS: compatibility fix for vanilla Hexen map where script execution order is critical.
- Added GetActorVelX/Y/Z, SetActorVelocity, GetActorViewHeight, SetActivator, SetActivatorToTarget, GetChar, SetSkyScrollSpeed, Get/SetAirSupply, GetArmorType, CheckActorProperty, CheckActorClass, SoundSequenceOnActor/Sector/Polyobj, SpawnSpotForced and SpawnSpotFacingForced.
- Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking.
- Improved automatic compatibility with
Hacx,
Suspended in Dusk,
Community Chest,
Doomsday of UAC,
Strain, and the
Astrostein series.
- Compatibility options: added Minotaur footclipped floor fire setting, sprite sorting order, MBF-style A_Mushroom, monster movements affected by terrain, and friendly monsters able to cross blocking lines.
- Added arch-vile "ghost" bug emulation for selected maps only.
- Added several other MBF features, including BetaSkull, A_FireOldBFG, and DeHackEd support of MBF codepointers and actors.
- Repaired accuracy of player behavior in Hexen with regards to jumping and pushing enemies away with attacks.
- Fixed compatibility issues arising with Action Doom.
- Puffs now set their angle to face the originator of the attack.
- Added SoulPriestess' patch to force aspect ratio with vid_aspect.
- Added Spleen's patch to customize railgun performances with r_rail_smartspiral, r_rail_spiralsparsity, and r_rail_trailsparsity.
- UDMF: Added per-tier texture scaling with new sidedef properties and sidedef versions of linedef flags wrapmidtex and clipmidtex.
- Improved sky projection and sky stretching.
- Updated Italian language file.
- A whole lot more.
2009
2.3.1 (March 15 2009)
Release thread | Build | Source r1480
- 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.3.0 (March 1 2009)
Release thread | Build | Source r1455
- Universal Doom Map Format (UDMF) support.
- New garbage collector to improve performances on resource-intensive maps.
- Sound uses FMOD Ex instead of FMOD. Among the benefits, reverbs can now work on any sound card, not just those that support EAX.
- SPC is now a first-class music format that no longer requires an external DLL to play.
- Support for Vavoom's vertex height things and Eternity Engine's 3D middle textures.
- Linked sectors, to ensure that multiple sectors can move consistently in sync.
- TEXTURES lump for text-based texture definitions.
- MD5-based recognition of maps that require certain compatibility options to work (e.g.,
Strain map 7 which relied on the
Spechits overflow bug) to apply these settings transparently.
- Freedoom, Chex Quest, and Chex Quest 3 are recognized as IWADs and can be selected in the IWAD selection box. New aliases are available for IWADs, too.
- New MAPINFO format (the old is still supported of course) with a more robust syntax.
- Custom map translators for Doom-format maps, which can be specified in MAPINFO.
- Strife dialogues now work in multiplayer.
- Setting up slots for custom weapons no longer requires a KEYCONF lump, the limit of 8 weapons per slot is removed.
- Added the "random spawner" actor, customizable BossEyes, CustomBridge, FastProjectile.
- Many new compatibility options, including one to have projectiles pass through solid decorations.
- More flexible use of lightning in a map.
- The two different crushing modes (Doom and Hexen) are now selectable per action.
- Customizable pickup flash with Inventory.PickupFlash property.
- DeHackEd music name replacement has been restored.
- Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.
- Functions to handle weapon reloading through DECORATE.
- New ACS functions: GetPlayerInput, Get/SetActorProperty.
- Many actions are now more flexible through optional parameters, for example A_Die can specify damage type to send to a custom Death state, A_KeenDie can affect tags other than 666, A_Fire can specify a vertical offset, and so on.
- Many, many new DMFlags for cooperative plays, such as having to kill all monsters before leaving the map or seeing the other players on the automap.
- Enhanced Strife support.
- Various and sundry bug fixes.
2008
2.2.0 (February 15 2008)
Release thread | Build | Source r748
- 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.
2007
No release this year.
2006
2.1.7 (October 31 2006)
Release thread | Build | Source r365
- 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.
2.1.6 (October 2 2006)
Release thread | Build | Source r346
- 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.5 (September 2 2006)
Release thread | Build | Source r321
- New ACS functions: GetPlayerInfo, ChangeLevel, SectorDamage, ReplaceTextures
- New DECORATE functions: A_PlaySoundEx, A_StopSoundEx
- The vid_nowidescreen cvar can be used to disable widescreen aspect ratio correction.
- A_SpawnDebris and A_SpawnItem can optionally transfer the caller's color translation to the newly spawned item.
- New morphing artifacts can be created by subclassing the MorphProjectile and MorphedMonster classes.
- A_FireCustomMissile has a new parameter: Previously it always aimed straight ahead and altered the projectile's angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.
- Users can now define their own text colors, and there are several new standard ones.
- The fourth parameter of Polyobj_StartLine and the fifth parameter of Polyobj_ExplicitLine now set the line's ID.
- DECORATE explosion parameters are no longer considered deprecated.
- Calling Radius_Quake, Thing_Activate, or Thing_Remove with a TID of 0 now operates the activator.
- Strife's PhosphorousFire now does completely thrustless damage.
- An actor's damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.
- Passing a negative script number to the puke console command now runs the script with ACS_ExecuteAlways instead of ACS_Execute.
- Polyobjects defined with Polyobj_ExplicitLine are no longer limited to 64 segs.
- Starting a new game or reloading an old one no longer resets the chasecam.
- The automap background is now a regular texture.
- Added support for many image formats for use as textures: PNG, JPEG, PCX, TGA, DDS.
- Numerous bugfixes.
2.1.4 (July 29 2006)
Release thread | Build | Source r273
- 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.3 (July 18 2006)
Release thread | Build | Source r265
- 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.2 (July 17 2006)
Release thread | Build | Source r257
- Added custom player classes.
- Added "replaces" keyword for DECORATE.
- IWAD selection box now remembers the last choice.
- Added A_RadiusThrust to DECORATE.
- Added ThingCountName and SpawnSpotFacing to ACS.
- Changed additive scroller options into a compatibility flag.
2.1.1 (June 25 2006)
Release thread | Build | Source r226
- Bugfix release.
2.1.0 (June 21 2006)
Release thread | Build | Source r204
- Added several things from ZDoom Community Build (unofficial 2.0.96x) and GZDoom, including custom DECORATE weapons.
February 16 2006
February 16 of this year saw the first commit to the SVN repository.
2005
2.0.98 (November 3 2005)
Release thread | Build | Source
- Bugfix release.
2.0.97 (September 28 2005)
Release thread | Build | Source
- Bugfix release.
- The LANGUAGE lump is now text-based.
- Added IMF music format support.
- Ported SetActorAngle and BLOCK_RAILING from the ZDoom Community Build.
- Added Polymost visualization code from Build.
- Gave DONTMORPH flag to Cyberdemon, SpiderMastermind, AlienSpectre1, Crusader, Programmer, and Inquisitor.
- Made Puffy and projectiles spawned by A_LastZap deal no damage.
- Teleport_NewMap can now be used within a TITLEMAP in order to make it possible to use different maps as the title map.
- Merged in Graf Zahl's Caverns of Darkness patch.
- Added Polymost wireframe mode.
- Added writeopl console command.
- UsePuzzleItem can now be a thing's special.
- Missiles with negative damage now give you health.
2004
2.0.96 (December 25 2004)
- Added TITLEMAP
2.0.95 (December 24 2004)
- Added camera textures to ANIMDEFS and SetCameraToTexture
- Improved console tab completion, added Ctrl-X shortcut to clear the console's command line
- Several Hexen and Strife fixes
- Merged in Jim's ACS character array printing support.
- Added the polymost clipper.
- Added support for 16:10 and 5:4 aspect ratios and letterboxing.
- Added static local variables, Log, SetAmmoCapacity and GetAmmoCapacity to ACS.
2.0.94 (November 19 2004)
2.0.93 (November 3 2004)
2.0.92 (October 31 2004)
2.0.91 (October 22 2004)
2.0.90 (October 21 2004)
- Added Strife support and new inventory system
2.0.64 (June 8 2004)
2.0.63 (February 10 2004)
- Added custom monsters to DECORATE.
2.0.62 (February 7 2004)
- Added modern DECORATE support.
2.0.61 (January 22 2004)
2003
2.0.60 (December 8 2003)
2.0.59 (December 7 2003)
2.0.58 (December 7 2003)
2.0.57 (November 26 2003)
2.0.56 (November 25 2003)
2.0.55 (November 23 2003)
2.0.54 (November 23 2003)
2.0.53 (November 16 2003)
2.0.52 (October 31 2003)
2.0.51 (October 30 2003)
2.0.50 (October 26 2003)
2.0.49 (October 26 2003)
2.0.48 (October 23 2003)
2.0.47p (August 6 2003)
2.0.47o (August 5 2003)
2.0.47l (July 21 2003)
2.0.47j (July 7 2003)
2.0.47i (June 9 2003)
2.0.47 (April 26 2003)
2.0.46 (April 14 2003)
2.0.45 (April 9 2003)
2.0.44 (April 9 2003)
2.0.43 (April 8 2003)
2.0.42 (February 12 2003)
2.0.41 (February 10 2003)
2.0.40 (February 8 2003)
2.0.39 (February 2 2003)
2.0.38 (January 24 2003)
2.0.37 (January 23 2003)
2.0.36 (January 10 2003)
2.0.35 (January 8 2003)
2.0.34 (January 3 2003)
2.0.33 (January 2 2003)
2.0.32 (January 2 2003)
2.0.30 (January 1 2003)
2002
2.0.29 (December 28 2002)
2.0.28 (December 24 2002)
2.0.27 (December 19 2002)
2.0.26 (December 19 2002)
2.0.25 (December 13 2002)
2.0.24 (December 12 2002)
2.0.23 (December 12 2002)
2.0.22 (December 11 2002)
2.0.21 (December 10 2002)
2.0 Beta 13 (August 27 2002)
- 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.