User Tools

Site Tools


Table of Contents

ZDaemon Game Client and Game Server (zserv) Change Log

ZDaemon 1.10.19 (2021-05-17)

  1. Transfer Sky Texture To Tagged Sector (272) now properly draws the sky.
  2. The SpawnID has now been removed for PlasmaBall1 and PlasmaBall2.

ZDaemon 1.10.18 (2021-05-12)

  1. Fixed an unusual auto-join case that would result in players on non-playing teams being joined to the game after a map vote/reset.
  2. Fixed a condition with the “Spawn where died” dmflag that would result in a player being able to pickup an item before spawning had completed.
  3. Uncapped interpolation added for 'AimingCamera', 'SecurityCamera' and 'MovingCamera'.
  4. The Wraithverge, Quietus and Bloodscourge weapons now have the 'WIF_EXTREME_DEATH' flag set by default.
    An internal exception always caused extreme death to occur when the weapons in question were used, regardless of whether the flag was set or not.
  5. Own settings added for score background in intermission.
  6. Doom's Pre-Beta BFG added as Dehacked weapon action 'FireOldBFG'. Projectiles: 'PlasmaBall1' and 'PlasmaBall2'.
    Language obituary keyword: 'OB_MPBFG_MBF'. Related Dehacked keyword for bouncing type: 'ZD_OLDBFGBOUNCE'.
  7. Doom Beta Evil Sceptre ('EvilSceptre', 'BON3A0', 'BETA_BONUS3') and Unholy Bible ('UnholyBible', 'BON4A0', 'BETA_BONUS4') added.
  8. Fixed a crash that would occur if you were killed by an orphaned projectile while in a weaponless state.
  9. The Freeview Player is now capable of full movement while a demo is in a paused state.
  10. Previously when using A_VileChase on an actor it would always go into the hardcoded Archvile frames when an actor was being resurrected. It is now possible to change those frames by rerouting them through using: 'Heal Frame ZD' on the thingblock.
  11. You can now also set a custom sound that will play during the resurrection of an actor. For that you will need to use 'Heal Sound ZD' on the thingblock. It accepts both sound mnemonic or DeHackEd number.
  12. 'spec_warp' allows '$playername' and '#player_id' now.
  13. Several fixes for uncapped interpolation in online mode. “Jackhammer” effect of elevators and floor juddering is gone now.
  14. Callvote cancel kicked the players out of the server. Fixed.

ZDaemon 1.10.17 (2021-04-12)

  1. Support added for maps with NODES in compressed and uncompressed ZDBSP format.
  2. Characters of classic fonts increased, so e.g. all Cyrillic letters can be used now.
  3. Markers for demo playback added. The markers can be set while a demo is being recorded and get stored in the .zdl demo playlist file. If you edit a .zdl manually make sure the entries are separated with tab. 'demo_goto #marker' can be used to skip demo playback to a marker.
    New CVars and CCMDs:
    • demo_addmarker
    • demo_undomarker
    • demo_clearmarkers
    • demo_tonextmarker
    • demo_toprevmarker
      All demo related key bindings can be found in 'Demo Settings Menu'.
  4. Stalagmite thing (5050) added.
  5. Weapon flag 'WIF_NOAUTOFIRE' and Dehacked 'NOAUTOFIRE' reverted for now to avoid dropshots.

ZDaemon 1.10.16 (2021-03-31)

  1. Codepointer mismatch notices will now provide more detail:
    • a. State Number
    • b. Action Name
    • c. Actor Name
      The mismatch notices have also been limited to appear a maximum of 5 times per map change/reset. This reduces the spammage that could otherwise occur.
  2. If there are any missing skin and/or sprite frames, it is now possible to get additional information about these cases with the following developer cvar values:
    • a. developer 1: missing skin frames
    • b. developer 2: missing sprite and skin frames
      NOTE: When it comes to missing sprite frames, this could be down to frames being re-used elsewhere as a result of dehacked modifications, so those notices should only be used as a gauge rather than an indication of an actual problem.
  3. Implementation of menu 'Weapon Slots' as sub menu of 'Customize Controls' 'Weapons'.
  4. Fix for a crash for 0 byte music lumps.
  5. New CVar 'demo_goto' to skip demos to a certain time.
    Usage: demo_goto <minutes> [seconds] [tics]
  6. Chat block functions can be used in demo playback now. Useful for recording videos from demo playback.
  7. Player angle (for others, not own) can be wrong after spawning for a short time. Fixed.
  8. Fix for Floor_RaiseAndCrush. 8 from the lowest ceiling's height was missing.
  9. Fix for force spawn where the client's view could show position 0/0 during screen wipe (e.g. map_reset in Deathmatch, Warmup to Game in Duel).
  10. Team radar can be set to “Player Color” now. Survival/Coop only.
  11. Sitrep can show a square with the player color now (like the scoreboard) when a “+Col” setting is used. Non-teamgames only.
  12. New ACS function added: ZD_GetGameInfo(int info).
    Depending on 'info' it returns:
    0 ZD_GAMEINFO_SURVIVALRESET All players failed in Survival.
    1 ZD_GAMEINFO_IN_OVERTIME Game is in overtime.
    2 ZD_GAMEINFO_IN_WARMUP Warmup in Duel is active. Server only.
    3 ZD_GAMEINFO_IN_LOBBY Game is in map00 and Lobby is active.
    Server only.
  13. New ACS function added regarding ScriptedMarines:
    The function will return the skin name for the provided TID.
    The syntax of the declaration is:
    str ZD_GetMarineSkin(tid);
    It will return the name as declared in the S_SKIN lump.
  14. Weapon flag 'WIF_NOAUTOFIRE' should now work as intended.
  15. Implementation of DeHackEd extension 'Flags ZD' for the 'Weapon' (PatchWeapon) block. Allows for weapon flags to be Added and Removed. The mnemonics are (for now):
    “NOAUTOFIRE”, - weapon does not autofire.
    “READYSNDHALF”, - ready sound is played with 50% probability.
    “DONTBOB”, - no weapon bobbing.
    “AXEBLOOD”, - (Hexen) axe blood on impact.
    “FIREDAMAGE”, - fire damage on impact.
    “BLOODSPLATTER” - spawns blood splatter on impact.
    “NOALERT” - weapon does not alert monsters.
    “EXTREMEDEATH” - weapon always causes an extreme death.
    Just like “Bits” on the 'Thing' block you can assign multiple flags to the weapon e.g:
    'DONTBOB + BLOODSPLATTER' Using 0 on the same line will erase everything that comes before it.
  16. Fix for player collision when OS wallrunning is enabled.
  17. The position of the Client Timer can be set now by using 'cl_timeleft_x' and 'cl_timeleft_y'. A value of 0 means the position will be done automatically.

ZDaemon 1.10.15 (2021-01-01)

  1. If an invalid skin/sprite frame is detected it will provide a bit more detail. It is also a bit more forgiving as opposed to the previous fatal error.
  2. ACS function (line special) 'Line_SetTextureOffset' added. Flags 'TEXFLAG_TOP', 'TEXFLAG_MIDDLE' and 'TEXFLAG_BOTTOM' affect the offset of the whole texture.
  3. For long maplists: output of command 'maplist' from the client in online mode is splitted now. To continue call 'maplist' again.
  4. Parameter '-noidle' is standard now and no longer supported. The priority when out of focus will no longer be changed. In rare case it caused self-closing clients or network timeouts while the client was out of focus. For old behaviour '-useidle' was added.
  5. DeHackEd keywords 'TRANSLUC25', 'TRANSLUC50', 'TRANSLUC75' and 'DONTDRAW' work now as intended. 'TRANSLUCENT' is Boom default 66% now.
  6. Fix for colour index 0 on the statusbar.
  7. Overflow protection for using too many local map variables in ACS.
  8. Preview of player/skins in 'Player Setup' and 'Team/Enemy Color' can be rotated now and firing animation is shown.
  9. Implemented 3 new ACS functions regarding ScriptedMarines and the usage of player skins on the referenced actors:
    • a. A function that allows for player skins to be set to ScriptedMarines. The syntax of the declaration is:
      void ZD_SetMarineSkin(tid, name);
      'name' is the name declared in the S_SKIN lump.
    • b. A function that'll return the skin name for the requested skin number. The syntax of the declaration is:
      str ZD_GetSkinName(number);
      'number' is the value you see when using client command: 'skins'.
    • c. A function that'll provide you with the top index of the installed skins. The syntax of the declaration is:
      int ZD_GetSkinTopIndex();
  10. Fixed a case whereas bullet puffs on certain Heretic weapons were doubled.
  11. Fix for TeleportFog height in Heretic/Hexen when a player spawns.
  12. Fix for colours in Netstats graph in Heretic/Hexen.
  13. Fix for sky hack e.g. ksutra.wad map05.
  14. Background image added for Heretic/Hexen automap (when “standard map colors” is on).
  15. New setting 'Flat / border scale' in 'Display Options' and related CVar 'vid_flatscale' added.
  16. The Home and End keys can now be used in the Menu.
  17. Transmission tweaks for online mode.
  18. Setting minplayers to 0 in online mode will now remove all active bots. (This won't work if the -nbots parameter is in-use)
  19. Setting a latched CVAR will now correctly apply the latest change on map change / reset.
  20. Cosmetic detail. If the gametype is adjusted, the face background colour for the player will now be correct. (When switching from a team to non-team based mode, and vice versa)

ZDaemon 1.10.14 (2020-09-02)

  1. When there is a connection problem for the client, message 'Waiting for server…' is shown earlier.
  2. Fix for non-moving ghost projectiles for connecting clients related to Dehacked NOSPEEDCHECK.
  3. Fixed a crash when Minotaur or Serpent are friendly.
  4. Implementation of DeHackEd weapon property 'Weaponslot ZD', this property allows for each weapon to have a different slot assigned. Valid values are: 0 to 9.
    This also requires the 'Weaponpriority ZD' property.
    'Weaponpriority ZD' must be placed before 'Weaponslot ZD'
  5. Implementation of DeHackEd weapon property 'Weaponpriority ZD', this property allows for each weapon to have its own priority within a weapon slot. E.g: The weapon with the highest priority on the selected weapon slot will be equipped first. Each weapon on the same slot MUST have its own unique priority number in order to not be overwritten. Valid values are: 0 to 7
  6. Server-side mute functionality has been added. This will block both textual chat and voice communication. New commands:
    • ADDMUTE #id/$playername duration reason
      The duration is specified in minutes.
    • KILLMUTE playername
      No prefix is required.
  7. New ACS function to change the camera height for a specific actor based on a given thing ID. \\The syntax of the declaration is:
    void ZD_SetActorCameraHeight(tid, height);
    whereas height is a fixed point value.
  8. Two new client-side CVARs have been added for the chatlog:
    • chatlog_showmsgtype - The message type will be displayed:
      N - Normal
      T - Team
      P - Private
      A - Admin
    • chatlog_timestamps - Timestamps will be displayed.
  9. Fix for still standing players to avoid wrong client z after getting teleported with LS_Thing_Move.
  10. Improvements for ACS LineAttack: puffs are shown online and pufftype can be specified now.
  11. Netstats added to Display Options as “Network Statistics” and enlarged meanings:
    • 0: None
    • 1: Data
    • 2: Ping+Data
    • 3: Graph+Ping
    • 4: All
  12. Demo playback speed added, so a demo can be played in a faster or slower speed. Related CVAR 'demo_speed' and commands 'demo_speedup', 'demo_speeddown', 'demo_speedreset'. To show the playback speed enable 'vid_fps'.
  13. Spectator view in Duel keeps spectating the same player when it switches from warm-up to game.
  14. Added a timer_format client cvar. This alters the display of the timeleft output on the HUD or scoreboard. Values:
    • 0 = Mins:Secs
    • 1 = Hours:Mins:Secs
  15. Added a new boolean acs_always_preserve_globals CVAR. When this CVAR is set to 'true', values in ACS global variables and arrays will always be preserved; even on manual map changes (for example when a console command or a vote is used to change the map).
    NOTE: To keep the behaviour of client-side scripts consistent with older 1.10 clients, in network games, all 1.10 clients will behave as if their acs_always_preserve_globals was set to 'false'; no matter the server setting or the actual CVAR value on the client.
  16. Fix to avoid the ability to press “use” after death in online mode.
  17. Adjustments have been made to the unlagged mechanism in order to improve general precision.
  18. In Lobby mode there will be no announcements while entering the Lobby map (map00).
  19. CTF flags on the HUD are scaled to screen height now.
  20. CVar 'survival_timed_spec_reset' value 2 (6 min) has been added.
    Health will be set to default by Survival Inventory Reset now.
    Warning for Inventory Reset added. It will be shown 60 and 30 sec. before the reset happens.
  21. Added the possibility to change blitmode in advanced video options. That can fix a problem with NVIDIA graphics and very low fps.
    A warning must be confirmed to continue, because it can cause ZDaemon stop working (e.g. ATI graphics).
    If a fatal error occurs which is related to blitmode, it will be reset to default.
  22. 'vid_windowx' and 'vid_windowy' are no longer read-only.
    The position of the window can be set with these CVARs.
    Can be used to set the position of ZDaemon in windowed mode with a key bind or alias.
    Placing the window left or top of the primary screen is possible now. Maximized window will be saved now.
  23. An ancient Instagib bug that allowed you to kill your team mates in a team mode (deathmatch-type) has now been corrected. It'll now obey the limitations regarding team damage.
    NOTE: Since the Instagib railgun is an instakill weapon, any teamdamage value above 0 will result in the death of the friendly target.
  24. A “spectate” command has now been added with strict limitations.
  25. Improvements have been made to the MapInfo CVAR Overrides to ensure that they're correctly reverted (and set) during a map change and/or map reset.

ZDaemon 1.10.13 (2020-05-25)

  1. DeHackEd: implementation of LineEffect.
  2. Fix for 'momentum preservation' introduced in point 12 release.
  3. When sv_oldwepsound is active pickup sound will also be played for spectators and during demo playback.
  4. MBF DeHackEd flag 'TOUCHY' added.
  5. Fix for a crash when Monster Spawner and Monster Target have the same position.
  6. Fixed a crash when ACS SetActorProperty Mass was set to 0, because is not a valid value. It will be set to 1 (lowest positive valid value).
  7. Duel and 1-on-1: vote delay when spectators are around is shortened to 5 seconds now.
  8. Spectating in uncapped mode looks smoother now.
  9. Arch-viles were not self-harming. Fixed.
  10. Fix for join limit message in Survival when a new map starts.
  11. Fix for insuring overlapping HudMessages are properly cleared on the statusbar.
  12. Correction for damage from RadiusAttack. It was off by 1.
  13. No kickback when Scripted Marine attacks with chainsaw and forward momentum for chainsaw attack added.
  14. Fix for using inventory during intermission or as spectator.
  15. The oldschool blast damage while sv_oldblast is enabled is no longer affected by sv_oldwallrun.
  16. Keywords/functions for ANIMDEFS added: 'range', 'oscillate' and 'random'. 'pic' accepts names (and not only numbers) now. Standalone 'off' is supported now.
  17. Obsolete protection for no free spawnspot in the first 7 seconds in Coop/Survival removed.
  18. Sound Sequence was cut or delay was running to fast in higher rates than capped framerate. Fixed.
  19. Additional option 'Stretched' for 'Stretch status bar'.
  20. Accounted for a case that would occur after a map change/reset that would result in a player occupying ID 0 being disconnected after another player joins.

ZDaemon 1.10.12 (2020-03-09)

  1. Heretic powered-up hellstaff (HornRodFX2): fix for a potential client crash and DeathSound was missing.
  2. Fix for HudMessages when Super-Sampled Anti-Aliasing (vid_ssaa) is active.
  3. Implementation of DeHackEd thing properties: 'Xscale' and 'Yscale' both are ignored when the 'Scale' property is present.
  4. Fixed a server-side crash in ACS MorphActor and UnMorphActor when puke command was used.
  5. Fix for ACS GiveInventory/GiveActorInventory in online mode: pack, box and hefty ammo were not sent to the client.
  6. Added the following read-only CVARs on the client:
    get_player_maxfrags, get_player_maxkills, get_player_maxdamage,
    get_player_redflag, get_player_blueflag, get_player_greenflag, get_player_whiteflag.
    They return the player id or displayplayer if there is no value. In combination with spy or spec_follow it's possible to bind a shortcut for spectating (e.g. bind x “spy $get_player_maxfrags”).
  7. Fix for mapinfo keywords 'noinfighting', 'normalinfighting', 'totalinfighting' and 'clipmidtextures'.
  8. Mapinfo 'keepfullinventory' added.
  9. Triggers for spectators added which change the camera.
    • spy_trig_secret: false=disable, true=everyone
    • spy_trig_multikill: list 0-6
    • spy_trig_spree: list 0-6
    • spy_trig_flag: list 0-6
    • spy_trig_clear: clears all spy_trig settings
      List 0-6: 0=disable, 1=within teams only, 2=everyone, 3=red team only, 4=blue team only, 5=green team only, 6=white team only
  10. Implementation of DeHackEd thing property: 'Pickup sound' This property allows for each item's pickup sound to be modified individually, it accepts sound mnemonic or DeHackEd number.
  11. A fix for a bug JCD reported: when Action special:'ChangeCamera' was executed by a player and set to an actor during a team based game their client would crash upon opening the automap.
  12. Fix for client command 'idmypos', coordinates were not displayed when changing view to actor cameras.
  13. Mapinfo ignores episode and skill definitions now ('episode', 'clearepisodes', 'skill', 'clearskills').
    Ignored map keywords: 'bordertexture', 'strictmonsteractivation', 'laxmonsteractivation', 'missileshootersactivateimpactlines', 'missilesactivateimpactlines', 'monsterfallingdamage', 'teamdamage', 'allowrespawn', 'teamplayoff', 'teamplayon', 'noinventorybar', 'infiniteflightpowerup', 'f1', 'checkswitchrange', 'nocheckswitchrange', 'translator', 'unfreezesingleplayerconversations'.
  14. log_timestamps and con_timestamps clients cvars have been added, they will enable timestamps in both the log (when enabled) and console respectively.
  15. Console command 'give all' now also gives you Artifacts and Puzzle items when the corresponding inventory graphics are present.
  16. DeHackEd: “Ammo type ZD” has been added in order to get around a legacy zdoom 1.23 holdover with “Ammo type” value of 5 being hard-coded for infinite ammo. Infinite ammo in “Ammo type ZD” is now a value of -1 and below, while 0 and above are for the standard weapons. This ensures legacy behaviour is preserved when it comes to “Ammo type”. The new “Ammo type ZD” ensures that all of the ammo types are accessible.
  17. The 'idmypos' display will no longer overlap with the 'netstats' or other items.
  18. Players and voodoo dolls did not trigger line specials when they spawned and their center was exactly on a line. Fixed.
  19. Implementation of DeHackEd thing property: 'Camera height', This property allows for each actor to have it's own camera height, it accepts both whole and decimal numbers.
  20. In Dehacked SNDINFO names can be used for 'Scratch', 'PlaySound', 'PlayWeaponSound', 'CPA_CustomMissile', 'CPW_CustomMissile', 'CPA_BulletAttack', 'CPW_BulletAttack', 'CPA_CustomBulletAttack' and 'CPW_CustomBulletAttack' by using keyword 'Sound name ZD'.
  21. Added support for the following string properties to the GetActorProperty ACS function:
    • APROP_SeeSound
    • APROP_AttackSound
    • APROP_PainSound
    • APROP_DeathSound
    • APROP_ActiveSound
      NOTE: The returned string values will only have a lifetime of 1 tick for now.
  22. Added the following ZDoom ACS functions returning strings:
    • GetActorClass
    • GetActorFloorTexture
    • GetActorFloorTerrain
    • GetCVarString
    • StrLeft
    • StrMid
    • StrRight
    • GetWeapon
      NOTE: The returned string values will only have a lifetime of 1 tick for now.
  23. Added the GetArmorInfo ZDoom ACS function. Only the following info types are supported at the moment:
      NOTE: The string value returned for ARMORINFO_CLASSNAME will only have a lifetime of 1 tick for now.
  24. Extended the puke and pukename console commands to accept various input format specifiers (these correlate to the ACS Print function cast types). The full synopsis of the two commands is now as follows:
        * puke  [[?:]val1] [[?:]val2] [[?:]val3]
        * pukename  [always] [[?:]val1] [[?:]val2] [[?:]val3] 
    Where ? can be replaced by one of the following letters which will determine
    how the value will be parsed (unless otherwise specified, the script will
    receive the input value converted to an integer):
    b: binary number
    c: character
    d: decimal number
    f: real number (the script will receive a fixed-point number)
    i: decimal number
    l: key from the LANGUAGE lump (the script will receive the looked up string)
    n: PRINTNAME_* constant (the script will receive the respective fetched string)
    s: string (the script will receive the string as is)
    x: hexadecimal number
    If no format specifier is present in front of a value, the commands will behave as
    they did until now, and the value will be parsed as a decimal number and the
    script will receive it as an integer.
    CVAR substitution is supported when using format specifier; 
    i.e. the following will work:
    pukename script_name s:$cvar_name
    For the purpose of quoting, the whole argument, including the format specifier,
    needs to be inside the quotes given that format specifiers are an addition specific
    to the puke commands and that standard commandline parsing happens before the format specifier parsing;
    i.e. the following WILL work:
    pukename script_name "s:String with spaces."
    The following WILL NOT work:
    pukename script_name s:"String with spaces."
    NOTE: The strings received by the scripts will only have a lifetime of 1 tick for now.
  25. Added missing Hexen skill names to the PCD_PRINTNAME ACS opcode (the n:PRINTNAME_SKILL argument of the ACS Print function).
  26. DeHackEd: Powered weapon frames that are triggered by the “Tome of Power” can now be altered, added and modified through Dehacked for every weapon by adding the following entries within a weapon block; 'Powered select frame ZD', 'Powered deselect frame ZD', 'Powered bobbing frame ZD', 'Powered shooting frame ZD' and 'Powered firing frame ZD'.

ZDaemon 1.10.11 (2020-01-01)

  1. Random Pitch Variations also work in Doom now if enabled. Announcer and taunts will never be pitched.
  2. Fix for playback client recorded demos: own player did not show Player Bobbing.
  3. Fix for Chicken speed: it was a bit too fast.
  4. Implementation of “dontchasetarget” for line special Thing_SetGoal.
    Thing added: PatrolSpecial (9047).
  5. Added a switch to enable or disable vsync: vid_vsync.
    This is also accessible via Video Mode → Adv. Options
  6. Workaround implemented for when VSync is disabled on the graphics driver side, specifically during the connecting state.
  7. Fix for spawning with wrong angle, when the player got killed in teleport freeze time.
  8. Fix for damaging sectors in online games. Sometimes damaging was missing or triggered multiple.
  9. Changes to sector specials:
    • hDamage_Sludge (85) added
    • sDamage_Hellslime (105) fixed
    • sDamage_SuperHellslime (116) fixed
  10. Implementation of dehacked SavePercent. Percentage of damage that the armor absorbs set in Miscellaneous. Armors:
    • Green Armor SavePercent
    • Blue Armor SavePercent
    • Silver Armor SavePercent
    • Enchanted Armor SavePercent
  11. Fixed: never decrease health/armor by picking up HealthBonus, Soulsphere or ArmorBonus.

ZDaemon 1.10.10 (2019-12-13)

  1. Fixed: Turning player into spectator resets keys.
  2. Fix for Respawn where we died (sv_samespawnspot): If the player stucks teleport back to start.
  3. Respawning of ArtiInvulnerability and ArtiInvisibility depends on the dmflag DF_RESPAWN_SUPER (sv_respawnsuper) now.
  4. ACS Line_SetBlocking: BLOCKF_HITSCAN and BLOCKF_SOUND added.
  5. New ACS functions to change the behavior of Artifacts.
    The syntax of the declaration is:
    • void Arti_Execute(str artifact, int script, int arg1, int arg2, int arg3)
    • void Arti_ExecuteAlways(str artifact, int script, int arg1, int arg2, int arg3)
    • void Arti_NamedExecute(str artifact, int script, int arg1, int arg2, int arg3)
    • void Arti_NamedExecuteAlways(str artifact, int script, int arg1, int arg2, int arg3)
      When the artifact is used “script” will be executed instead of the hard coded action. Arguments for the functions are optional.
  6. Fix for demo playback: voice chat packets will not played during skipping.
  7. Sound option “Mute when out of focus” changed from yes/no to a slider. CVAR snd_muteoutoffocus changed from Bool to Float.
  8. Monsters which wake up, do melee attack or fire immediately did not show firing animation in online mode. Fixed.
  9. Implementation of BetaSkull and BetaSkullAttack (dehacked).
    Sprites SKUB for BetaSkull (instead of SKUL), so both Lost Soul monsters can be used.
  10. It could happen that connecting clients timed out on the server. Fixed (server-side).
    Value is the previous tic now.
  12. “auto_altwads” updated to Freedoom 0.12.1.
  13. Fix for Infinite Ammo: it's possible to shoot even if there is not enough ammo for the weapon.
  14. Bot could stick when sv_olddropoff was active. Fixed.
  15. If map00 exists and no maplist is defined the game will start with map00. Designed for Deathmatch servers with scripted lobby map00.
  16. Fix for HudMessages which overlap the statusbar.
  17. Bloodsplats (blood on the wall from damaging monsters/players) work online now. Old behavior can be set via cl_bloodsplats 0.
  18. Fix for render style Stencil for resolution 1366×768.

ZDaemon 1.10.09 (2019-07-19)

  1. MBF dehacked added:
    • Scratch (Unknown 1: damage, Unknown 2: sound effect)
    • Turn (Unknown 1: angle rotation in degrees)
    • Face (Unknown 1: angle position in degrees)
  2. Fix for MBF dehacked Mushroom.
  3. Implementation of MBF Helper Dog.
  4. Fix for client-side falling down Things in online games.
  5. Connecting clients get the monster's state from the server now.
  6. Line_SetIdentification “clipmidtex” and mapinfo “clipmidtextures” added.
  7. Implementation of command “listmaps”. It shows all available maps of the loaded wad(s).
  8. Implementation of the variable “log_scores”. When enabled, it will print the intermission information to the zserv console, and if enabled, the general log as well.

ZDaemon 1.10.08 (2019-05-29)

  1. ACS Print: cast type l (localized string from LANGUAGE) added.
  2. Fix for 1.10.07: Never crush BossBrain to pools of blood.
  3. Implementation of line special Teleport_NoStop.
  4. “auto_altwads” updated to Freedoom 0.11.3.
    Plutonia and TNT are also included now.
  5. Sound of Scripted Marine Pistol/Chaingun/Shotgun/SSG was played twice in online mode. Fixed.
  6. Hexen artifact Mystic ambit incant (ArtiHealingRadius) added.
    In non-Hexen mode: Heals the player and each affected player by 50-99 points.
    In team games only team mates could be healed.
  7. Hexen artifact Dragonskin bracers (ArtiBoostArmor) added.
    In non-Hexen mode: Gives 50 Armor up to Armor limit.
  8. Random maplist and Lobby is possible now.
    So it enlarges the usage of Lobby with an Exit.
  9. New server CVAR sv_reshuffle: Reshuffles a random maplist after a certain amount of played maps. 0 never reshuffles.
  10. Implementation of ACS function GetPlayerInput. Limitations for buttons: only BT_ATTACK, BT_USE and BT_JUMP are supported so far.
  11. Implementation of ACS functions MorphActor and UnMorphActor.
    For MorphActor:
    • playerclass: ChickenPlayer, PigPlayer
    • monsterclass: Chicken, Pig
    • Parameters style, morphflash and unmorphflash will be ignored.
  12. Hexen monsters fixed in online mode:
    • Reiver buried (WraithBuried)
    • Stalker (Serpent)
    • Stalker Boss (SerpentLeader)
    • Dark Bishop (Bishop)
    • Menelkir (MageBoss)
    • Zedek (FighterBoss)
    • Traductus (ClericBoss)
    • Heresiarch
    • Korax
  13. Fix for ClearInventory and TakeInventory that caused “Bad packet”.
  14. For using Heretic/Hexen sprites in Doom renaming added:
    • Heretic: HEAD → LICH
    • Hexen:
      ARM1 → AR_1 ARM2 → AR_2 ARM3 → AR_3 ARM4 → AR_4
  15. Hexen weapons Firestorm, Wraithverge and Frost Shards fixed in online mode.
  16. Hexen artifacts “Dark Servant” (Friendly Minotaur) and “Disc of Repulsion” implemented.
  17. Hexen puzzle items implemented.
  18. Player colorization in Hexen implemented.
  19. Fixes for Hexen destructible objects.
  20. Heretic/Hexen: Height of time bomb explosion in online mode corrected.
  21. Fix: Disabling of vid_fps redraws the HUD.
  22. ZLauncher can now become the system-wide handler of the zds:// protocol.

ZDaemon 1.10.07 (2019-02-09)

  1. Morphing to Pig in non-Hexen games crashed client and server. Fixed.
  2. New constants for GetPlayerInfo() ACS function:
    • PLAYERINFO_MORPHTICS (121): tics countdown (chicken/pig)
    • PLAYERINFO_READYWEAPON (123): selected weapon
  3. Implementation of the following ACS functions:
    • GetAmmoCapacity
    • SetAmmoCapacity
    • SetHudSize
    • SetMusicVolume (range of volume is from 0.0 to 1.0)
    • SpawnParticle (in online mode only for client scripts)
    • VectorLength
    • SetPointer
    • IsPointerEqual (AAPTR_PLAYER_GETCONVERSATION not implemented)
    • DropItem (dropamount will be ignored, chance -1 means doom2.exe behavior)
  4. Crushing mode added, so crushers can be set as Doom or Hexen crusher. Crushed dead players will change to pools of blood now. Caught in the crusher player's view lowers now in online mode. Generic_Floor can crush now. Fixed. Implementation of line specials:
    • Floor_RaiseAndCrushDoom
    • Ceiling_LowerAndCrushDist
    • Ceiling_CrushAndRaiseDist
    • Ceiling_CrushAndRaiseSilentDist
    • Generic_Crusher2 (uses Hexen mode)
  5. Heretic Firemace projectiles bounced by hitting the sky. Fixed.
  6. Fix for invulnerability when sv_oldblast is active: player didn't get a thrust. (e.g. Arch-vile attack, rocket/barrel explosion)
  7. Message which player exited was shown multiple sometimes. Fixed.
  8. Improvement to default zoom of automap. It was too small.
  9. Added an “sv_ammomultiplier” CVAR that modifies the amount of ammo given on pickups. It's a scale factor expressed in percentage terms: defaults to 100 (%) and can range from 0 up to 500 (%). Applies to coop and survival ONLY: ignored in other modes.
  10. Added new setting “Viewheight Bobbing” and CVAR “movebobviewheight” So it is possible to switch off up and down bobbing, but keeping the weapon bobbing for the Doom look.
  11. Command “maplist”: the actual running map is marked now.
  12. Reducing intermission time is possible now when all players press use/fire.
  13. Intermission is closer to original Doom/Doom2/Heretic in online mode now. Entering level and “you are here” will be shown.
  14. Sector Special “Door Close Stay (after 30 sec.)” was buggy in online mode. Fixed.
  15. Fix for “Screen wipe style none” 2 sec. input delay at map start in singleplayer.

ZDaemon 1.10.06 (2018-11-19)

  1. CheckInventory and CheckActorInventory return active powerups now.
  2. Maximum ANIMDEFS frames enlarged to 128.
  3. Implementation of ACS function SoundSequenceOnActor, SoundSequenceOnPolyobj and SoundSequenceOnSector (location parameter will be ignored).
  4. Implementation of ACS function SetSkyScrollSpeed.
  5. Fixed: Flag of carrier (CTF) was shown too high in TERRAIN footclip.
  6. Improvements to voice chat: avoiding crackle and higher volume.
  7. Added a new dmflag (DF3_NO_EPISODE_RESET = 8) and an associated CVAR (sv_noepisodereset). There will be no inventory reset when episode starts (E1M1, E2M1, E3M1, E4M1, E5M1, MAP01). It has lower priority than CVAR sv_resetinventory.
  8. Implementation of ACS function Scroll_Wall. For compatibility parameter “flags” is needed, but all parts of the wall will scroll.
  9. Heretic weapon Hellstaff with active Tome of Power (raindrops) used in Doom did not work. Fixed.
  10. Fixed: A_SkullPop crashed Player Setup in Doom/Heretic. (e.g. Heretic Player gibbed death)
  11. ACS function Sector_SetDamage: parameter interval and leaky added.
  12. SNDINFO: Implementation of $volume, $attenuation and $rolloff. Optional attenuation for $ambient point added.
  13. Gravity of a projectile spawned with Thing_ProjectileGravity was too high in online mode. Fixed.
  14. Things added:
    • ColorSetter (9038)
    • FadeSetter (9039)
    • HateTarget (9076)
    • Polyobject Start Spot (hurts to touch) (9303)
  15. Sector_SetColor and ColorSetter support Desaturation now.
  16. Midi opening/closing has been moved to a background thread in order to preserve game responsiveness.

ZDaemon 1.10.05 (2018-07-29)

  1. If a stencil render style is active on a player, the own weapon is shown in stencil color now. TranslucentStencil, AddStencil and AddShaded ignored brightness. Fixed.
  2. Fixed disappearing corpse in survival after player is out of lives and got a spectator.
  3. Red damage screen ignored sv_powerful_monsters in online mode. Fixed.
  4. Enabled SetPlayerProperty PROP_TOTALLYFROZEN.
  5. Changes of SetPlayerProperty in online mode does not touch client's chasecam anymore.
  7. Print/HudMessage: color for chat messages (\c*) and team chat messages (\c!) added. It uses the color of chat/team chat. PRINTNAME_NEXTLEVEL and PRINTNAME_NEXTSECRET added.
  9. No message to join in survival when out of lives.
  10. Implementation of ACS function ClassifyActor.
  11. Implementation of ACS function GetActorPowerupTics.
    • Powerups are:
      • PowerInvulnerable
      • PowerStrength
      • PowerInvisibility
      • PowerIronFeet
      • PowerLightAmp.
    • Heretic:
      • PowerWeaponLevel2
      • PowerFlight
      • PowerGhost.
    • Hexen:
      • PowerSpeed.
  12. Items could be used during intermission or as spectator. Fixed.
  13. Linedef activation added: Projectile hits or crosses.
  14. Basic implementation of LineAttack with tid, angle, pitch, damage and range.
  15. Script activators would get lost while morphed: fixed.
  16. Enabled user input to short-circuit the screen transition effect when starting a map.
  17. Fix for CPW_BulletAttack and CPW_CustomBulletAttack: bullet puff is shown now online.
  18. Added obituaries for Hexen to replace the generic “Player died” message when a monster kills a player.
  19. Added new screen wipe style: Wipe Oldschool.
  20. Fixed a bug introduced in 1.10b09 which caused an ACS script which called ACS_ExecuteWithResult() or ACS_NamedExecuteWithResult() to be killed with the “ACS stack underflow” error if it called one of these built-in functions from within a custom function.

ZDaemon 1.10.04 (2018-05-18)

  1. Added killlog as new command line parameter -klog. It logs player name and killed monster. Only active in Coop and Survival.
  2. Pitch set by Security Camera was ignored online. Fixed.
  3. Fixed erroneous pixels of particles (rocket trail, railgun, particle fountain) in uncapped mode.
  4. Enabled cvar override for timelimit.
  5. Fix for CPW_BulletAttack, CPW_CustomBulletAttack and CPW_CustomMissile: sv_infiniteammo had no effect and ammo counting was wrong online. Fixed.
  6. In survival sv_deathlimit is constrained from 1 to 5.
  7. Implementation of the following ACS functions:
    • UniqueTID
    • IsTIDUsed
    • Sqrt
    • FixedSqrt
    • strcmp
    • stricmp
  8. Enabled Get/SetActorProperty() ACS functions:
    • APROP_Frightened
    • APROP_NoTrigger
    • APROP_DamageMultiplier
    • APROP_StencilColor
  9. More render styles added:
    • STYLE_Stencil
    • STYLE_TranslucentStencil
    • STYLE_AddStencil
    • STYLE_AddShaded
    • STYLE_Shadow

ZDaemon 1.10.03 (2018-04-11)

  1. Fixed some ACS memory handling problems.

ZDaemon 1.10.02 (2018-04-08)

  1. Added a new dmflag (DF3_INFINITE_ITEMS = 4) and an associated CVAR (sv_infiniteitems). It blocks the “consumption” of an item when it is used (so it's effectively infinite once you acquire it).
  2. Changed the behavior of callvote: the person that calls the vote is automatically marked for a “yes” vote, so there is no need for them to issue such a command separately.
  3. Implemented a new “duel” mode (gametype=9). It differs from normal DM in the following aspects:
    1. maxplayers is forced to 2.
    2. overtime is forced to 1.
    3. sv_deathlimit is constrained from 15 to 60.
    4. When 2 players join, they start in “warmup” mode where they can play, get a feeling about the server, shoot and damage each others, but the frag/death/suicidecounters remain at zero. When they are ready to start the game, they can call a vote with the command “callvote game”. The vote requires 100% agreement to pass.
    5. Once the “set game” starts, it will end in one of 3 ways:
      • Someone wins/loses (normal end of game).
      • Someone disconnects (automatic forfeiture of the game no matter the disconnection reason).
      • The players can use “callvote cancel” to cancel the game. If the vote passes, the game is canceled, no stats are recorded and it returns to warmup mode.
    6. If demo recording is enabled on the server, it will record demos only for the actual game: not the warmup.
    7. The warmup period length can be constrained by the “warmup_timelimit” CVAR; it defaults to 5 minutes and can range from 0 (which means unlimited) up to 1000.
  4. Fixed stretched skies in widescreen mode.
  5. World and global ACS arrays are now zero-initialized as they should be.
  6. An attempt to load a map will now only happen if a valid sequence of properly named data lumps follows its label.
  7. Extended tab autocompletion for client console commands. Auto-completion after “toggle”, “rcon” and “rcon toggle” is possible.
  8. Fixed Heretic ammo pickup. Values for all types of ammo are correct now.
  9. Fixed client freeze (eg. iddqd1.wad map12, whitemar.wad map01).
  10. Fixed a problem that would cause spectators to reveal secrets under certain conditions.

ZDaemon 1.10.01 (2018-03-15)

  1. Significant improvements to unlagged; hitting in online mode should now be exactly the same as in SP mode even in very high ping situations; furthermore, there should be far fewer “dropped shots”.

ZDaemon 1.10 release (2018-03-07)

  1. Fixed sound sequence problems in online mode.
  2. Fixed console wrapping in the presence of SSAA.
  3. Do not log client IPs in ltd log.
  4. Resolved a case where a client disconnection wouldn't be logged in the ltd log after a kick or ban.
  5. Better polyobject handling in online mode.
  6. SP is now more consistent with C/S in various game modes.
  7. Smoother sprite animation. Thx to Medis and noncom for the patch submission.
  8. GetPolyobjX and GetPolyobjY work now (client and server).
  9. Added server name and address to demos.
  10. Survival fix to avoid taking a life when someone disconnects while dead.

ZDaemon 1.10b09 release (2018-02-12)

  1. chase_dist is now restricted to the 0…1000 range.
  2. chase_height is now restricted to the -100…100 range.
  3. Security cameras did not work with uncapped FPS: fixed.
  4. Fixed a problem when a player's camera was switched via scripting, while the player had activated spycam.
  5. Fixed a bug that could crash the server in some combinations of player respawning/disconnections.
  6. High resolution video modes having an aspect ratio of 1.6 (for example 1920×1200, 1440×900, 1280×800) were treated like 320×200 in terms of the aspect ratio (so they looked distorted). Fixed. This also means that virtual 320×200 mode is available only for fullscreen (not widescreen) gameplay.
  7. Avoid geometric distortions during window resizing and maximization by enforcing the aspect ratio of the selected mode; also handles multiple monitors properly. One can supress that behavior (and mess with the aspect ratio) by setting the “vid_override_ar” CVAR to true.
  8. Security & safety improvements in ACS handling.
  9. The “exec” cmd. on the server has been restricted to access files inside the server's working directory. The same command has been re-enabled on the client subject to the same restriction, but only in SP mode.
  10. Fixed a bug related to the invocation of acs named scripts across acs libraries.
  11. There was a bug in the ChangeCamera line special logic: sometimes it would change the camera of all players even when it should change only the activator's camera: fixed.
  12. The ThingDamage line special was buggy regarding the target of the damage and the reporting of negative damages in online mode: fixed.
  13. Added a new dmflag (DF3_NOCHASEMODE = 2) and an associated CVAR (sv_nochasemode). It blocks chase mode from working in coop/survival modes in online games (chase mode is already blocked in other, competitive modes).
  14. Monsters should not open fast doors.
  15. rhinoduck-contributed fix for a problem regarding nested invocations of the ACS Log() function. Thanks rhinoduck.
  16. Improved the implementation of the SetActivatorToTarget and SetActivator ACS functions.
  17. The kick and addban commands got extended to handle the # and $ player specification (just like addtempban).
  18. Improvements in the boss death behavior.
  19. Fixed some problems with the monster count regarding friendly monsters.
  20. The “special touching” logic has been reworked for better fidelity to vanilla DOOM. You can now pick up items 56 units or below: used to be 55 or below.
  21. Better syncing of level variables (monsters, items, secrets) between server and clients.
  22. Improved the handling of moving floors/ceilings in the presence of packet loss.
  23. Fixed a bug regarding the activation/deactivation of ambient sounds.
  24. Fixed a bug related to certain color translations in online mode.
  25. Netcode improvements for handling packet loss/out-of-order problems.
  26. Fixed more camera “synchronization” problems in online mode.
  27. Improved spectator/player weapon pickup synchronization even when DMFLAGS change.
  28. Enabled floor/ceiling waggles in online mode.
  29. Implementation of the ACS functions FadeTo, FadeRange and CancelFade in online mode.
  30. Stealth monsters were not visible at all while shooting in online mode: fixed.
  31. Earthquakes should move the player's view even when his view has switched to some camera.

ZDaemon 1.10b08 release (2017-09-04)

  1. Modified the “Press the 'USE' key to join” message shown to spectators in survival when sv_joinlimit is in effect. The new message either displays the remaining time to join or informs players that joining is disabled until the next round.
  2. Extended the range of numeric ACS scripts: they can range from 1 up to 32767. Also extended the upper limit on the total number of named scripts to 32768.
  3. Implemented the:
    • APROP TID:
      • APROP_MasterTID
      • APROP_TargetTID
      • APROP_TracerTID
    • actor properties ACS functions:
      • GetActorProperty
      • SetActorProperty
      • CheckActorProperty
  4. Freedoomu is now correctly recognized as a registered IWAD.
  5. Updates for the FLAC and ZLIB libraries.

ZDaemon 1.10b07 release (2015-10-08)

  1. Implemented the “pukename” console command: it enables the invocation of named scripts from the console. The syntax is:
    • pukename < script_name > [“always”] [arg1] [arg2] [arg3]
      where items in square brackets are optional.
  2. Extended the A_Mushroom codepointer to use the Unknown1/2 parameters as per the original MBF behavior.
  3. Implemented a “CHASEGOAL” actor property; monsters with that flag walks towards their goal instead of their target if a valid goal is set. The property can be set/read from ACS (GetProperty/SetProperty/CheckProperty/Thing_SetGoal) or from dehacked (deh. flag name = “CHASEGOAL”).
  4. Implemented the “VISIBILITYPULSE” dehacked flag.
  5. Playback of external m3u/audio files has been blocked; users can get the same results from using any media player.
  6. Enabled the access/manipulation of all code pointers in the engine via dehacked: not only those of doom. Also added some related documentation to the web site:
  7. Added protection against code pointer mismatches: the engine will detect (and complain) if an actor code pointer gets called by a weapon and vice versa.
  8. Implemented several new MBF-style code pointers:
          a. CPA_BulletAttack
             Performs a hitscan attack (firing bullets); you can
             specify the number of bullets in "Args1" and the sound
             to be made in "Args2". This code pointer is meant to
             be used by actors only: not weapons.
          b. CPW_BulletAttack
             Similar to CPA_BulletAttack but for weapons; it will
             also do ammo checking/depletion.
          c. CPA_CustomBulletAttack
             Implements a more customizable hitscan attack for monsters;
             the parameters are passed as Args1..Args8:
                1. horz_spread: The horizontal spread, in degrees.
                2. vert_spread: The vertical spread, in degrees.
                3. numbullets: The number of bullets to fire.
                4. damageperbullet: The amount of damage each bullet
                   does.  Unless the CBAF_NORANDOM flag is set, this
                   is multiplied by a random value between 1 and 3.
                5. pufftype:  Thing mnemonic or DeHackEd number to
                   spawn for puffs (when a wall is hit). Defaults
                   to "BulletPuff" if missing or invalid.
                6. range: The maximum range of the bullets. Default
                   is 0, which is interpreted as 2048.
                7. flags: bitmask consisting of any number of the
                   following options (bits):
                      CBAF_AIMFACING (1): If set, the attack will be
                         fired in the direction the actor is currently
                         facing, rather than at the actor's current
                      CBAF_NORANDOM (2): If set, the damage per bullet
                         is not randomized.
                      CBAF_EXPLICITANGLE (4): If set, the horizontal
                         and vertical spread are used as explicitly
                         stated, instead of being used as a range for
                         random spread.
                      CBAF_NOPITCH (8): If set, the vertical angle is
                         not adjusted to aim at the target.
                      CBAF_USEAMMO (16): If set, the player's bullet
                         inventory is checked/depleted. Valid only
                         for players/weapons.
                8. firing sound
          d. CPW_CustomBulletAttack
             Similar to CPA_CustomBulletAttack but for weapons; it will
             also do ammo checking/depletion if you use the CBAF_USEAMMO
             bit in the flags parameter.
          e. CPA_CustomMissile
             Implements a customizable projectile attack for monsters.
             the parameters are passed as Args1..Args7:
                1. missiletype: Thing mnemonic or DeHackEd number of
                   missile to be spawned. Defaults to "Rocket" if
                   missing or invalid.
                2. spawnheight: how high from the monster's feet to
                   shoot the missile.
                3. spawnofs_horiz: how far from the monster's center
                   to shoot the missile.
                4. angle: the direction relative to the monster's
                   facing angle in which to shoot the missile.
                5. pitch: used only when some of the flags (listed
                   below) are used.
                6. firing sound
                7. flags: bitmask consisting of any number of the
                   following options (bits):
                      CMF_AIMOFFSET (1): the missile is aimed parallel
                         to a missile with a spawn height of 32 and an
                         xy-offet of 0. This can be useful if you want
                         to have a monster shoot multiple missiles at
                      CMF_AIMDIRECTION (2): the missile is not aimed
                         at a target. Instead, it is shot in the
                         specified direction with the specified pitch.
                      CMF_TRACKOWNER (4): if a missile is fired by
                         another missile, use this flag to ensure the
                         secondary projectile knows who is its real
                      CMF_CHECKTARGETDEAD (8): with this flag, the
                         function will not spawn a missile if the
                         calling actor's current target is dead.
                      CMF_ABSOLUTEPITCH (16): use the pitch parameter
                         as an absolute value, ignoring the calculated
                         aim pitch. Implied CMF_AIMDIRECTION. The main
                         difference here is that a target is required,
                         where CMF_AIMDIRECTION does not require a
                      CMF_OFFSETPITCH (32): use the pitch parameter as
                         an offset to the calculated aim pitch.
                      CMF_SAVEPITCH (64): the pitch used for firing
                         the missile is saved as the missile's own
                         pitch. (Requires CMF_AIMDIRECTION,
                         CMF_ABSOLUTEPITCH, or CMF_OFFSETPITCH.)
                      CMF_ABSOLUTEANGLE (128): use the angle parameter
                         as an absolute value, instead of an offset to
                         the actor's angle.
          f. CPW_CustomMissile
             Similar to CPA_CustomMissile but for weapons; it uses the
             same parameters for Args1..Args6. Args7 is still a flags
             parameter but it accepts different options (bits):
                CMF_USEAMMO (256): check and deplete the player's ammo.
                   Args8 specifies the ammo to be checked/used according
                   to the following convention:
                      1: Bullets
                      2: Shotgun Shells
                      3: Energy Cells
                      4: Rockets
                      5: Wand Crystals
                      6: Ethereal Arrows
                      7: Dragon Claw/Blaster orbs
                      8: Hellstaff/Skullrod runes
                      9: Phoenix Rod orbs
                     10: Mace Spheres
                     11: Blue Mana
                     12: Green Mana
                   Args9 specifies the ammount of ammo used per shot.
                CMF_AIMATANGLE (512): add the specified angle to the
                   player's angle when shooting the missile.
  9. Slightly modified the survival rules: when someone disconnects while playing, he doesn't get automatically blocked from re-joining in the same level: he gets charged with one death instead; if the resulting death count is lower than maxlives, he can re-join but he will get “charged” with the death count. Otherwise, he will be blocked just like before.
  10. Implemented a more precise gravity property per actor accessible from dehacked or ACS; a value of 1.0 signifies “normal gravity”, 0.1250 signifies “low gravity” and 0 signifies “no gravity”. The NOGRAVITY and LOGRAV flags remain for compatibility purposes.
  11. Implemented a “DamageFactor” dehacked property for actors. It specifies an actor's sensitivity to damage (1.0 being “normal”, and higher values indicating higher sensitivity to damage).
  12. Implemented a remove_cvaroverride server command: the syntax is:
    • remove_cvaroverride < map_name > < cvar_name >
  13. Added a new boolean CVAR “retain_console”. When set to true, it will not close the console at map start; defaults to false (ie., same behavior like before).
  14. Coop/Survival players are not autojoined any more on map reset.
  15. When a map changes via voting, in-game players will be auto-joined except in coop/survival.
  16. sv_randmaps now uses maplist shuffling instead of purely random selection.
  17. Kick voting now requires at least 2 voters (apart from the percentage specified by “sv_vote_kick_percent”).
  18. Various minor ACS improvements:
    1. ACS named scripts will be case-insensitive.
    2. Script names are shown by name and number where applicable.
    3. An “instance id” has been added to each script's displayed name to distinguish instances of the same script.
  19. The coop/survival spawning algorithm has been reworked as follows:
    1. In SP mode: for “spectator spawn”, “normal in-game spawn”, and “respawn after death” we use the “player number method” of Doom. So the player always spawns at spot 1; if he adds a bot, the bot always spawns at spot 2; if he adds another bot, that goes to spot 3, and so on. So in SP mode ZDaemon behaves identically to Doom.
    2. In C/S mode: when you spawn (as a player) in-game, ZDaemon uses a “by spawn order” (rather than by player number); this means that the first guy to spawn goes to spot 1, the second to spot 2, etc. This is the closest possible C/S analogue to the original Doom behavior.
    3. In C/S mode: when you respawn after death, you use the same spawn that you used on first in-game spawn. This together with the item above, implies that the spawning behaves as in SP mode (and as in classic Doom), when there is only one player in the server.
    4. In C/S mode: when you spawn as a spectator, it simply uses one of the coop spawns at random; this is more useful for spectating. It has no analogue in classic Doom, as Doom had no spectator support.

ZDaemon 1.10b06 release (2015-08-21)

  1. Fixed a monster infighting problem whereby hitscan monsters would not target other monsters of the same kind that damaged them.
  2. Fixed a namespace collision problem between BEHAVIOR and LOADACS lumps.
  3. The RCON SAY command will be included in the limited log.

ZDaemon 1.10b04 release (2015-08-02)

  1. Fix for the automap which was off-center in overlaid mode when the virtual 320×200 mode was selected.
  2. Doom Builder's 3D Camera object will get ignored on map loading. It's not used by the engine anyway.
  3. Frags by fist (staff in Heretic) will trigger the playback of the “ann/kill_fist” sound clip. Similarly frags by chainsaw (gauntlets in Heretic) will trigger the “ann/kill_chainsaw” sound clip. Both clips are optional and may be provided by a PWAD.
  4. Implementation of the “weapon-specific” scripted marines, including the ACS opcodes to set their weapon / sprite.
  5. The “spec_warp” client command should not check for the validity of a move if the client has noclip enabled.
  6. Implementation of the following ACS functions:
    • ResetMap
    • PlayerIsSpectator(player_index)
    • ConsolePlayerNumber
    • GetPlayerLivesLeft(player_index)
    • ACS_NamedExecute
    • ACS_NamedExecuteWait
    • ACS_NamedExecuteAlways
    • ACS_NamedExecuteWithResult
    • ACS_NamedLockedExecute
    • ACS NamedLockedExecuteDoor
    • ACS_NamedSuspend
    • ACS_NamedTerminate
    • NamedScriptWait
  7. Fixed a desync in the movement of the Heretic firemace projectiles in online mode. thx to Krawa for the report and debugging work.
  8. Added a “SYNCMOVEMENT” flag to dehacked; it can be used for projectiles having idiosynchratic/randomized movement that need frequent “driving” from the server to the clients (use it with restraint though: it consumes more bandwidth than normal projectiles).
  9. The recent DirectDraw → Direct3D video changes resulted in an incompatibility with 16-bit (Highcolor) video modes. This has been fixed now.
  10. New constants for the GetPlayerInfo() ACS function, so it can access more player-related data.
    • PLAYERINFO_ITEMS: the player's item count.
    • PLAYERINFO_HEALTH: the player's current health.
    • PLAYERINFO_ARMOR: the player's current armor.
    • PLAYERINFO_SECRETS: the player's secret count.
    • PLAYERINFO_KILLS: the player's kill (NOT frag) count.
    • PLAYERINFO_DEATHS: the player's death count.
    • PLAYERINFO_SUICIDES: the player's suicide count.
    • PLAYERINFO_PTS_1: the primary criterion for the current gamemode. It pertains to frags in DM, damage in coop/survival, points in CTF/DDOM/KOTH.
    • PLAYERINFO_PTS_2: the secondary criterion for the current gamemode. It pertains to deaths in DM, and kills in coop/survival.
    • PLAYERINFO_PTS_3: the tertiary criterion for the current gamemode. It pertains to deaths in coop/survival.
    • PLAYERINFO_TIME: the time (in game ticks) since the player last spawned (in the current level); -1 if he hasn't.
    • PLAYERINFO_USR_1/PLAYERINFO_USR_10: Ten user-defined counters that may be used by modders for any purpose.
  11. New SetPlayerInfo() ACS function to set some player characteristics. The syntax is:
    • void SetPlayerInfo(int player, int selector, int value)
      The “selector” parameter must range from PLAYERINFO_USR_1 through PLAYERINFO_USR_10; other values for the selector will be silently ignored. This is just a first implementation; the function may be extended to handle more PLAYERINFO_* constants in the future.
  12. New PlayerTopIndex() ACS function to obtain the highest player index at the moment; it can be used to efficiently obtain the upper bound for loops iterating over all players. The syntax is:
    • int PlayerTopIndex(void)
  13. New NetMode() ACS function to obtain the current “network mode” at runtime. The syntax is:
    • int NetMode(void)
      It returns one of three possible values:
      • NM_SINGLEPLAYER (1): The script is being run by the ZDaemon client in SP mode.
      • NM_SERVER (2): The script is being run by the ZDaemon server in online mode.
      • NM_CLIENT (3): The script is being run by the ZDaemon client in online mode.
  14. New ACS functions for executing scripts “remotely” (ie., the server can instruct a client to run a script and the client can instruct the server to run another script).
    The syntax is:
    • void Server_Execute(int script, int map, int arg1, int arg2, int arg3)
    • void Server_ExecuteAlways(int script, int map, int arg1, int arg2, int arg3)
    • void Server_NamedExecute(string script, int map, int arg1, int arg2, int arg3)
    • void Server_NamedExecuteAlways(string script, int map, int arg1, int arg2, int arg3)
    • void Client_Execute(int client, int script, int map, int arg1, int arg2, int arg3)
    • void Client_ExecuteAlways(int client, int script, int map, int arg1, int arg2, int arg3)
    • void Client_NamedExecute(int client, string script, int map, int arg1, int arg2, int arg3)
    • void Client_NamedExecuteAlways(int client, string script, int map, int arg1, int arg2, int arg3)
      The functions mimic the ACS_Execute, ACS_ExecuteAlways, ACS_NamedExecute, ACS_NamedExecuteAlways functions in terms of parameters and functionality. The Client_* functions have an additional parameter at the front, indicating the “target client”; a value of -1 indicates all clients.
      When the Server_* functions are encountered by the server, they're executed just like normal ACS_Execute. When they're encountered by the client in SP mode, they are also executed just like normal ACS_Execute. When they're encountered by the client in online mode, the clients sends a message to the server to carry out the execution.
      When the Client_* functions are encountered by the server, the server sends a message to the indicated clients to carry out the execution. When they're encountered by the client in either SP or online mode, they're executed just like normal ACS_Execute as long as the “target client” is either -1 or equal to the consoleplayer.
      The ACS extensions of the last 5 items above require a new “zdaemon.acs” file for ACC (the ACS compiler); you can download it from:
  15. Complete implementation of monster infighting with respect to the latest zdoom (2.7.1). There are two dehacked keywords
    • “Monsters Ignore Each Other”
    • “Monsters Infight”, a dehacked flag called “NOINFIGHTING”, as well as a new “infighting” CVAR which is an integer with 3 possible values (default value = 0):
      • -1 : Monsters never fight other monsters
      • 0 : Monsters do not fight other monsters of their own kind unless they use bullet attacks. This is the standard Doom behavior.
      • 1 : Monsters will fight other monsters, including those of their own kind.
  16. The height of the CTF flags went up from 16 units to 48.
  17. Implementation of friendly monsters; there are also two new dehacked flags “FRIENDLY” and “SUMMONEDMONSTER” which can be applied to various actors.
  18. New client command “spy” that enables you to specify either a player number (when using a # prefix) or a player name (when using a $ prefix) so you can switch POV to that player directly. The usual restrictions apply of course.
  19. Two new server commands to remove maps from the maplist:
    • delmapbyidx
    • delmapbyname
      The first removes a map by its index (1 being the first one), the second removes all entries matching the specified map name.
  20. Implementation of 4 new ACS functions for simpler/better pseudorandom numbers:
    1. int ZD_rand(int min_value, int max_value); Draws a uniformly distributed random number in the specified range (the range includes the min. and max. values). It can work in “repeatable” mode (via the functions below), but that's NOT the default operation; it defaults to “always new” drawings.
    2. void ZD_srand(int seed); Sets the seed of the random number generator; if the specified value is negative, then it will use something “random” based on the current time and other parameters. This function gets auto-called with seed = -1 on every map load, which results in “always new” drawings; if you want repeatability, you can call the function with a fixed (and non-negative) seed value (eg., 0).
    3. void ZD_rand_savestate(); Saves the current state so you can restore it later.
    4. void ZD_rand_restorestate(); Restores a previously saved state so you can re-draw the same random numbers.
      These extensions require a new “zdaemon.acs” file for ACC (the ACS compiler); you can download it from:

ZDaemon 1.10b03 release (2015-01-01)

  1. Fixed a recently introduced bug whereby the “cl_maxbodies” CVAR would be ignored.
  2. Fixed a crash in the ACS function “CheckWeapon” when the activator had no weapon at all.
  3. Fixed an occasional “no camera” bug while viewing demos.
  4. Fixed a crash when an actor died from ice damage and had no ice death defined.
  5. Fixed a client crash when encountering a “none” decal in the DECALDEF lump.
  6. Fixed a recently introducted bug when an actor's death state was set to NULL.
  7. From now on, CVAR overrides for a given map will be applied in the order specified in zserv.cfg and they'll be restored in the inverse order.
  8. Implemented an MBF-style codepointer A_PlayWeaponSound. It's similar to A_PlaySound, except that:
    1. it applies to weapon rather than actor frames,
    2. it uses the weapon rather than the body channel,
    3. it uses Args1/Args2 rather than Unknown 1/2 for the sound number and attenuation flag respectively (Unknown 1/2 are used for the animation in weapon frames).
  9. Fixed some inacurracy when using the turn180 command online.
  10. Extended the number of possible Args in dehacked frames to 9 (Args1…Args9). This will be useful in future extensions.
  11. Implemented several new MBF-style codepointers; they're inter- faces to the ACS scripting functions and they're designed to allow controling ACS scripts from dehacked. For each relevant ACS function, there are 2 codepointers: one strictly for actor frames (names starting with CPA_), the other strictly for weapon frames (names starting with CPW_). All the codepointers take their parameters as Args1…Args5 in the order used by the ACS function that they call. Here is the list:
    a. CPA_Execute, CPW_Execute:
       they map to the ACS function:
          ACS_Execute(script, map, s_arg1, s_arg2, s_arg3)
       Since ACS_Execute takes 5 parameters, the codepointers
       use Args1...Args5.
    b. CPA_ExecuteAlways, CPW_ExecuteAlways:
       they map to the ACS function:
          ACS_ExecuteAlways(script, map, s_arg1, s_arg2, s_arg3)
       Since ACS_ExecuteAlways takes 5 parameters, the codepointers
       use Args1...Args5.
    c. CPA_LockedExecute, CPW_LockedExecute:
       they map to the ACS function:
          ACS_LockedExecute(script, map, s_arg1, s_arg2, lock)
       Since ACS_LockedExecute takes 5 parameters, the codepointers
       use Args1...Args5.
    d. CPA_LockedExecuteDoor, CPW_LockedExecuteDoor:
       they map to the ACS function:
          ACS_LockedExecuteDoor(script, map, s_arg1, s_arg2, lock)
       Since ACS_LockedExecuteDoor takes 5 parameters, the code-
       pointers use Args1...Args5.
    e. CPA_Suspend, CPW_Suspend:
       they map to the ACS function:
          ACS_Suspend(script, map)
       Since ACS_Suspend takes 2 parameters, the codepointers
       use Args1...Args2.
    f. CPA_Terminate, CPW_Terminate:
       they map to the ACS function:
          ACS_Terminate(script, map)
       Since ACS_Terminate takes 2 parameters, the codepointers
       use Args1...Args2.
  12. Implemented an MBF-style codepointer A_RandomJump. It can alter the execution path of actors depending on a random drawing. One uses the “Unknown2” parameter to specify the desired probability (N / 256) of a jump to the frame specified by the “Unknown1” parameter. If for example, Unknown2=192 and Unknown1=14, it means we want the actor to jump to frame 14 with a probability of 75% (192/256) or to the next frame otherwise.
    IMPORTANT NOTE: this codepointer applies to actors only; if you try to use it on weapons, it *will* crash the engine.
  13. Fixed a client crash after the end of a level when the level does not have an intermission image.
  14. Enabled the getting/setting of 3 actor properties from the Get/SetActorProperty() ACS functions: APROP_Height (read only) APROP_Radius (read only) APROP_ReactionTime (read/write)
  15. The APROP_Speed property can now be read/set on players.
  16. Implemented the decapitation in the Heretic's player, Hexen's Fighter player and Fighter Boss (Zedek) extreme death (gibbing).
  17. Heretic's bag of holding should not spawn in instagib mode.
  18. Successive “say” commands cannot occur within 3 ticks of each other.
  19. Implemented the automatic submission of minidump files when the client crashes; this can help in finding and fixing client bugs. The generation and submission of those files is controled by the “minidump_policy” CVAR. It can take one of the following values:
    • 0: Don't generate any minidumps
    • 1: Just generate minidumps; don't send them anywhere.
    • 2: Generate minidumps and submit them to zdaemon. This is the default value.
    • 3: Generate minidumps, submit them to zdaemon and then delete them.
  20. The A_FastChase codepointer can now be accessed from dehacked.
  21. The “turn180” command will not be able to coexist with other commands in the same alias (macro). Firing rockets from one's back was never intended as a game feature. The command will still be usable in its intended (standalone) form.
  22. A “monsters telefrag each other” option was always forced on on any map called “map30”; it's useful for the “Icon of Sin” map in doom2.wad, but not for other WADs. We changed it so that this flag is turned on for map30 only when doom2.wad is loaded and it's the only wad. In this way it will work for normal DOOM coop, but it will not conflict with other WADs (one can turn on that flag from mapinfo for any map on newer WADs).

ZDaemon 1.10b02 release (2014-08-02)

  1. Hexen leaves are decorative and should not waste bandwidth (or spawn twice). Fixed.
  2. Added the CLIENTSIDEONLY synonym to the CLIENTSIDE dehacked flag.
  3. New dehacked flag called “SERVERONLY”; any object having that property will spawn on the server (so it can do whatever it's supposed to do), but the spawn & movement will not be sent to the clients. This is useful for objects that need a single, authoritative instance (running on the server) as opposed to many instances (one on the server + one on each client). Objects related to game logic can benefit from this flag. The principal difference between this flag and the CLIENTSIDE flag is that CLIENTSIDE tells the clients than the object has been spawned, but doesn't send movement afterwards (so the client has to move it), whereas SERVERONLY does not tell the clients anything about that object (so it exists only on the server).
  4. Pickup of invulnerability spheres by players would not update their APROP_Invulnerable property (as reported to ACS). Fixed.
  5. Fixed a problem when in-game chat contained the character #255.
  6. A couple of crosshair fixes in virtual 320×200 mode.
  7. Fixed a problem with the 'mute when out of focus' option in full screen mode.
  8. Extended the server maplist to handle very large maplists (up to 10000 maps) efficiently.
  9. Fixed bouncing-related bugs in dehacked.
  10. Bossbrain and serpent fixes.
  11. Log access via the ZServ HTTPD was not functioning correctly on Linux servers. Corrected.
  12. Added Cyrillic versions of the Trebuchet font.
  13. Fixed a quake-related crash.
  14. Fixed a 'corpse queue'-related crash.
  15. Fixed some rendering-related crashes.

ZDaemon 1.10b01 release (2013-12-25)

  1. Implemented server-side demos (SSD). The server can automatically generate and publish demos of all games. The recording of demos is controlled via the “ssd_record” CVAR (0=off, 1=record when one player joins the game, 2=record when one player connects to the server); the demos are saved in the directory “server_demos” directly underneath the server directory. The server can also “publish” the demos via an embedded mini web server. This is controlled via the “ssd_publish” CVAR (1=on, 0=off). When it's enabled, one can browse/fetch the demos by pointing a web browser to the URL: http://SERVER_IP:PORT/demos/
    The server can automatically cleanup the directory by removing demos older than a given number of days; this is controlled from the “ssd_keepdays” CVAR: it defaults to 7 (one week); a value of zero disables this cleanup, but you better have another way of removing them as they will consume more and more of your disk space.
    There is also an “ssd_minsecs” CVAR that determines the minimum number of seconds for a demo's duration. If a demo is shorter than that minimum, then it will not be stored at all. The default value is 30 (seconds).
    There are cases where the server admin may prefer to avoid the above described publishing and process the demos in some other way (for example, move them to other directories, send them to other hosts, etc). In that case, he can use the “ssd_process” CVAR; it's a string containing a command will be issued when the demo is ready. If that command is non-empty, then the zserv will issue that command and will NOT do anything more regarding the demo (ie., it will not move it, delete it, or touch it in any way); from that point on, the demo becomes the responsibility of the specified command.
    When the server admin decides to process the demos in some other way, he may want to publish them at some other URL, which he can specify by using the “ssd_url” CVAR. It's a simple string and it overrides the above described default URL. There are 2 special escape sequences that can be used in the URL: $a will be replaced by the IP address of the server and $p will be replaced by the listening port.
    Furthermore, the server admin may wish to specify some unique name to be displayed in the demo download page. This is done via the “http_title” CVAR.
    Finally there is an “ssd_voice” CVAR (1=on, 0=off) that determines whether voice data will be stored in demos or not. Defaults to ON.
  2. Implemented WAD downloads directly from the server. It's controlled from the “wad_downloads” CVAR (1=on, 0=off). When the downloads are enabled, the launcher will be notified about it and it will use the server's download page: http://SERVER_IP:PORT/wads/ to fetch any missing WADs. The WADs are auto-compressed into ZIP files and they're cached in the “cache” directory for the life of the server (ie., once a given WAD has been compressed into ZIP, it will never be re-compressed while the server is still running).
  3. Implemented throttling of WAD and demo downloads; it's controlled via the “max_download_kbps” CVAR. A positive value indicates the maximum download rate in kilo-bits per second; zero or negative values disable the throttling. Defaults to zero. There is also a related CVAR called “max_transfers” which controls the maximum number of concurrent downloads allowed; requests that will result in exceeding that limit are ignored. Defaults to 10.
  4. Extension of the sv_voice_chat server CVAR to recognize a value of “3” which will stand for “commentary mode”. This mode works as follows:
      Team modes
      Chat is in-team as usual, but there is also a "commentators" CVAR
      that contains a space-delimited list of nicks allowed to speak
      *from the non-playing teams*. If the list is empty, then everyone
      can speak; if not, only the specified nick(s) can talk. Suppose
      for example that maxteams=2; in that case 2 teams are non-playing.
      Spectators would get into the non-playing teams; one or more of
      those spectators would be designated as a commentator and that
      person would be heard only by whoever is on his team. In this
      way you could even have 2 commentary channels (green and white):
      imagine for example english commentary on one channel, spanish
      on the other.
        Non-team modes
        Commentary mode results in a "spectator-separated chat". If the
        mode is coop/survival, then the players talk only to each other
        (and that's one conceptual channel) and spectators talk only to
        each other (that's a second channel). If it's DM, then there is
        no player channel (unless it's a private server). There is also
        a "commentators" CVAR containing a space-delimited list of nicks
        allowed to speak from the spectator channel. If the list is
        empty, it means that anyone can talk.
        No changes are needed to the "voice_chat" CVAR on the client.
        People will be able to hear the commentators simply by joining
        the proper team (in team modes) and remaining a spectator.
        There are also 3 new server commands to facilitate the mani-
        pulation of the "commentators" CVAR:
            commentators_add nick [nick ...]
            commentators_remove nick [nick ...]
  5. Added a “refreshbans” server command that asks the server to reload the master and server-provider ban lists.
  6. Added new SetActivator and SetActivatorToTarget acs functions.
  7. Fixed a crash on e2m9 intermission.
  8. Added some spectator CCMDs that are useful for video recording. spec_togglenoclip: allows specs to enable noclip (it is needed in some maps that teleport players only when they use a switch). spec_warp: warp the spec to location x, y, z and set pitch and angle (the input values are on the same scale as the idmypos output). spec_follow: make the spectator view follow a player. spec_follow_params: TODO spec_stopfollow: stop following a player.
  9. Fixed a client crash when using combinations of higher resolutions, SSAA and zooming.
  10. Resolved a weapon/ammo desync in demos from the recorder's POV.
  11. Added a new dmflag (DF_MULTIKEYBINDS = 536870912) and an associated CVAR (sv_multikeybinds). It determines whether aliases/bindings can trigger more than one key at the same time (typically used for SR50 automation).
  12. The dmflag2 “DF2_OS_JUMP” (262144) is not needed any more. The classic movement it implies will be always used except when when mlook + jump + no OS_BLAST is set (rjump physics).
  13. Implemented UT-style double jumping: activates when you jump a second time near the apex of the first jump and gives you an extra boost. It's activated via a new dmflag (DF_DBL_JUMP = 536870912), or an associated CVAR (sv_dbljump).
  14. Implemented true widescreen (16:9) support; when enabled, it expands the field of view to 106 (rather than 90) degrees in the horizontal direction and is suitable for most of today's monitors. Fullscreen (4:3) as opposed to Widescreen (16:9) view is controlled via a dmflag2 (DF2_FULLSCREEN = 262144) or an associated CVAR (sv_fullscreen). There are also very flexible arrangements for using widescreen on a fullscreen video mode: you can select between letterboxing vs. stretching and you can also select the desired amount of letterboxing/stretching.
  15. Added a client CVAR called “demo_ar”. It controls the desired aspect ratio while playing back demos. It can assume a value of zero (in which case the demo plays back at the “native” aspect ratio), one (in that case the demo plays back as widescreen), or two (in that case the demo plays back as fullscreen).
  16. In some instances, missiles that exploded on the server would appear as live on the client: fixed.
  17. Fixed a case where doors could move below their initial height in sectors that also had a lift in them (See liftdoortest2.wad). thx to rhinoduck, Krawa and Evolution for reporting and testing work.
  18. Added the StrParam ACS function. It allows creating temporary ACS strings on the fly.
  19. Added lineid arguments to Polyobj_StartLine and Polyobj_ExplicitLine line specials.
  20. Protocol improvements to help the hosting of home servers when port forwarding or upnp are not properly configured.
  21. Added Support for the “map00 lobby convention” in WADs. It's controlled via the “lobby” CVAR. When that CVAR is 1, it activates the “lobby mode”:
    • The server auto-switches to map00 when both players leave.
    • The server auto-switches to map00 when a map ends.
    • All maps will always be available for voting, no matter the value of sv_vote_map_skip.
    • There will be no time limit on map00.
    • Dynamic bots (minplayers) are excluded from map00.
      For this mode to get activated, you need to:
      1. Set the “lobby” CVAR to a value of 1.
      2. map00 should exist in the loaded WADs.
      3. Define a maplist on the server.
      4. Include map00 into the maplist.
  22. Multiple fixes for client and server crashes.
  23. Fixed monster railgun shots not being visible online.
  24. Added two new command line parameters -rand_color and -rand_voice to randomize the player's color/voice.
  25. Enabled loading of font lumps that have kerning specified.
  26. Remember the value of the idmypos CVAR on the client.
  27. Make color representation of health depend on dehacked start health.
  28. Allow maxplayers=1 in coop/survival.
  29. Proper tid=0 handling for Thing_Damage special.
  30. Fixed the spectator teleports and improved the player teleports as recorded in demos.
  31. Transfer TID when morphing an actor.
  32. Fixed nightmare monster respawns; they should not spawn into players any longer.
  33. New server CVAR sv_acs_world_exit. When enabled then ASC OPEN scripts can exit a map even when sv_noexit is set. Beware that the activator in other scripts that use a delay can become NULL before exit is called, thus resulting in a mistaken 'world' exit (e.g., see DeathBall).
  34. Fixed a problem with split demos and inventory/ammo/weapons in coop/survival.
  35. Fixed a crash related to long cvar names in cvar overrides.
  36. Restored vanilla barrel height.
  37. Added new client CVAR cl_showeventmsg. When disabled the event messages (flag taken, etc.) will not be printed to screen. Event sounds will still play.
  38. Added new client CVAR cl_showdeadscore. It controls whether the scoreboard is automatically drawn for dead players.
  39. Added the following read-only CVARs on the client: get_x, get_y, get_z to get the x, y, z position (fixed-point) of the display- player; get_pitch, get_yaw, to get the pitch and angle (truncated) of the displayplayer; get_consoleplayer, get_displayplayer to get the consoleplayer and displayplayer indices respectively.
  40. Allow old thrust method (sv_newthrust) to operate on TIDs. The ACS function declaration is:
    • ThrustThing (angle, force, nolimit, tid)
    • old ThrustThing (angle, force, dummy, tid)
      Nolimit does nothing when old thrust is enabled for compatibility reasons.
  41. Windows client and Linux server crashes will generate a dump file that can help to fix the crash. To make it work in Linux you need to have GDB installed. At any rate, if your server or client crashes, you can submit the dump file so we can fix the bug.
  42. Added a new dmflag2 (DF2_BRIGHTSKINS = 1073741824) and an associated CVAR (sv_brightskins). It determines whether player skins are brighter/more visible from a distance than normal.
  43. Fixed skin scaling to work online.
  44. Fix color overrides to be not applied when spectating a game.
  45. Fixed a ZDoom bug that sometimes caused the BFG to misfire right after pickup.
  46. New “motd_duration” CVAR controlling how long the MOTD stays on screen. Default value = 15 (seconds). It can range between 1 and 300; a zero value blocks the display of the MOTD completely.
  47. Two new commands to re-display / kill the MOTD: “showmotd” and “killmotd”.
  48. The item selection (heretic/hexen) should be shown while spying or demo viewing.
  49. Fixed the Windows 8 problems by replacing DirectDraw framebuffer with Direct3D framebuffer using the D3D device backbuffer. This also means that now 3rd party programs, like Steam Overlay UI, are working.
  50. Better multiple monitor support and implementing it as a menu item to the video options.
  51. Improved a bit the handling on the server of uneven packet delivery from the clients.
  52. Added a new dmflag (DF3_INSTATELE = 1) and an associated CVAR (sv_instatele). When enabled, it removes the half-second freeze, and preserves the player speed and angle on normal (non-silent) teleports.
  53. Switched the timestamps in all server logs to the standard ISO format (YYYY-MM-DD HH:MM:SS). Furthermore, the frag and weapon logs will contain timestamps just like all other logs.
  54. New “limited” log on the server; it's similar to the general one, but it does not display the IPs of connecting players, rcon commands and non-public messages. It's enabled by the -llog cmd. line switch.
  55. Implemented log downloading in the zserv; it's controlled from the “log_publish” CVAR; when it's turned on, logs can be fetched from: http://SERVER_IP:PORT/logs/
    Only “non-sensitive” logs are available through this mechanism: CTF, frag, weapon and limited logs. There is also a restriction in the age of logs: current logs are NOT available for download: only older logs are. The max. age of the logs that will be available for download is controlled via the “log_publish_maxage” CVAR; it's an integer that can range from 1 up to 30 (days); defaults to 7.
  56. The railgun has been extended to work as a standard weapon in Heretic and Hexen; it uses Hellstaff ammo (lesser and greater runes) in Heretic and blue mana in Hexen. both cases it consumes 2 units of ammo per shot and gives 20 units of ammo (ie., 10 shots) on pickup. The instagib dmflag has also been extended to work properly in Heretic and Hexen.
  57. Added the CLIENTSIDE flag to dehacked; objects having that flag move independently on the client (no bandwidth is consumed for their movement).
  58. New “joinable_teams” server CVAR; it's a bitmask indicating which teams are allowed to join (1=red, 2=blue, 4=green, 8=white). It is automatically reset whenever maxteams is set; it can assume a value between 1 (only red can join) and 15 (all 4 teams can join). Note that team joining is STILL SUBJECT TO “maxteams”; if for example you want only red and green to join, you will set maxteams to 3 (or 4) and joinable_teams to 1+4 = 5. If you set maxteams to 2 and joinable_teams to 5, then only red will be able to join.
  59. New “sv_info_caching” server CVAR: it determines the amount of caching that the zserv will apply to the info sent to browsers. It's an integer value expressed in seconds. Defaults to 3. It can range from 1 (very little caching) to 15 (very large caching).
  60. Increased the client limit to 100.
  61. Implemented uncapped FPS; it's controlled from the “vid_capped_fps” client CVAR; when the CVAR is on, the client uses 35 FPS (as in classic DOOM); when it's off, the client uses as many FPS as your computer can handle, SUBJECT TO your monitor's limitations (vsync). If for example you have a strong CPU but a low-end monitor, then you will probably see 60 FPS (the refresh rate of most low-end monitors); if your monitor is fancier, you will see a higher FPS value. The implementation is correct, in that this setting does NOT affect your keyboard or mouse handling in any way.
  62. Fixed a problem where a weapon appeared to fire while no projectiles were spawned when fire was kept pressed during a weapon pickup and PWO was enabled.
  63. Spectator pitch is now recorded in demos (for the recording player of course).
  64. Improved the robustness of the old CTF convention with respect to packet loss.
  65. Enabled the demo tool to handle demos over 42MB.
  66. Allow passing high CVAR values (eg. 1e+006) with the Puke CCMD. Make it also possible to properly return such high CVAR values.
  67. sv_aircontrol changes should get propagated from server to client.
  68. A value of 2 for the restartemptymap CVAR will advance to the next map.
  69. Fixed a non-switching-out bug in the railgun when running out of ammo.
  70. Fixed a problem in using the A_FireCustomRailgun in dehacked patches.
  71. Made the ID numbers of Hudmessages serve as priority for the messages. Hudmessages with lower IDs will appear in front of those with higher IDs.
  72. More work on hexen has been done; the HUD, as well as most artifacts, armor, weapons, monsters, player classes are *starting* to work; don't assume though that they are “done”; there is still a long road ahead for that.
  73. Barrels should be able to activate lines.
  74. Fixed the Hexen main menu (it should show minotaurs instead of skulls).

ZDaemon 1.09.01 release (2012-11-09)

  1. Fix for spurious turbo errors.
  2. The kick message was not getting recorded in demos. Fixed.
  3. There was a problem when a server reached maxclients. Fixed.
  4. The usage of the teamscorelimit CVAR for coop/survival turned out to be too confusing. Therefore we introduced a new CVAR called teamkilllimit: it specifies the number of monsters killed by all players that will trigger a map change in coop and survival modes. It defaults to zero (ie., inactive).
  5. Implemented Super-Sampled Anti-Aliasing in the renderer. It can be configured in the video options and supports 2x, 4x and 8x anti-aliasing. Of course, this consumes more CPU cycles than otherwise (and the CPU needs increase sharply with the anti- aliasing multiplier), so be sure your CPU can handle it. This feature works best with relatively low resolutions (eg., 640×480) rather than higher ones (eg., 1280×1024).
  6. Fixed the GUI scale multiplier rounding errors. This bug stretched the HUD and menu visuals differently based on the resolution. Now the HUD and menus are in equal ratio to vanilla doom.
  7. Fixed a turnspeeds bug: it should finally work as intended.
  8. Added support for the BFG edition IWAD.
  9. Rewrote the DirectInput mouse code and made the whole input use DirectInput 8. This fixes the bug that applied windows acceleration and sensitivity to the mouse.
  10. ZDaemon isn't restricted to max 4 mouse buttons any more. You can now use as many mouse buttons as DirectInput 8 supports.
  11. The server rearranges the packet sending order by ping in the interests of fairness.
  12. Fixed own weapon switching when recording a demo and instaswitch is on.
  13. Updated the demo tool to handle LAN and Bot players.
  14. Added sitrep to the display options; also added vote yes/no and turn180 to the customize controls menu.
  15. Added a vpos_event2 CVAR to fine tune the vert. position of the blinking DDOM msg (and other game event messages in the future).
  16. When opening a ZDD demo via the launcher, the launcher checks for the presence of the WADs specified in the demo and prompts to fetch any missing ones.
  17. The ChangeCamera and SetPlayerProperty ACS line specials should not apply to spectators.
  18. New client CVAR “demo_prioritizeplayers” whereby the demo view auto-switches to a player's view when the view is on a spectator (or freeview) and the first player spawns in the map. Defaults to “true”.
  19. New demo compression method: it results in filesizes about 25% smaller than those from the previous compression method. The demo tool will automatically convert any demos to the new method.
  20. New support for widescreen monitors/resolutions. You can select if you want to preserve the true image aspect ratio or you prefer to stretch it. You can also select the desired amount of pillar- boxing in both cases.
  21. Implemented Quick Chat Block menu (similar to Quick Voice Mute). You can bind a key to it in the customize controls menu or execute chat_quickblock in the console.

ZDaemon 1.09 release (2012-09-01)

ZDaemon 1.09b28 release (2012-08-31)

  1. ACS fixes and features:
    1. Fixed using takeinventory to remove the players last weapon.
    2. New inventory functions: CheckActorInventory, ClearActorInventory, TakeActorInventory, GiveActorInventory.
    3. Setting an actor's health to 0 or below with SetActorProperty will now properly kill the actor.
    4. Added support for zdoom switch case statements.
    5. Fixed ACS operators that did not always work with map arrays:
      • += , -= , *= , /=, %=, ++ and –.
    6. Fixed line special arguments in Hexen ACS scripts; They should be truncated to bytes. (only with hexen mapinfo and old ACS format)
    7. Fixed the SpawnProjectile ACS function.
    8. Added an “acsdebug_pcdcount” CVAR that displays how many ACS P-Code instructions were executed when a script stops or delays.
  2. Added support for Risen3D/PrBoom+ MUSINFO lumps.
  3. New DMFLAG (DF2_OS_MISSILECLIP = 0x20000000) and associated CVAR (sv_oldmissileclip) that enables vanilla missile behavior regarding clipping to doom obstacles.
  4. Better (lower / more dynamic) memory consumption on the server with respect to the clients.
  5. Fixed 16-rotation sprites so that the rotation boundaries are where you would expect them to be.
  6. Added a “zdoom_blockeverything” CVAR. When enabled, for lines with the BLOCK_EVERYTHING flag it will block some weapon attacks such as the railgun shots and bfg tracer rays. For such lines it will also affect line sliding (bumping and wallrunning). It also affects some monster attacks such as the arch vile attack, and monster sight checks going through such lines. The CVAR defaults to false.
  7. Implemented demo playlists; they're plain text files with a ZDL extension containing lists of ZDD files (one per line). When you open a ZDL file for playing, the client will play the specified demos one after the other. ZDL files can contain comments starting with ; or #. One can also specify a brief description for each demo; such descriptions are introduced by a tab immediately following the demo filename. Those descriptions will be shown for 5 seconds at the start of each demo. There is currently a restriction that all ZDD files inside the playlist should use the same IWAD and PWAD(s). This will be relaxed in the future.
  8. Implemented two new client CCMDs called “demo_prevdemo” and “demo_nextdemo”; they apply to demo playlists only and they move you to the previous/next demo in the list. They default to the “K” and “L” keys respectively and can be adjusted from the menu.
  9. Added two new client CVARs determining the vertical position of the demo descriptions, as well as that of the general messages sent by the server. Their names are “vpos_demo_descr” and “vpos_msg” respectively. They're floating point numbers ranging from 0 up to 1, where 0 is the top of the screen and 1 the bottom (right above the HUD). Default values are 0.8 and 0.4 respectively.
  10. When a demo ends or is stopped, there is now a prompt to replay it from the start.
  11. Added a CVAR called “demo_autoplaylist”. When the CVAR is on and the recorded demos get auto-split, the client will automatically generate a ZDL file listing the demos. In this way, one can play all of them in sequence with no manual labor.
  12. Added support for return values in ACS Line specials.
  13. Implemented 2 new action specials: ACS_ExecuteWithResult and ACS_LockedExecuteDoor.
  14. Implemented the following ACS functions: PlayerClass, GetPlayerInfo, GetScreenWidth, GetScreenHeight, GetLineRowOffset, SetResultValue, Log, ChangeSky, ReplaceTextures, SpawnSpotFacing, SetActorPitch and SetActorAngle.
  15. Implemented support for printing map/world/global arrays in ACS.
  16. Improved the Print and PrintBold ACS functions to use any specified font.
  17. Improved the HudMessage/HudMessageBold functions to properly handle any specified font, added the log option, added the fade in/out type and made them work properly in online mode.
  18. Changes in gravity/air control via ACS are properly replicated in online mode.
  19. Implemented a “King of the Hill” (KOTH) mode which is similar to Double Domination, but uses one rather than two domination points, leading to simpler gameplay and mapping considerations. Team and individual points are awarded based on the DDOM rules. Kudos to Cybershark for demonstrating the viability/desirability of the mode with his fine prototype:
    The thing number for the KOTH domination point is 5137.
  20. Changed domination points to be subject to gravity, and made setting the thing's first argument to 1 enable the NOGRAVITY flag in the thing.
  21. Monsters that were attacked by a player with the NOTARGET cheat did not chase after the player. Fixed.
  22. The server should send found items and secrets to connecting players.
  23. Implemented “damage dealt” for coop & survival; the game keeps track of the damage one inflicts on monsters (not other players, barrels, bots, etc); this solves the “apple-to-oranges-comparison” problem of counting kills of different monsters (eg an imp kill is not the same as a cyberdemon kill). The damage becomes the main ranking criterion in the scoreboard.
  24. The DM scoreboard can now show suicides and other players' exp.
  25. The coop, survival and DM scoreboards are now customizable regarding which values one wants to show and in which order.
  26. Fixed default airsupply value for maps without a MAPINFO definition.
  27. Implemented the following ACS functions: CheckActorClass, CheckSight, CheckActorProperty, GetChar, GetActorVelX, GetActorVelY, GetActorVelZ, SetActorVelocity, GetAirSupply, SetAirSupply, SpawnForced, SpawnSpotForced, SpawnSpotFacingForced. CheckActorProperty supports the same properties as the functions GetActorProperty and SetActorProperty. CheckSight supports the CSF_NOFAKEFLOORS flag.
  28. Implemented support for printing hexadecimal values in ACS.
  29. Quadrupled the ACS P-Code runaway limit to 2 million instructions.
  30. Added support for checking if a player is carrying a flag with the ACS CheckInventory functions. (ie. CheckInventory(“RedFlag”)).
  31. Added MAPINFO keywords: minotaurspecial, dsparilspecial, ironlichspecial, and specialaction_killmonsters.
  32. Implemented support for using 'lookup' with MAPINFO mapnames.
  33. Mixed Doom, Heretic and Hexen keylists, all the keys can now co- exist in any of the games. Note that lock numbers are specific to the game being played. ACS inventory functions can however be used to check for the keys of the other games.
  34. Developed and added a brand new heuristic to fix slime trails without rebuilding the BSP tree. This seems to be very effective and fixes almost all of the occuring slime trails, including doom.wad's classical e1m1 slime trail.
  35. When you spectate on someone who disconnects or becomes a spectator, the client automatically switches view to another, randomly selected player. If no suitable candidate exists, then it switches to your own view.
  36. Implemented two new ZDaemon ACS functions: GetTeamScore(team) and SetTeamScore(team, value). The constants TEAM_BLUE, TEAM_RED, TEAM_GREEN and TEAM_WHITE can be used with the functions. Scripts using the functions need to include “zdaemon.acs” with them, which is an ACS definition file for ZDaemon scripts. It can be found at:
  37. Fixed giving/taking armor, health, backpacks and powerups with ACS in c/s mode (Powerups can only be given).
  38. Added a new dehacked A_FireCustomRailgun codepointer. It uses the frames “Args1” and “Args2” fields for the Damage and offset of the railgun shot.
  39. When spying other players, camera views set by the ChangeCamera line special were lost. Changed so that it does not only remember your camera view, but also that of every other player too.
  40. Fixed things spawned with the A_Spawn codepointer, they should not respawn.
  41. Changed the amount of ammo given by ACS spawned items; They now give full ammo like map placed items. A new “sv_full_acsitem” CVAR can be toggled to adjust this behaviour.
  42. Implemented the GetArmorType(str armortype, int player) ACS function.
  43. New snd_privchatvolume CVAR that controls the audio volume of private chat.
  44. New snd_chat, snd_teamchat, snd_privchat CVARs that affect the sound played on reception of different types of chat messages. The sounds default to those of the IWAD, but one can select the doom 1 chat sound or one of several zdaemon-specific sounds residing in zdaemon.wad. These CVARs supercede cl_prefertink introduced in b27.
  45. Sync forcewater server cvar with the clients.
  46. Fixed a problem that caused ghost items in TLSXCTF1.wad map07.
  47. Fixed level timer position on intermission.
  48. Fixed BFG spray damage explosions on actors getting spawned twice.
  49. Made the server substitute EndSequences in MAPINFOs with the next episode's first map or with the games start map.
  50. Show a message when others find secrets.
  51. Toggling fast monsters DMFLAG on/off on-the-fly won't need a manual map restart to take full effect.
  52. Fixed a crash with empty decalgroups.
  53. Show total demo time on demo end screen.
  54. If an old demo is replayed, the time from the previous play is used for the progress bar.
  55. Fixed the bot trash talk in SP mode.
  56. Toned down the redscreen effect when the 'Berserk on Spawn' DMFLAG is enabled.
  57. Fixed the counting of own ammo while shooting.
  58. Fixed rare desync when spawning missiles near a ledge.
  59. Stop sound sequences when skipping on demos.
  60. The demo tool will now use (and preserve) the timestamp of ZDO files.
  61. Made the importing of old demos easier, by pre-selecting doom2.wad as the iwad and parsing the zdo filename for pwads.
  62. Implemented a “free roaming view” while demo playing. It's controlled via the “demo_freeview” CVAR which defaults to true. When enabled, it adds a new “free roaming” POV and also blocks the recording player's POV if the recorder was spectating. When disabled, the free roaming POV disappears and if the recorder was spectating, you will see again his (non-roaming) POV.
  63. Extended the slimetrail fix to remove all limitations with the poly- objects. Removed polyobject limitations are:
    • They had to be convex objects.
    • They had to stay on the subsector they were spawned in.
    • Only one polyobject was allowed per subsector.
  64. Fixed a crash with hudmessages in SP mode. It could happen if the activator of the script was not a player.
  65. Improved the polyobject handling in the renderer.
  66. Fixed dehacked frame pointer definitions. Dehsupp ActionLists are now ignored, and an internal list is used instead. Adjusted the code so that the internal order of the codepointers no longer matters. This fixes the issue with dehacked codepointers using the action list.
  67. Fixed a bug on the client where inventory keys were not cleared on map changes without intermission. sv_keepkeys had to be on and the game mode had to be cooperative for it to happen.
  68. New “-demo_quit_atend” client command line switch that instructs the client to exit automatically at the end of demos.
  69. Fix a client crash in e.g. dwango11 map 28 due to 0-length lines.
  70. Block chat keys during demo view.
  71. Fix dampening not working right while recording voice.
  72. Fixed problem where testing for an empty spawn spot resulted in making live players non-solid.
  73. Fixed particles being visible through solid walls in some cases.
  74. Implemented a new DeHacked thing property for items: “Respawn time”, it takes a tic value, which if bigger than zero, overrides the respawn delay for that item.
  75. Implemented three new Dehacked global properties (Misc section):
    • Vampire Max Health: specifies the max. health reachable via vampire. Defaults to 200.
    • Vampire Player Factor: specifies the vampire scale factor applied to damages on humans/bots. It's a percentage value defaulting to 50 (%).
    • Vampire Monster Factor: specifies the vampire scale factor applied to damages on monsters. It's a percentage value defaulting to 25 (%).
  76. Implemented a “Join Password” for servers; this enables anyone to connect to a server, but he'll have to supply a password to join (play). The password is specified by the “join_password” CVAR on both the server and client sides. The launcher can optionally prompt for (and remember) such passwords when one connects to the server.
  77. Enabled the PROP_FROZEN property on the client.
  78. Enabled the SetPlayerProperty line special to work properly online. It supports the following properties: PROP_FLY, PROP_FROZEN, PROP_NOTARGET, PROP_INSTANTWEAPONSWITCH.
  79. Fixed a crash with redefined decals (cc3up1.wad)
  80. Made DDOM/KOTH modes work “completely” in SP.
  81. Fixed the total item count not increasing when items respawn.
  82. A script's font could crash the game when saving. Fixed.
  83. The Spawn Mega Items (sv_nosuper) dmflag has been extended to control whether the EnchantedShield, Invisibility, TomeOfPower, SuperHealth, Fly and Invulnerability items will spawn in Heretic.
  84. Changed PIT_FloorDrop to fix an issue in CommunityChest4 Map12 (cc4.wad).
  85. Removed the heapsize CVAR on the server. Use the -heapsize command line parameter instead.
  86. Fixed crashes and visual glitches in Cybercrime 3 when particles were visible in the skybox.
  87. Added a new “con_scaleacsprint2” cvar which scales the print/ printbold ACS messages in the same way that con_scaletext scales all messages. It can be found in the messages menu under display options. The CVAR defaults to false.
  88. Added two new fonts to be used with ACS Print/PrintBold statements. They can be adjusted from the Options/Display Options/Fonts submenu.
  89. Netcode improvements to reduce problems with missing/duplicate/ghost items and monsters.

ZDaemon 1.09b27 release (2012-05-10)

  1. Fixed a “berserk on spawn” problem when viewing older demos.
  2. Fixed new connecting clients not being updated about music changes that happened already.
  3. Fixed Enter/Respawn scripts being executed at wrong times in non-coop modes.
  4. New client CVAR “cl_showpovnames”. If the CVAR is false, the client does not display the player name while spectating or when spying other players.
  5. Fixed missiles spawned with the A_Spawn codepointer in online mode.
  6. Added support for MBF-style codepointer A_PlaySound. It uses the frames “Unknown 1” field as the dehacked sound number to play, and the “Unknown 2” field as either 0 for normal attenuation, or 1 for no attenuation.
  7. Made it possible to turn any projectile into a seeker missile with the MF2_SEEKERMISSILE flag. (The projectile needs to call A_Tracer to actually home in the target).
  8. Added support for playing the level's default music by using “*” as the track name with the ACS music functions or the changemus console command.
  9. Fixed monster rails not being visible sometimes.
  10. Players using the voice chat are now visible on the scoreboard.
  11. Fixed the CTF flag animation.
  12. Fixed a rare case where a map would exit even when 'no exit' was set.
  13. Fixed the sequencing after map30 of doom2.
  14. Improved the sound dampening scale during voice chat. It now ranges from 1 to 11. 1 = no dampening, 2 = volume will be 90% of normal, 3 = 80% of normal, … 11 = total muting.
  15. Removed the i_remapkeypad CVAR; the numlock state will toggle the KP remapping: when numlock is enabled the KP keys will be bindable.
  16. Spectator teleporting should not clear one-time lines.
  17. Monsters should never try to chase spectators.
  18. Monsters should not attack mapspots.
  19. Fixed various problems (and crashes) related to the taking/giving of weapons from ACS.
  20. Fixed handling of no-decals animations in ANIMATED lumps.
  21. Added support for PATCHINF lumps in wads; they are plain text lumps which allow modifying maps by removing, adding or changing things. PATCHINF lumps are additive, ie. multiple such lumps can be loaded from all wads. You will find more info in:
  22. Extended (and more convenient) syntax for the “addtempban” server command. It can now take a player id (indicated by a leading #) or a player nickname (indicated by a leading $) instead of the IP address. It can be for example:
    • addtempban #2 some_reason
    • addtempban $nickname some_reason
  23. Do not reset chatmode on map start.
  24. Introduced a new client CVAR cl_prefertink. If true, then the DSTINK chat sound from Doom is used if possible. Default: false
  25. Added new voice_quickmute CCMD. When called it shows a numbered list of all players that were talking in the last 60 seconds. If one of the shown numbers is pressed the player is added to your block list or removed from your allow list. Any other key closes the menu. The CCMD is bound to 'M' by default.
  26. Implemented CCMD messagemode3 for private chat. messagemode3 is bound to 'G' by default. When messagemode3 is called you are prompted for a target name. You can either type a name or use the up and down arrows to scroll through all player names. The last used target name will be reused next time. After the target name is confirmed you are presented a chat prompt to write your message as usual.
  27. Fix IDBEHOLD cheat code message in SP.
  28. Fix pickup message for “big” mace ammo.
  29. Unlatch gametype cvar on client for SP mode so it can be changed in the menu. A manual map restart is still needed for the new gametype to take effect though.
  30. Don't disable idmypos on map change.
  31. Fixed a problem where sv_trace would change when a mapinfo lump was present.
  32. Added support for hexen style thing death special activation in maps. It can be enabled in a MAPINFO map section with the keyword “activateowndeathspecials” or disabled with the keyword “killeractivatesdeathspecials”. It defaults to off in doom and heretic.
  33. Fixed Enter/Respawn scripts being executed at wrong times in coop modes.
  34. Implemented client CVAR voice_overdrive2 that controls the sound dampening when the client is recording voice. For details check the voice doc at:
  35. Improved netcode: it should result in fewer (or no) missing items on map changes/resets.
  36. Implemented the inventory HUD for Doom.
  37. Fixed selecting inventory items in online mode; when scrolling through items and selecting one, the item was used right away, instead of first being chosen as the current selected item.
  38. Fixed rendering the alpha of fake floors in sectors with stacked sectors.
  39. Better handling of out-of-order packets on connection/map load/map reset. It should stop the problem of flags sometimes showing as keycards.
  40. New “-novoice” command line parameter that blocks voice chat completely; it might be needed under Wine.

ZDaemon 1.09b26 release (2012-03-15)

  1. Implementation of 2 new CVARs; “cv_localtime” and “cv_gmtime”. They're read-only and return the number of seconds since midnight in local time and GMT time respectively.
  2. Sitrep now works according to the “viewed” player instead of the “real” player.
  3. The voice volume now affects the voice_chat CVAR as well, so people don't have to remember the CVAR.
  4. Fixed a problem in the prediction code that caused some player collision anomalies.
  5. Fixed the auto join/fire after mapstart/respawn problem.
  6. New client CVAR “cl_ctfpickupflash”. It controls the intensity of the yellow flash a player sees when picking up a flag. It accepts an integer value ranging from 0 (no flash) to 4. The default value for the CVAR is 3.
  7. Fixed a spurious turbo detection right upon connection to a server.
  8. Four new client CVARs determining the vertical position of the game event, spree, multikill and overtime messages. Their names are vpos_event, vpos_spree, vpos_multi and vpos_overtime. They're floating point numbers ranging from 0 up to 1, where 0 is the top of the screen and 1 the bottom (right above the HUD). Default values are 0.2, 0.28, 0.36 and 0.44 respectively.
  9. Fixed a voice chat “stuttering” problem.
  10. Voice enabled servers will now echo the voice back to a client when he's alone in the server; this is useful for checking/fine tuning the voice chat parameters.
  11. Fixed a relatively rare, device-dependent crash related to voice chat recording.
  12. Improved the handling of the “no camera” problem on the client.
  13. Improved the handling of out-of-order net packets on the client.

ZDaemon 1.09b25 release (2012-02-03)

  1. Don't show health/armor/location in sitrep for spectators.
  2. Swap the positions of the multikill and overtime messages to avoid hiding the crosshair in mid-game.
  3. Fixed a problem with markers in the automap.
  4. Fixed a semi-random client crash in maps with acs scripts.
  5. Fixed a crash when the client was started with -nosound.
  6. Fixed a problem with the scores screen in survival.
  7. Fixed line flags impassable+block_everything resulting in railings.
  8. Fixed a bug where the morphed state in Heretic would carry to the next map when the map ended while some player was morphed.
  9. More ACS features:
    • Information functions: ThingCountName, ThingCountNameSector, ThingCountSector, GetSectorFloorZ, GetSectorCeilingZ, GetSectorLightLevel, GetLevelInfo, GetActorAngle, GetActorFloorZ, GetActorCeilingZ, GetActorPitch, CheckActorCeilingTexture, CheckActorFloorTexture, GetActorLightLevel, PlayerInGame, PlayerIsBot, CheckPlayerCamera.
    • Other functions: SpawnProjectile, Thing_Projectile2, SetActorPosition.
    • Added support for PRINTNAME_LEVELNAME, PRINTNAME_LEVEL, PRINTNAME_SKILL in print/printbold.
    • New ACS operators: ~, &=, ^=, |=, «= and »=.
  10. Implementation of in-game voice chat. It's intended for team modes, as well as coop/survival. You need to define a “voice” key that you need to keep pressed while talking. The server must also have voice enabled in the first place though: you won't be able to talk otherwise. There are many options/commands pertaining to voice chat. You will find more info at:

ZDaemon 1.09b24 release (2012-01-27)

  1. Game loading doesn't mix well with start/end of game transitions. Fixed.
  2. When someone canceled a game load he'd get into a mixed player/ spectator state. Fixed.
  3. ACS Fixes and Improvements:
    • Changes to ACS arrays always affected the first declared array, rather than the one that was being changed. Fixed.
    • Recursive ACS function calls were broken. Fixed.
    • Fixed some cases where garbage values were being written in map variables.
    • Implemented support for ACS libraries.
  4. Extended the OS wallrunning dmflag to restore doom2.exe thingrunning when enabled.
  5. Restore doom2.exe like item dropping for doom monsters.
  6. Fixed player not dropping weapon if he respawned too fast and drop weapon dmflag was enabled.
  7. Introduced a new DMFLAG (DF2_OS_DROPOFF = 0x00002000) and an associated CVAR (sv_olddropoff). When this flag is on, actors cannot be pushed from ledges. When the flag is off then the behavior is similar to BOOM's. This option is useful for maps that need vanilla behavior like avj.wad where monsters should not drop from pillars.
  8. Fixed melee range calculations for doom and heretic monsters.
  9. New font called “Virtue”: comes in 8 font sizes and can be used anywhere.
  10. New “Major Game Event” font option that lets you specify the font used for major game events (eg., Red flag taken, Blue Team Dominating, Sprees, Multikills) independently of the normal Large font.
  11. New client CVAR “secretmessage”. It can take the following values:
    • 0: Message and sound effect
    • 1: Message only
    • 2: Sound effect only
    • 3: Neither message nor sound effect
  12. Voodoo dolls were not affected by puller/pusher things. Fixed.
  13. Implemented ACS Sound & Music functions in online mode.
  14. Fixed return values of ACS Spawn and SpawnSpot functions.
  15. Added a “compat_shorttex” CVAR that enables the vanilla shortest texture finding logic. This affects how much some floors/ceilings move in maps that require the old behavior to be on or off. The CVAR defaults to true.
  16. ENTER scripts in ACS were being executed too early. Fixed.
  17. More ACS fixes and improvements:
    • The increment and decrement operators always affected the first element of an array instead of the one that was being changed. Fixed.
    • Implemented DISCONNECT script support. These scripts are executed when a player either disconnects while having spawned, or when a player turns into a spectator. The script is executed by the world, and by the time it runs, the player is already out of the game so nothing can be done to the player at that point. The script takes one argument, which is the number of the player who left.
    • Fixed a divide by 0 in the ACS random function when the maximum was one less than the minimum. Now you can specify the max and min as either parameter. (so now the maximum cannot be less than the minimum).
    • Implemented world and global array support for ACS.
    • Added the PlayerNumber() ACS function for finding out which player is executing a script. For an actual player it returns the number of the player and for anything else -1.
    • Added the ActivatorTID() ACS function to retrieve the TID of the actor that activated a script.
    • Added the strlen ACS function.
    • Added the getcvar ACS function. It returns the value of a cvar as an int, so scripts can alter their behavior based on cvars.
    • Implemented support for LOADACS libraries.
  18. Added support for loading multiple DEHACKED lumps. This allows combining multiple dehacked mods, as long as the dehacked in them is not in conflict.
  19. New crosshairsize CVAR that modifies the crosshair size. Its a scaling factor applies to the crosshair. Defaults to 1.0 and can range from 0.5 (ie., half the normal size) up to 4 (4 times the normal size).
  20. The cl_showpressuse CVAR is back; also 2 new boolean CVARS: cl_showhud (hides/shows the HUD) and cl_showpaused (hides/shows the PAUSED message in SP mode).
  21. New CVARs that control the size of the sniper scope. The “scope_scale” CVAR is a boolean indicating whether the scope will scale according to the video mode or it will remain constant in terms of pixels. The “scope_size” CVAR is an overall scaling factor controlling the final size of the scope. It can range from 0.5 (ie., half the normal size) up to 3 (3 times the normal size).
  22. Some fancy additions to the sniper scope: it can display the current zoom factor, as well as the range (distance) to whatever you're currently pointing. The zoom display is controled from the scope_zoom boolean CVAR. The ranging is controled by the scope_range integer CVAR. 0 → “None”, 1 → “Map Units”, 2 → “Meters”, 3 → “Yards”, 4 → “Feet”. Furthermore, when you're pointing to something “shootable”, the distance is displayed in red rather than gray. This is enabled only when the “target names” dmflag is on.
  23. Major speed improvement in the presence of many monsters in online mode. It should be equal in speed to SP mode.
  24. Fixed undocumented behavior of DirectDraw that Microsoft introduced on Windows vista and 7. It was causing crashes if the client was run on windowed mode and some application went to the true fullscreen mode.
  25. Implemented text (and stacked) language lumps: similar design to zdoom 2.x; it facilitates the overriding of most messages from wads.
  26. Fixed missing movebob/stillbob when spectating/viewing demos.
  27. New DMFLAG (DF2_BERSERK_SPAWN = 0x00004000) that spawns players with a berserk kit in doom or the gauntlets in heretic.There is also an associated cvar called “sv_berserkspawn”.
  28. New server “sv_joinlimit” CVAR that applies to survival and blocks spectator joins after the specified number of minutes. The limit applies from the time someone joins the map: not the time the map is loaded on the server. The variable can range from zero (ie., disabled) up to 1000 (16+ hours). Default value is zero.
  29. Fixed missing invulnerability and light amp effect when spectating.
  30. Fixed player collision jitter.
  31. Enable DDOM teleport-reset even when there are no teamstarts.
  32. Fixed an overtime-respawn-delay bug in CTF and DDOM.
  33. Avoid repeated console messages within brief periods.
  34. Add an optional 5-second delay to all deaths in survival. Pressing use within 5 seconds will make you spawn before you are forced to spawn.
  35. Fixed a problem with survival giving an extra life sometimes.
  36. Fixed a problem in CTF when the game ended in a tie with someone carrying a flag and that person disconnecting (before spawning) on the next round.
  37. Fixed a problem in team modes when a player would switch to a non- playing team and would remain a spectator till the next round.
  38. Sudden death would not trigger in cases of suicide on overtime. Fixed.
  39. Fixed a vertical noclip problem among players.
  40. Fixed some cases where BLOCK_EVERYTHING lines would not block.
  41. Implemented the Line_SetBlocking linespecial from zdoom.
  42. Implemented ACS support for the following properties of Get/SetActorProperty:
    APROP_Health, APROP_SpawnHealth, APROP_Speed, APROP_Damage, APROP_DamageFactor, APROP_Alpha, APROP_RenderStyle, APROP_Mass, APROP_Invulnerable, APROP_Ambush, APROP_NoTarget, APROP_Dormant, APROP_WaterLevel, APROP_SeeSound, APROP_AttackSound, APROP_PainSound, APROP_DeathSound and APROP_ActiveSound.
  43. Fixed projectiles spawned by Thing_ProjectileGravity going out of sync in online mode.
  44. Fixed mouse precision loss when aiming while zoomed in.
  45. Fixed railgun shooting sound coming from wrong direction sometimes.
  46. Damage/HealThing linespecial would not update the player health in c/s. Fixed.
  47. Implemented proper handling of negative projectile/detonate damage. The health of players and monsters is capped at spawn health. Works for all modes.
  48. Extension of the zd_overridecolors CVAR. It can take the values:
    0=Never, 1=Always, 2=Only in DM, 3=Only in team modes, 4=Only in non-team modes.

ZDaemon 1.09b23 release (2011-07-30)

  1. Blocked the silent BFG dmflag from Heretic/Hexen.
  2. Implemented random sound variations for Heretic/Hexen.
  3. Linespecials that were implemented/extended and will work online:
    • new:
      • LS_Floor_MoveToValue
      • LS_Ceiling_MoveToValue
      • LS_Thing_ChangeTID
      • LS_Sector_SetFriction
      • LS_NoiseAlert
      • LS_ForceField
      • LS_ClearForceField
      • LS_Plat_UpNearestWaitDownStay
      • LS_Teleport_ZombieChanger
      • LS_Thing_Damage
      • LS_Thing_ProjectileAimed
      • LS_Thing_ProjectileIntercept
      • LS_Thing_Raise
      • LS_Sector_SetFloorScale2
      • LS_Sector_SetCeilingScale2
    • added arg0==0 check:
      • LS_Thing_SetSpecial
      • LS_Thing_Activate
      • LS_Thing_Deactivate
      • LS_Thing_Remove
      • LS_Thing_Spawn
      • LS_Thing_SpawnNoFog
      • LS_Thing_SpawnFacing
      • LS_Thing_SetTranslation
    • added floor sound:
      • Plat_DownWaitUpStayLip (tag, speed, delay, lip, floor-sound?)
    • added type arg:
      • LS_TranslucentLine
  4. Fixed a bug that prevented game saves.
  5. The update dialog in ZLauncher can now produce a list of affected files.
  6. Fixed a recently introduced bug that would not let rockets pass through the window in d5m1.
  7. Fixed projectiles thrusted by ThingThrust and ThingThrustZ linespecials.
  8. Fixed monster reflected projectiles.

ZDaemon 1.09b22 release (2011-07-28)

  1. New netcode for ACS GiveInventory and TakeInventory.
  2. Fixed the ACS Spawn and SpawnSpot functions.
  3. Made the sitrep display a bit more flexible: it's now an integer rather than a boolean CVAR and it can take the following values:
    • 0 → no sitrep
    • 1 → show health/armor only
    • 2 → show sectinfo only
    • 3 → show health/armor/sectinfo
  4. New rule for individual DDOM scoring: +1 point when someone kills an opponent near a domination point and the killer's team scores within 2 seconds of the kill.
  5. Clients are now notified of all CVAR changes on the server during a game.
  6. Display health/armor in the PiP next to the player's name.
  7. Joins in survival are now blocked when the last player dies and before the map restarts.
  8. New server CVAR “survival_timed_spec_reset”. It's a boolean. When it's “true” (the default value), the inventory of spectators will be reset at 180 seconds after the round starts (the start of the round is taken as when the first player joins: not when the map changes on the server). The idea is to prevent people from remaining spectators for the purpose of retaining weapon/item stock from previous rounds. The CVAR is forced to true for all public, non- passworded servers.
  9. New server CVAR “coop_telefrags”. It's a boolean. It controls whether player-to-player telefragging is enabled in coop/survival modes. The CVAR is forced to false for all public, non-passworded servers.
  10. Chaingun of other people sounded a bit too fast: fixed.
  11. Heretic ambient sounds were mixed up: thx to Krawa for the report and debugging work.
  12. Fixed 'ghost' lost souls on client.
  13. Fixed drop into ledge when firing railgun at floor.
  14. When someone dies in overtime in CTF and DDOM modes, he will be forced to remain dead for a period directly proportional to the time already played in overtime (2 seconds delay per minute played). This is intended to serve as a tie-breaker.
  15. New client CVAR “cl_turndeathcam”. If disabled then the view will NOT follow your killer. The default value for the CVAR is true.
  16. New client CVAR “r_zdoomtrans” to toggle the transparency from the following doom actors: TeleportFog, ArachnotronPlasma, ArchvileFire, SpawnFire, BaronBall, CacodemonBall, DoomImpBall, PlasmaBall, BFGBall, BFGExtra, FatShot, RevenantTracer, BulletPuff, BlurSphere, LostSoul, ARocket (explosion). The default value for the CVAR is true.
  17. The client CVAR “r_eyecandy” is now a pure 'meta' CVAR that overrides different CVARs to restore a classic doom2.exe look. When disabled it is the same as setting cl_maxdecals=0, cl_rockettrails=0, r_zdoomtrans=0, cl_chasedeath=0, cl_bloodtype=0, cl_pufftype=0. The default value for the CVAR is true.
  18. When a round starts in double domination (after a team score), all players are teleported to their team spawns. This is done to avoid camping on the dom. points.
  19. Security and Aiming cameras should now work online.

ZDaemon 1.09b21 public release (2011-07-16)

  1. Fixed several memory leaks, a resource leak and an out of bounds bug.
  2. Fixed a crash when a monster causes the level to end in coop.
  3. Fixed a lighting bug on certain sloped surfaces.
  4. Enabled the rcon command to allow empty double quotes; useful for removing passwords.
  5. Added sector specials sDamage_Hellslime and sDamageSuperHellslime (delayed damage sector).
  6. Added the following new sector specials:
    • Sector_Outside (87)
    • Light_Strobe_Hurt (104)
    • Damage_InstantDeath (115)
    • Sector_Heal (196)
  7. Made bots aware of new damaging floors.
  8. Fixed multis when a player dies.
  9. Relaxed limit on subsectors (Critical map error: Bad firstline number)
  10. Added new client commands “spynext2”, “spyprev2”, “spyown”. The first 2 differ from spynext/spyprev in that they avoid going through your own POV. The 3rd command restores the view to your own POV quickly.
  11. Fixed a bug whereby movement in the vertical direction was blocked if 2 players managed to overlap.
  12. New DMFLAG (DF_TRACE = 0x01000000) and associated cvar (sv_trace) to enable hitscan weapons to cross self referential sectors. Also enabled the “compat_trace” keyword in mapinfo to override that DMFLAG. The mapinfo syntax is:
    • compat_trace = N
      where N can be 0 or 1.
  13. Fixed a client crash on exit from e2m9 of doom.wad
  14. Improved the netcode to propagate changes in several server variables on start of each round.
  15. Taking advantage of the above improvement, the client can finally split demos automatically on each map start.
  16. Added more server query speed settings to the launcher resulting in faster server refreshes.
  17. Made the client automatically hide the “press space to join” message when taking screenshots. This removes the need for the “cl_showpressuse” cvar.
  18. Improved the Heretic frag/teamscore display when using a full screen HUD: it's now very similar to the DooM one.
  19. Fixed the orientation of items spawned in c/s mode when their angle was non-zero.
  20. Slightly modified the map reset functionality; when a map is reset by voting, the players at the time of the voting automatically spawn on map reset (so it's not possible for them to lose their place in the game from the map reset). Also added a “map_reset” server command to do the same from the server console.
  21. Extended the scoreboard to display health/armor up to 999/999.
  22. The monster rail attack now shows in online mode.
  23. Fixed a problem with the Heretic artifacts not making the activation sound in c/s mode.
  24. Fixed a bug where some doors would remain partially open in online mode. It was a precision loss in the netcode.
  25. Removed a precision loss problem in the player movement in c/s mode. It was responsible for a variety of issues including the midget bug.
  26. Enabled “irc:”, “zds:” and “#channel” hyperlinks inside ZRC.
  27. New netcode that sends/shows the player pitch.
  28. New netcode that sends/shows the weapon switching.
  29. New netcode handling sector lighting effects.
  30. New netcode handling floor and ceiling texture changes.
  31. The client sends the full pitch angle rather than the delta to avoid desyncs due to packet loss; we should never see again the RL fire rockets to the floor (and killing us) when we're looking straight ahead.
  32. Added an “item_respawn_time” CVAR that determines in seconds the respawning frequency of items. The DF_QUAD_RESPAWN_TIME dmflag and sv_quadrespawntime CVAR are not needed any more, so they're dropped.
  33. New netcode to differentiate among the various grunts (grunts/lands/ usefails).
  34. Fixed some accuracy problems with all missiles in online mode. It was evident in the cubes fired in the Icon of Sin map.
  35. Fixed coordinate truncation problem during teleporting and also improved silent teleports.
  36. New connection handshake that avoid DOS issues and also resolves the “invalid nickname” problem.
  37. New “+zoom” command that zooms the player view. The zooming behavior is like UT rather than Quake: the amount of zooming is determined by how long you keep the zoom button pressed. When you release the button, the view stays at the current zoom level. You can unzoom it by pressing the button a second time. Zooming is enabled via a new dmflag (DF_ALLOW_ZOOM = 0x1000000) or an associated cvar (sv_allowzoom).
  38. Target names should not show on players having an invisibility powerup.
  39. New DMFLAG (DF_SPEC_TEAM_BLOCK = 0x00800000) that restricts spectators to own teams in team modes. There is also an associated cvar called “sv_specteamblock”.
  40. Fixed precision losses at several netcode messages.
  41. New netcode handling dormant, hidden, deaf objects properly on spawn.
  42. Items taken before someone connected to the server, would appear as non-taken to that client: fixed.
  43. New netcode that sends player powers on connection: fixes the display of players which have activated a special power (eg., invisibility, strength, flying) before another player connects.
  44. The lowest layer of the netcode has been completely rewritten; the packets have been separated into reliable/unreliable classes and reliable (important) packets will be resent by the server in case they're missed by a client (for example object creation/destruction messages). Enables the use of maps with a large number of objects / items in online mode.
  45. New zserv.cfg file with lots of detailed information about all the server options, courtesy of Earthquake.
  46. New decals fading after 30 seconds.
  47. Implementation of “remote sounds” in online mode so the server can instruct the client to play a given sound from the wads. Fixes a variety of bugs in online mode (eg., the sound when you enter the main area of the Icon of Sin map).
  48. Proper implementation of tracer (seeker) missiles in online mode. It should fix the revenant fireballs and various heretic missiles.
  49. Fixed the WolfensteinSS firing sound.
  50. Reduced the number of packets/data sent by the client while spectating or remaining dead.
  51. Implemented the Hexen keys.
  52. Fixed some crashes on special projectiles like the tree leaves on Hexen map01.
  53. Weapons now reset on episode start.
  54. Added missing DMFLAGS to the launcher.
  55. Disabled spectator bobbing when they walk on floor.
  56. New DMFLAG (DF_NEW_THRUST = 0x02000000) and associated cvar (sv_newthrust) that enables ZDoom 2.x style ThrustThing behavior. The main difference is that the thrust angle and momentum is added to the preexisting player speed/angle instead of replacing it. Careful when using this DMFLAG: some maps require the old behavior (eg., zdctfmp2.wad map17).
  57. Added “SR-127” detection to the server. Catches “sideways turbo” hacks.
  58. Added “inappropriate SR-50” detection to the server. Catches “SR-50 with turning” hacks.
  59. Updated the freedm version bundled with the release.
  60. Implemented a “team radar” that shows the position of teammates on a small grid. The radar applies to Coop, Survival, TDM, and CTF modes only. It is controled via the “radar” cvar: 0 = No radar, 1 = Translucent, 2 = Opaque. The size of the graphic defaults to 128 pixels but can be modified via the “radar_size” cvar (valid range: 16-192). The position of the radar is determined by the “radar_x” and “radar_y” cvars. Zero or positive values, indicate the coordinate of the upper left corner of the radar (in pixels). Negative values signify distances from the right or bottom of the screen. For example, the default value of radar_x is -128 while the default value of radar_y is 0. Given that the default value for radar_size is 128, this means that the radar will be shown on the upper-right corner of the screen. The “radar_dot” cvar controls the size of each player dot. It can range from 1 to 6 and defaults to 3. The “radar_scale” cvar controls the map-to-radar scale. It's a floating point number and can range from 0.1 to 10. Defaults to 1. Higher scale values mean smaller distances on sceen and vice versa.
  61. Enabled the use of more fonts for the console, normal, large and centered messages.
  62. New “conbgdinsta” cvar that enables a quick console transition.
  63. New “conbgdshaded” cvar that controls if the console background will be the classic one or a user-definable transparent one. You can control the background color brightness and opacity by the “conbgdbrightness” and “conbgdfade” cvars.
  64. Implemented a new demo format (with ZDD extension) that provides the following benefits over ZDOs:
    • WAD information and checksums are embedded into the demo so it's never a mystery about which wad (and version of the wad) was used to record the demo.
    • Native compression support so you don't need to put demos inside zip files for web distribution.
    • The demo can be opened directly by the client (which will then figure the wads on its own); simplified the direct opening of demos either by the Windows Explorer or even by web browsers (in case the demo is downloaded from the web and opened directly).
    • The demo format supports various embedded tags (for example, game type, recording date, player information, etc). It can be used to simplify the creation and maitainance of large demo repositories.
    • Quite a few of the above tags are filled automatically by the recording client.
  65. Implemented a “demo tool” program that lets you add/edit tags to demo files, automatically saves the demo in compressed format and can be used to convert a ZDO demo to the new (ZDD) format.
  66. Enabled the use of “DVD-like” playback controls while watching demos. You can play/pause, skip forward/backward to “chapter points” (evenly spaced at 20 second intervals) and you can also go forward/backward by a single frame (1/35th of a second) while in paused mode. The chapter spacing is controled by the “demo_chapterspacing” cvar; it defaults to 20 (seconds). The forward/backward skipping is done with the “demo_tonext” and “demo_toprev” commands, which are bound to the “n” and “p” keys by default. You can adjust them from the “customize controls” menu.
  67. Added an optional demo panel that may show either the “demo clock” only or the clock plus the key bindings for the forward/backward operations. The cvar is called “demo_panel”: 0 = no display, 1 = clock only, 2 = full panel. Themed panels for the various games (doom/heretic/hexen) kindly provided by Cybershark.
  68. Added an optional progress bar during the demo playback. It is displayed at the bottom of the screen and can provide useful feedback as the ZDD format contains duration information. The display of the progress bar is controled by the “demo_progressbar” cvar (0 = off, 1 = on). You can also control its height via the “demo_progressheight” cvar; valid range: 1-32; default = 3.
  69. Updated the fmod library.
  70. Added support for the Game_Music_Emu library (gme.dll) which emulates game music in various file formats. For more details check:
  71. Fixed the monsters count when monsters respawn from nightmare, archviles, or scripts.
  72. Fixed a division by zero crash on maps with zero length lines.
  73. Using 'connect' on the console will first disconnect from the current server if possible.
  74. Relaxed segs, sector, linedef limits. dv.wad map05 will load now.
  75. Increased the consolelines buffer.
  76. Fixed the installation script to avoid removing unrelated stuff.
  77. Added friction and noalert support to terrains. Removed lowfriction keyword since it was not working at all. Updated terrain lump in zdaemon.wad to make heretic splashes not alert monsters. Replaced lowfriction with friction (whole patch by worst-vd-plas).
  78. Added vavoom and vertex slopes (by worst-vd-plas).
  79. Fixed heretic sludge damage to 4 (was using doom nukage with 5).
  80. Fixed bridge things not blocking players on elevators.
  81. Made a small fix for survival/maxlives when going from CS to SP mode: maxlives was set to 1, if it was zero.
  82. Updated zlib to 1.2.5
  83. Fixed ACS thingsound to play on client and extended remote sound to allow scaled sound playback!
  84. Fixed syncing issue with once usable switches for new connecting players.
  85. Own death didn't stop double kills: fixed.
  86. Restored client heapsize to 32M to reduce the “out of memory” errors.
  87. Fixed a music restarting problem in online games when the client had lost focus and the “mute when out of focus” option was on.
  88. Added high byte support for Line_SetIdentification.
  89. Changes to DMFLAGS and splashfactor while a map was active, would be reverted at map's end. Fixed.
  90. Fixed the archvile blast that sent players flying too high.
  91. Fixed a HOM/up/down problem when spectating/spying on others.
  92. Changed the bodyqueue to prevent a rare client crash.
  93. The scores screen should not remain up when you die and remain dead through a map change.
  94. Fixed slope things to behave as in ZDoom 2.x
  95. Fixed invisible thing and custom thing bridges
  96. Fixed prediction error from ThrustThings
  97. Fixed transfer height things
  98. Fixed fake floor things
  99. Fixed local scripts for SecThings, for later ACS fixes
  100. Chainsaw and railgun shots should not be sent back to shooter. Railgun will be animated locally now.
  101. Set heretic gauntlets kickback to 0. They should not push!
  102. Disabled torque simulation.
  103. Simple fix for waterzones.
  104. Removed snesapu support from the code.
  105. Extended the netcode to support polyobjects in online mode.
  106. Updates FLAC to version 1.2.1.
  107. Don't allow dehacked to read beyond patchfile.
  108. Allow boom pointers to be handled properly in dehacked.
  109. Precision fixes regarding r_pointToAngle2: huge slopes should be viewable from a distance now,
  110. Allow RAW and ADLIB files to be used for music and played by the OPL synth.
  111. Fixed nextmap of several heretic episodes for a full map rotation.
  112. Palette problems in windows vista/7 should be a thing of the past.
  113. Fixed a client crash happening at the start of Heretic E2M9.
  114. Fixed a vampire mode bug: it would count barrels as monsters.
  115. Implemented a reconnect-flooding control.
  116. Avoid showing the IP of people getting banned/disconnected when there is no nickname available.
  117. Implemented a temporary black hole on the server for people who are banned and keep flooding the server with connection attempts.
  118. The Doom HUD didn't clear properly when a card/skull was removed via ACS: fixed.
  119. Fixed a crash that happened on both client and server when all weapons were removed via ACS.
  120. The auto chaos device use will now play a sound and update the players health and inventory when it is triggered.
  121. The netcode now spawns items over the wire by a unique ID rather than class name. This results in significant savings in bandwidth on map start (when the map contains many monsters/items).
  122. Fixed a client crash when an inactive acs script was terminated.
  123. The fraglimit would not show properly when a server used a cvar override: fixed.
  124. Fixed a problem with mapinfo overrides in conjunction with manual overrides of dmflags and sv_splashfactor.
  125. Fixed a visual glitch in the doom boss cube.
  126. Added high-ASCII characters from the Western European codepage to the Trebuchet (scores) fonts.
  127. New weapon firing netcode: produces full weapon animation, sounds, bullet puffs and proper ammo consumption from the POV of other players too. That includes punching in doom as well as all heretic weapons.
  128. No more separate “deathmatch”, “teamplay”, “ctf” cvars; game modes are now set solely via the gametype CVAR.
  129. Increased hard client limits from 16 to 50.
  130. When someone remained dead at the end of map in coop, he was not able to spawn normally on the next map. Fixed.
  131. Added unlagged calculations to the Fist, Chainsaw, Dragon Claw (normal mode only), Hellstaff (tomed-up mode only), Staff, Elven Wand, Gauntlets and Beak (both modes).
  132. Added proper obituaries for Heretic DM to replace the generic “Player died” message.
  133. Removed several renderer related CVARs which are inappropriate for multiplayer games: r_drawtrans, r_particles, tilt, r_skyboxes, r_fogboundary, r_drawmirrors and r_drawplayersprites.
  134. Fixed a teleporting missile bug where a player/monster blocking the exit of a teleport would prevent the missile from teleporting.
  135. Added more default bots to bots.cfg (suitable since we're increasing maxclients)
  136. Implemented a new version of unlagged that's tick rather than ping based. It's far more accurate and efficient than the previous version.
  137. Don't get out of automap mode if you die and the map is overlaid.
  138. 4 new heretic sounds by Adereth: New connection sound, found a secret, player connection, chat sound.
  139. Fixed some problems with the archvile attacks in client/server mode.
  140. The resurrection of monsters by archviles would not work properly in online mode. Fixed.
  141. The position of items marked as “pushable” or “windthrust” was not properly updated in c/s mode. Fixed.
  142. The -nbots cmd. line parameter on the server would sometimes be ignored if a map ended without all the bots having spawned yet. Fixed.
  143. Implemented the -nbots cmd. line parameter on the client.
  144. New Chicago font: comes in 8 font sizes and can be used anywhere.
  145. Teleporters no longer lag in high-latency games, but appear instant to the client.
  146. Enabled the connect command in client to issue a true disconnect and fixed an server inconsistency with CTF Flag states (reported by [BR]Mega-Dog).
  147. Implemented a new server CVAR called “sleep_on_empty”. It's about having the server sleep when there are no human clients connected. When its value is 0, the level/monsters/bots tick as usual even when no human is around. When its value is 1 and there are no human clients connected, then everything BUT the level timer sleeps (so the maps will obey a timelimit if set). When its value is 2 and there are no human clients connected, then everything, including the timer, is put to sleep. The CVAR defaults to 1.
  148. Made the face background in the HUD reflect your selected color.
  149. Modified the full screen HUD to use the bottom side for the team scores (and keys/cards in coop), to make room for the team radar on the upper right corner.
  150. Items/Monsters spawned via the summon command (in SP mode) should not respawn.
  151. Items/Monsters spawned via ACS on the server should not respawn independently on the client.
  152. Textures and line properties can be changed with acs now.
  153. Implemented 2 new dehacked thing properties: SpawnID #= , where value can be 0-255. Game = , valid names are “Any”, “Doom”, “Heretic”, “Hexen” and “Raven”. SpawnID is used in line specials like Thing_Spawn. Game is used for changing the game an actor belongs to.
  154. Fixed a problem where doom “missing key” messages would show in heretic.
  155. New connected clients will set changed scrollers properly now.
  156. Client will now correctly adjust pusher values on connect.
  157. Fixed a vertical jitter (jackhammer) problem when going down stairs. Significantly improves the movement when running over non-flat floors.
  158. Fixed a problem where the monsters would sometimes not appear in their attacking state (when they were in fact attacking) after getting shot.
  159. Some monster melee sounds were missing: fixed too.
  160. The Burning and Ice death sequences would not display properly in online mode. Fixed.
  161. The 'do not switch if firing' PWO rule gets suspended for one second after spawn.
  162. Implemented new dehacked features:
    • Added heretic armor classes to dehacked misc section. The properties are “Silver Armor Class” and “Enchanted Armor Class”.
    • Made armorclass values fixedpoint, eg. “Green Armor Class = 1.5” will give 150 armorpoints.
    • Mixed Doom and Heretic armorlists, it's now possible to have 4 different armors in doom or heretic.
    • Added 3 thing state types “Burning death frame”, “Ice death frame” and “Crash frame”.
    • Added support for MBF-style codepointer A_Spawn. It uses the frames “Unknown 1” field as the dehacked thing number to spawn, and the “Unknown 2” field as the height relative to the thing to spawn.
  163. Ceiling flat changes with linespecials should work now.
  164. Made parsing of DECALDEF lumps more forgiving in terms of unknown generator actors. When such definitions are encountered, the unknown generators are skipped and the program continues rather than aborting.
  165. Changed default ID for lines to -1 instead of 0. This emulates standard Hexen behavior where Line ID 0 can be used, and it's still different from all the other lines in the map without a ID.
  166. Certain hyperlinks are safe in ZRC, so always enable them. This includes #channel, zds: and http:** links.
  167. Added custom colors for 2 more operator categories in ZRC: half-ops and “above normal” operators.
  168. Implemented automatic altwads on the server: it's controled via the “auto_altwads” CVAR; when that CVAR is non-zero (the default value) and there are no manual altwads in effect, the server checks the maps in the rotation (or all maps if there is no rotation). If all maps come from PWADs and the IWAD is doom2.wad, then the server inserts the standard freedoom (freedoom070.wad) as an alternate IWAD. If all maps come from PWADs and the IWAD is doom.wad, then the server inserts the ultimate version of freedoom (freedoomu070.wad) as an alternate IWAD.
  169. Added missing sounds of archviles, mancubi and revenants.
  170. Several monsters erroneously played their “SeeSound” in c/s mode.
  171. The state of lost souls would not be accurately relayed to the client after they attacked and hit some wall or similar.
  172. Disabled spawning of unknown things in shareware games. Heretic shareware deathmatch would display “thing has no frames” error messages for pickups of the full game.
  173. Updated TERRAIN support to match latest zdoom, fixed terrain based damage.
  174. Fixed a server/client crash when bots are used.
  175. The program would produce an error after the last episode of the shareware IWADs (doom1.wad, heretic1.wad). Fixed.
  176. Added a -show_spawns cmd. line parameter to show the player spawns in SP mode.
  177. Implemented a “Classic Death Behavior” mode; this lowers the player view to the floor and rotates the view towards the killer (human or monster). It's enabled via a server dmflag (DF_OS_DEATH = 0x08000000).
  178. Implemented the proper turning of the marine head in the HUD towards the direction of the attacker (human or monster).
  179. Extended the main menu to include load/save commands.
  180. Fixed the Ironlich fire column in online mode.
  181. Implemented a “Double Domination” (DDOM) mode which is a direct port of the Unreal Tournament mode with the same name. DDOM is a team mode: the map contains two control points (called Domination Points); they look like the letter A or B rotating inside a circle. The objective for each team is to capture and hold both Domination Points at the same time for ten seconds. Dom. Points are captured by running over them, and will remain captured until an opponent runs over them (and captures them for his own team). The color of the domination points indicates their capture status: gold → not captured (neutral), red → captured by the red team, blue → captured by the blue team. If a team succeeds in holding both Points for ten seconds, that team scores a point and the Domination Points are reset. Individual points are awarded by the usual TDM rules (+1 for normal kills, -1 for suicides and teamkills) with 2 additions: fragging an opponent near a Domination Point gives an extra +1, and all players belonging to a team (and actually playing: not spectating) get +3 when the team scores a point. A “last second save” awards +1 as well. Here is a sample video of the mode in action:
    The thing numbers for the domination points are 5135 (A) and 5136 (B).
  182. Fixed the Heretic Beast attack (missing puffs).
  183. Fixed the Heretic tomed up mace behavior.
  184. Efficiency improvements in the client to better handle higher numbers of players.
  185. Fixed hitscan activated lines not always passing the lineside.
  186. Fixed a rare case where players would lose their camera when they entered a NULL state.
  187. Modified the nice weapons dmflag to work in DM/TDM/CTF the same as in Coop mode.
  188. Added stacked sectors from zdoom.
  189. Fixed the Computer area map pickup sound.
  190. The Heretic staff should not hit ghost monsters or players. Fixed.
  191. Fixed the ghost flag not being cleared from the player when the Heretic Shadowsphere weared off.
  192. Separated the Doom and Heretic invisibility effects to be powerup specific instead of depending on the game being played.
  193. Fixed editor placed Gib things not appearing in game.
  194. Fixed generating textures that had columns with no patches.
  195. Quit server and show error message if threads cannot be started.
  196. Added support for more than 4 mouse buttons.
  197. Implemented a built-in railgun as a Doom weapon. It is placed in slot 6 next to the plasma rifle and consumes plasma bullets (4 per shot). It deals 150 units of damage in coop or survival and 100 units in other modes. Its edit ID is 5012. This means that it can be used in any map / mode without having to replace some other weapon (as for example TLSDM does).
  198. Fixed bfg tracer rays not hitting a target in rare cases when the shooter used a teleporter just before the bfg ball hit a wall.
  199. New DMFLAG (DF_INSTAGIB = 0x10000000) and associated CVAR (sv_instagib) that enables instagib mode. This mode applies to doom only: when it's on, all health, armor, powerups, weapons, ammo are removed from maps and everyone spawns equipped with a railgun and infinite ammo. All railgun shots are fatal (single-shot kills). This dmflag is incompatible with the vampire and dropweapons dmflags; they will be unavailable while the instagib dmflag is on.
  200. Implemented spawning of voodoo dolls in coop and survival modes, when the dmflag (DF2_VOODOO_SPAWNS = 0x2000000) is disabled. Otherwise players will instead spawn at the voodoo doll starts. The voodoo dolls are for vanilla and boom-format map support, and may change in the future for better behavior in the c/s setting. Using them in other map formats is not recommended.
  201. Fix from zdoom; Improved positioning of heretic and hexen walltorches: when placed directly on a 1-sided line, they are moved toward the middle of the sector, so the renderer can clip them more reliably.
  202. Fixed the Heretic ChickenPlayer grunt sounds.
  203. Heretic gasbags were getting heavily out of sync in c/s mode. Should be fixed now.
  204. Fixed the respawning of items that moved on the server before someone connected (eg., items that were placed on scrollers, or barrels that had been shot, but not exploded before a player connected).
  205. Fixed the spawnming (and respawning) of the Heretic Mace.
  206. Fixed the syncing of Heretic volcano blasts as well as the obituaries.
  207. Implemented killlimit in SP mode and also updated the scoreboard to show killlimit/timelimit/found secrets in coop mode.
  208. Extended the meaning of the teamscorelimit CVAR for coop/survival modes. When it's positive, it indicates the total number of dead monsters that will signal the end of the round.
  209. Corrected the size of the blood splats in c/s mode to be dependent on the damage dealt.
  210. Implemented an accuracy statistic for the instagib mode: it's defined as “hits” / shots and applies to non-coop modes only. “Hits” are defined as “kills of opponent players”: suicides (environment kills) are completely ignored, while a teamkill decreases the “hits” value by one. Killing of monsters does not increase the “hits” value either. The accuracy statistic appears on the DM scoreboard, but not for any team modes as this is not their primary objective.
  211. New DMFLAG (DF2_OS_BLAST = 0x10000000) and associated CVAR (sv_oldblast) that enables vanilla blast physics. Explosions will move the player only along the X and Y axis.
  212. Fixed floating cacodemon corpses for connecting players.
  213. The server now sends the weapons, ammo, keys, artifacts, armor, etc owned by existing players on connection. Results in more accurate representation by the clients.
  214. Assign slots for all doom and heretic weapons regardless of game mode.
  215. Spectators (ex-players) in survival should not be able to call votes.
  216. Heretic tomed up mace balls now obey teamdamage and sv_teamautoaim.
  217. Preserve color codes on wrapped lines for long acs messages.
  218. Added detection of 0 length and otherwise too small REJECT lumps. This fixes splash damage issues in some maps.
  219. Fixed a sound desync on BFG that could give the shooter a wrong impression regarding the success of silencing the BFG.
  220. Removed the am_overlay CVAR and replaced it with am_style. Possible values are 0 (Standard), 1 (Overlay) and 2 (Both).
  221. Allow team chat on intermission screen.
  222. Assigned proper puffs for each hitscan attack.
  223. Made bloodsplatter actor specific instead of depending on the game being played.
  224. New server CVAR “sv_intermissiontime” that lets you adjust the intermission time from 3 to 300 seconds. This is restricted to private OR passworded servers.
  225. Enabled map, reset and randmap voting even with no maplist.
  226. Various fixes to the Minotaur, DSparil and Ophidian monsters.
  227. New client CVAR “r_eyecandy” that controls most visual effects introduced by ZDoom and can restore the doom2.exe looks. It can be found in Options → Display Options → ZDoom eye candy. Client needs to be restarted to apply all changes. When disabled it over- rides and disables the settings of cl_maxdecals, cl_rockettrails, cl_bloodtype, cl_pufftype and will remove transparency from the following doom actors: TeleportFog, ArachnotronPlasma, ArchvileFire, SpawnFire, BaronBall, CacodemonBall, DoomImpBall, PlasmaBall, BFGBall, BFGExtra, FatShot, RevenantTracer, BulletPuff, BlurSphere, LostSoul. The default value for the CVAR is true.
  228. Extended the standard timer to display in overtime too (using a + to indicate overtime operation).
  229. Implemented a countdown timer on intermission.
  230. New client CVAR called “updfreq”. It allows the client to tune the frequency of player position updates to his or her net connection. It can take the values:
    • 1= updates all positions on every tick:
      best accuracy, highest bandwith
    • 2= updates all positions every 2 ticks:
      medium accuracy, medium bandwidth
    • 3= updates all postions every 3 ticks:
      lower accuracy, lowest bandwidth
      The CVAR defaults to 1 (ie., it requests the most frequent possible updates); older ZDaemon versions had the update frequency hardcoded to 2 (so that's the value you can use if you prefer the older behavior). A value of 3 can be useful for dial-up and other weaker connections.
      There is also a server CVAR called “sv_fineticks” that controls the availability of the most frequent updates from the server side. That CVAR can take one of 4 values:
    • 0 = “Single tick” updates will be denied to all (so everyone will use an update frequency of 2 or 3).
    • 1 = “Single tick” updates will be available to spectators only.
    • 2 = “Single tick” updates will be available to players only.
    • 3 = “Single tick” updates will be available to everyone.
      The reason for such a CVAR is that maybe a server host does not want to enable single tick updates on FFA or CTF servers; they're not as important as on duel servers and they cause more bandwidth consumption. The default value for “sv_fineticks” is 1 (ie., available only to spectators). Server hosts that have been using this CVAR in the 1.08.xx series should update their configuration files for the new meaning of the CVAR.
  231. New client cvar called cl_colorrails that enables coloring of the railshots according to the shooter's color (railshots coming from monsters will have a rainbow coloring).
  232. Added confirmation prompts to the “reset” commands in the options menu.
  233. Fixed the BOOM passthrough line flag.
  234. Push activated line specials were always treated as activated from the front side. Fixed.
  235. Changed the A_KeenDie codepointer to function the same as vanilla; Search among the types that called it, and not exclusively among keens.
  236. Changed the A_BrainSpit codepointer to not rely on a pointer to the BrainEye that calls it. This allows it to be used with actors other than the eye. (eg. deimos_revisited.wad)
  237. Wine fixes and saving/restoring of the window state for the launcher.
  238. Improved server query speed for the launcher, *especially* under wine.
  239. The launcher should avoid refreshing the server list while the client is running.
  240. New 'humans' column in the launcher: useful for sorting servers by human clients.
  241. Implemented an update mechanism into the launcher; it can download and install all mandatory and optional updates with a minimum of effort from the user's part.
  242. Added new railgun animation and sprites by SR69MM-JC and rantrave.

ZDaemon 1.08.08c release (2011-07-14)

  1. Fixed chainsaw/gauntlet bug on clientside that would result in players warping around the map after they hit an enemy.
  2. Fixed rendering glitch when r_detail is used and the console is active.
  3. Fixed a rare decal rendering crash (320 res + r_detail + min screensize).
  4. Fixed a particle rendering crash (e.g. zdomination map05).
  5. Fixed a sound problem on maps that blocked sound clipping.
  6. Fixed rare menu selection bug when full console was active.
  7. Added the message “Cannot change color/skin while alive!” showing in the player setup menu while the player is alive.
  8. Sometimes one would spawn looking the wrong way if his corpse went through a teleport. Fixed.
  9. Fixed missing map names during intermission in some rare cases (eg. zdctf_bsides-.wad).
  10. Fixed an infinite loop during intermission when someone had a fragcount above 99 or below -99.
  11. Removed local port binding from client.
  12. Implemented Picture-in-Picture (PiP) feature for duels. When watching a duel demo or spectating a duel online, while spying on one of the players, a PiP of the opponents view will be shown on screen. It is controled via the “pip” cvar: false = No PiP, true = render PiP. The size of the PiP defaults to a width of 160 pixels but can be modified via the “pip_width” cvar (valid range: 80-640). The position of the PiP is determined by the “pip_x” and “pip_y” cvars. Zero or positive values, indicate the coordinate of the upper left corner of the PiP (in pixels). Negative values signify distances from the right or bottom of the screen. For example, the default value of pip_x is -160 while the default value of pip_y is 20. The PiP will be shown on the upper-right corner of the screen by default.
  13. Allow passworded servers to change the spam limits.
  14. Fixed a potential server crash (thx to kgsws_cz).
  15. Fixed a numeric overflow bug that would crash unix servers at certain times.
  16. Improved the team balancing behavior: when “maxplayersperteam” is equal to -1, then the server uses the current method (ie., does not allow more than maxplayers/maxteams players in any single team) for the first 7 seconds ONLY. After that period is up, then joins can be made only to the team that has the least number of players. If there are more than one such teams, then joins can be made only to the one with the lowest team score (from among the teams with the least number of players).

ZDaemon 1.08.08b release (2010-11-30)

  1. Added support for 16, 24 and 32 bit per color (bpp) DirectX modes. The program defaults to 8 bpp modes under Win 9x/ME and 24/32 modes on all other Windows versions. One can override it from the command line via the -bits parameter, but that should be completely unneces- sary. This should finally put to rest all palette issues under all Windows versions.
  2. Added support for secondary monitors in full screen mode. This is enabled via the command line parameter “-screen N” where N is a positive integer identifying the display you want to use. To use a second screen for example, you would specify “-screen 2”. Full screen is forced when using a secondary display.
  3. by [XXX]Krawa: added tab autocompletion for client console rcon commands.
  4. Fixes client spawning monsters generated by dsparil locally.
  5. Avoid moving floors/ceilings/etc. locally on the client in c/s mode; it conflicts with movement done on the server.
  6. Extended changemus command to show the name of the current song when no argument is specified.
  7. Fixed ghost monsters left by archvile resurrections.
  8. Make sure that monsters spawned by the boss cube don't respawn (on the client side)
  9. When using regular or team chat the “say:” prompt will be drawn with the color specified in the messages color options.

ZDaemon 1.08.08 release (2009-07-16)

  1. Fixed a server crash in CTF mode.
  2. Made the zserv shutdown more robust under unix by ensuring its children are all down before it exits.
  3. Removed the log submission mechanism as it's been broken for a long while (and that mechanism will be replaced by something more robust in the future).
  4. Added timestamps to the zserv general log.
  5. Removed the display of every single ban list entry when the global ban list gets fetched.
  6. The server didn't handle password changes on the fly; it does now.
  7. The default value for sv_vote_kick_percent goes from 75% to 60%.
  8. The DF2_VOODOO_DOLLS dmflag has been inverted for the sake of compatibility with Plutonia and some other WADs. It's called DF2_VOODOO_SPAWNS now which means that it will spawn real players on voodoo doll starts ONLY when the dmflag is on. The associated cvar is called “sv_voodoo_spawns”.
  9. The unlimited ammo dmflag is now blocked from exp.
  10. Introduced a new DMFLAG (DF2_VAMPIRE = 0x4000000) and an associated CVAR (sv_vampire). When this flag is on, damaging an opponent will increase your health by half the damage you deal. There is an upper limit that one can reach through this mechanism and it's halfway between normal health (100) and max. sphere health (200), so it's 150 by default. Those 2 values can be adjusted via dehacked though. DM servers will NOT collect exp when this mode is on.
  11. Ordered List ItemVoting will not be accepted in the first 15 seconds of a round if there are spectators around.
  12. Temp. bans arising from voting will be put in place even if the player to be kicked/banned has already left the server.
  13. Introduced a server CVAR called “sv_vote_min” that specifies the minimum voter participation needed to ignore non-voters. It's an integer value ranging from 0 to 100 (%) and works as following: if a vote is called and the voters reach the percentage specified by sv_vote_min_participation, then non-voters are excluded from the voting decision. If voters are less than the percentage specified by sv_vote_min_participation, then non-votes are essentially counted as “no”. The CVAR defaults to 51 (%).
  14. Vote calls as well as actual votes are now displayed on the normal console so the voting process becomes more transparent.
  15. Implemented 3 new votes: random voting, random map voting and random team captain voting. The first is always enabled. The other two are controlled by the following server CVARs:
    • sv_vote_randmap = 0 Enable/disable random map voting * sv_vote_randcaps = 0 Enable/disable random team captain voting.
      Random voting is about letting the server select a random number (or flip a coin). That number will be used for anything the players want (and have agreed upon before the draw). The command:
    • callvote flipcoin
      calls a “flip coin” vote. If the vote passes, the server will display “heads” or “tails”.
      The command:
    • callvote random N
      (where N is a positive integer greater than 1) draws a number between 1 and N. If N is equal to 2 or is omitted, then this is the same as a coin flip. The command:
    • callvote randmap [mapname mapname [mapname …]]
      instructs the server to draw a map at random and then switch to it. If the mapnames are omitted, the server draws a map at random from the map rotation. If mapnames are specified, then the map is drawn only from these; they must belong to the server map rotation though. The command:
    • callvote randcaps
      calls a vote for random selection of team captains. For this to work, the server must be in teamplay mode (TDM or CTF) and maxteams should be equal to 2. The captains are selected at random from players or spectators in the red, blue, white teams.
  16. Added a message about who exits the level in coop.
  17. Added some server-side checks about the validity of the nicknames. They cannot be empty, they cannot contain leading or trailing spaces and they cannot contain backslashes, single or double quotes or non- ASCII characters. These restrictions are actually a subset of those enforced by the master, so they should not be binding for reasonable use.
  18. To facilitate speedrun timings:
    1. the timer resets to zero on the first spawn in each map.
    2. the timer display remains on screen during the intermission.
    3. the timer shows hundredths of a second.
      All of the above happen only if deathmatch=0 and timelimit=0.
  19. Removed a debug message displaying the pickup of Heretic artifacts.
  20. Fixed a client problem with mega item respawns.
  21. Sometimes a taken item would appear as non-taken because of some bug in the client: fixed.
  22. A HOM occured when a skybox was visible in both floor and ceiling: fixed courtesy of Worst-vd-plas and Phenex2.
  23. Players, monsters, and other moving objects no longer jump up ledges when near them while the camera is in spectator mode. This applies to demos as well.
  24. Changes in the floor height while moving should be smoother now; the jackhammer problem appears to be quite improved.
  25. There was some stuttering during teleporting when the entry and exit points were at different floors or when the player tried to keep moving during the teleporting. Should be fixed now.
  26. Fixed a problem with ACS print messages in client/server mode.
  27. Fixed a problem with ACS death scripts being executed on both client and server in c/s mode.
  28. The map powerup was not honored by the client: fixed.
  29. Gamma can now range between 1 and 3.
  30. The turbo cvar is not supported any more.
  31. The Spiderdemon firing animation/sound was not playing in c/s mode. Fixed.
  32. The Chaingunner firing animation/sound was not playing in c/s mode. Fixed.
  33. The WolfensteinSS firing sound was not playing at all in any mode. It's a problem in the SNDINFO lump of zdaemon.wad and can only be fixed by a new zdaemon.wad (ie., it will have to wait till 1.09); it's fixed temporarily by having it play the zombie firing sound.
  34. The WolfensteinSS firing animation/sound was not playing in c/s mode. Fixed.
  35. Fixed a problem when firing the chainsaw in c/s mode.
  36. Enabled skin scaling courtesy of Phenex2.
  37. Introduced a new DMFLAG DF2_INSTASWITCH = 0x8000000) and an associated CVAR (sv_insta_switch). This flag enables instant weapon switching.
  38. Uncapped the projectile speeds (useful for dehacked speedups) courtesy of Phenex2.
  39. Fixed the display of players having activated the Wings of Wrath.
  40. Enabled the taunts to play properly even in the presence of the silent BFG dmflag.
  41. The announcement of the last capture in a CTF game would get cut off by the intermission screen. Fixed.
  42. Fixed a CTF bug when a bot left the server while carrying a flag.
  43. Fixed a bug where a gibbed player/bot corpse would revert to the normal death state when the player/bot respawned.
  44. Added ^U to the console cmds: it erases the current line.
  45. Made a fix to silent and line teleports to properly adjust the exit angle. The fix is not working perfectly right now, as the teleport code introduces a half-second delay in movement (which it shouldn't). The fix for that needs changes to the net protocol, so it should work fully in 1.09.
  46. Added a “bullet_puffs” client cvar that controls the display of bullet puffs. Some people have reported intense cpu loading that happens only when puffs are enabled. If you see such problems, it might be worthwhile to experiment with this option.
  47. Fixed several client crashes.
  48. r_visibility is gone from the client. It's not wise to keep it around in a multiplayer port.
  49. r_drawflat is also gone. Same reasons as above.
  50. The coop spawn policy has been modified a bit: the first player on the map always spawns on the first spawn point. Other players spawn at random coop starts. This preserves the desirable properties of random spawning, yet also facilitates speedrunners who need a predictable spawn point.
  51. Fixed another bug where someone could pick up items above his head without jumping.
  52. Fixed some floor raise/lower problem courtesy of Phenex2.
  53. New server CVAR “sv_randmaps” that shuffles maps from the rotation.
  54. Fixed a rounding problem in sloped planes courtesy of Phenex2.
  55. Added support for some new definitions in MAPINFO related to intermission courtesy of Stealth & Worst-vd-plas.
  56. Assorted engine patches for zdoom 2.x compatibility courtesy of Phenex2.
  57. Improved the Heretic full screen HUD to display armor and armor type.
  58. The CTF point system gets slightly adjusted:
    • +1 point for fragging an enemy player
    • -1 point for fragging a teammate.
    • -1 point for committing suicide (environment kills count as suicide too)
    • +2 points for fragging an enemy carrying your flag.
    • +1 points for fragging an enemy carrying any other flag but yours (applicable to 3- and 4-way games only).
    • -2 points for fragging a teammate carrying an enemy flag.
    • +5 points for capturing an enemy flag.
    • +1 point for returning your flag.
    • +1 point for assisting a capture by returning your flag and your team capturing within 4 seconds.
    • +2 points for assisting a capture by fragging an enemy carrying your flag and your team capturing within 4 seconds.
    • +1 points for touching an enemy flag (taking it either from its base or the dropped state).
    • +2 point for fragging an enemy player within sight of AND near your flag carrier.
    • +1 point for fragging an enemy player in your base area (as determined by a SECTINFO lump).
      The points are added up according to the applicable rules. Suppose for example that you frag an opponent carrying your flag and return it: you get +1 point from rule #1, +2 points from rule #4 and +1 point from rule #8: 4 points in total. If the fragging took place in your base area, then rule #13 would apply as well, so another point would be added.
  59. Added a server CTF points log: it can be enabled / disabled with the “ctflog” command (or -ctflog cmd. line option) and it displays the points given to each player in detail along with the applicable rule from the above list.
  60. The ping is now displayed next to the netstats graph.
  61. Kick Voting is now enabled in non-coop modes provided that the server is passworded or not advertized to the master.
  62. Mancubus fireballs should finally appear properly in client/server mode.
  63. The splashfactor CVAR has been renamed to sv_splashfactor and can now become zero or negative; this can be useful for rocket jumping. In such situations, the “jumpback factor” becomes equal to the negative of the specified value while the splash factor becomes zero. If for example we set sv_splashfactor to -1, then the jumpback factor becomes 1, and splash factor 0 (ie., same jumpback as usual, but no splash damage). If we set sv_splashfactor to say -10, then the jumpback factor becomes 10 (quite high) and splash factor 0 (ie., no damage). 64. The launcher can now patch IWADs automatically courtesy of Doom2pro's IWAD patcher: noone should ever need to do it manually.
  64. The launcher now handles demos with spaces in the filename.
  65. New searching function in the launcher. You can search for strings in the server name or for WADs. Searching is done in full unicode (useful for server names) even under Win9x.
  66. Fixed the teleporting/moving of items via ACS in client/server mode.
  67. Fixed a ceiling-related bug.
  68. Introduced a new server CVAR called “sv_teamautoaim”; when it's non- zero, teammates are excluded from autoaim calculations. Defaults to zero (ie., the game behaves as it always did).
  69. Fixed a problem with dmflags map overrides not being properly reflected on clients.
  70. Added an appropriate error message when someone tries to issue the “map” command on the client while connected to a server or playing a demo.
  71. Added half-op support and /op, /deop, etc commands to zrc.
  72. Implemented heretic morphing: this requires new 1.08.08 clients though. Older clients can still connect (since we're still in the 1.08.xx releases), but they will not see things properly.
  73. Blocked various various SP cheats while spectating (eg., what would be the meaning of iddqd while spectating? idclev on the other hand is ok).
  74. Replaced the “newscores” cvar on the client by the “classic_look” cvar. The new cvar will apply to the scrores screen, HUD and all other GUI elements. If it's on, then the program will look like it always did; if it's off, then you will see ZDaemon-specific enhancements where applicable.
  75. Changed the main menu to remove the “new game” command in online mode. It gets replaced by a “disconnect” command in online mode or by a “stop demo” command while demo watching. This change applies only when classic_look is off.
  76. Blocked the “testcolor” command from online mode.
  77. Added a -nostaticbots command line to the server. It allows only dynamic bots (the ones set via minplayers) in game. Useful for conserving server CPU.
  78. Sectors where BOTH the floor and ceiling had moved would not display properly in client/server mode if you connected to the server after the movement. Fixed.
  79. Sectors where BOTH the floor and ceiling had moved would not display properly in client/server mode if you connected to the server after the movement. Fixed.
  80. The silent chaingunner problem should be fixed now.
  81. Added a “splashfactor” variable to mapinfo. It's a float and on the same scale as sv_splashfactor.
  82. The splashfactor cvar is now sent to the launcher so that one can setup launcher filters for RJ servers.
  83. A player's dying scream would not be heard if he respawned quickly enough. Fixed.
  84. The doom “ouch” face has been fixed.
  85. There was a bug in mapinfo where changes in dmflags (jump/mlook) would not revert to the previous values at map's end. Fixed now. Mapinfo also incorrectly overrode server cvar overrides; also fixed.
  86. Implemented a new game mode called “Survival”; it's basically coop with limited lives. The amount of lives is set by the “maxlives” cvar. Once a player's deathcount exceeds maxlives, he becomes a spectator and his IP address is blocked from joining till the end of the round. If everyone becomes a spectator (ie,. failure), then the map resets. Contrary to other modes, spectators who used to be players can vote (ie they're considered as players for voting purposes). Team damage is forced to zero (and even telefrags dont' affect the deathcount) to avoid “unpleasantries”. Survival is also playable in SP mode (from the SP launcher).
  87. Introduced a new “gametype” CVAR; it's intended to simplify gametype selection. It can assume one of the following values:
    • 0 → DM
    • 1 → TDM
    • 2 → Coop
    • 3 → CTF
    • 4 → Survival
      If the CVAR is set, it automatically sets the proper values for the “deathmatch”, “teamplay” and “ctf” CVARs. If it's not set, then it gets deduced by those 3 CVARs. The reason for this “reciprocity” is to enable the use of the client/server by older launching tools which may not support “gametype” yet. This will not last for ever though; the 3 CVARs are now deprecated and they will be removed sometime in the future.
  88. The key display in the HUD would be wrong when someone had a key AND reached the death limit in survival mode AND the “keep keys” dmflag was on. Fixed.
  89. Fixed an old problem whereby 2 players would get stuck if their bounding boxes somehow managed to overlap.
  90. Telefragging and teamdamage are blocked from cooperative and survival, public, non-passworded servers.
  91. Implemented the following policy regarding morphed players (chicken/ pigs) in CTF mode: morphed player can always return flags, BUT they cannot carry them in the default setup. If a mapper wants to enable that, he can turn on the MF_PICKUP bit on the ChickenPlayer/PigPlayer actors. In that case, the morphed players will be able to carry flags as usual.
  92. Implemented a comprehensive connectivity check for zserv. When advertized to the master, it automatically detects when it's behind a NAT and it turns UPnP on (the -upnp command line option is hereby removed); it also requests a connectivity check from the master in order to determine if the zserv is reachable from outside the NAT or not. When the test finishes, you will see a message informing you about the outcome. This should put an end to the questions “can anyone see my server, etc, etc”.
  93. Fly/swim up/swim down buttons now work in spectator mode.
  94. Replaced the “limitpainelemental” server CVAR by the “maxlostsouls” CVAR. The new one is an integer rather than a boolean and it defaults to 20.
  95. High resolutions help and boss screens should work now.
  96. The summon command has been improved to avoid getting stuck with the spawned actor; it also tries to avoid spawning an item at a location where it doesnt' fit.
  97. Fixed a rendering bug that could crash the client with sloped surfaces viewed from very far.
  98. The max. health of vampire mode goes to the soulsphere level (200 by default, but can be changed via dehacked).
  99. Updated the zlib library used by both client and server.
  100. Made yes/no votes case-insensitive when issued as chat strings.

ZDaemon 1.08.07b release (2008-10-15)

  1. Fixed a server crash.
  2. Removed the need for the -noinput cmd. line parameter.
  3. Added -version and -proto cmd. line parameters to the cmd. line version of zserv to display the zserv version and protocol number respectively.

ZDaemon 1.08.07 release (2008-06-03)

  1. Fixed a desync in the appearance/spark/sound of respawned items.
  2. Fixed a bug when closing channel tabs in zrc.
  3. The launcher would not properly erase the contents of the death column when clicking on a server that didn't show deaths.
  4. Various ZSL fixes as reported in the ZSL readme.
  5. There was a bug in the handling of new connections in zserv; it could cause server crashes when the server got full.
  6. The player color override option would sometimes fail: fixed.

ZDaemon 1.08.06 release (2008-05-26)

  1. Display the target player health along with name in coop or when the target player is a teammate (in team modes), or when spectating (in any mode). The nick and health are color coded depending on the target health.
  2. Target names are not shown any more for dead players.
  3. Added support for teleporting missiles (all kinds). It's activated with the DF2_TELEMISSILES = 1 dmflag (dmflag2 actually) or the associated “sv_telemissiles” CVAR. If you don't want to enable teleporting of all missiles, you can also use the dehacked approach for selected ones only. Older clients will not be able to handle such missiles properly (they may be hit by invisible missiles: this is the only known incompatibility), so a client upgrade is strongly recommended.
  4. We now force “fuzz” rather than translucency when playing non-coop online.
  5. Implemented proper weapon animation during spying / demo viewing. There are still two minor glitches that cannot get fixed right now since they require protocol changes. Therefore, they'll have to wait for 1.09.
  6. New server CVAR “specs_dont_disturb_players”. It defaults to false. If turned on, spectator chat is echoed to other spectators, but not to players.
  7. Private messages from players to spectators are now blocked (cheating opportunity).
  8. Private messages from spectator to spectator are now enabled.
  9. Added support for SECTINFO lumps in wads; they are plain text lumps and specify:
    • which sectors are considered parts of a team “base area”.
    • user-assigned names for each sector.
      There can be more than one such lumps in all wads; you can find some sample SECTINFO at
  10. Added special escape sequences for chat strings: %a → armor, %h → health, %l → current location (as determined by a SECTINFO lump). They can be useful for binds in team modes.
  11. Spectator behavior is now identical between SP and CS mode. They don't activate anything, including teleports. Some maps though require teleporting (eg., Icon of Sin map in coop mode). For that reason, a “spectator teleport” button has been added. If you press it while crossing a teleport line, the teleport works (client-side only: nothing gets triggered on the server).
  12. Fixed some problems in the automap code; it should now be able to handle maps up to 32767 units wide or long.
  13. Implemented recursive directory searching for wads. It's activated by using 2 slashes at the end of the directory path. For example: “-waddir c:\zdaemon” does NOT do recursive searches, while “-waddir c:\zdaemon\\” does. Unix servers naturally use forward rather than backward slashes.
  14. Enabled the server to find bots.cfg in the current directory in addition to the zcajun directory.
  15. The PCX screenshot format has been replaced by PNG. A nice feature of the format is that it supports the specification of the gamma value, so the screenshot should look similar to the actual display inside the game.
  16. Shooting corpses should now be a thing of the past.
  17. Fixed a bug where the wrong switch would be lit in online mode. It happened when more than 1 switches triggered the same item.
  18. Implemented a new client CVAR called “screenshot_scores”. If set to true, it automatically takes screenshots at the end of games.
  19. Added a “motd” client command.
  20. Fixed a problem where the server might freeze for a few seconds in rare occasions.
  21. Got rid of the “tx” and “ty” client CVARs; they are inappropriate for a multiplayer environment.
  22. No more “Cannot play non-ZDoom demos. (They would go out of sync badly.)” messages.
  23. Fixed the spectator splashing problem (example: heretic e1m1).
  24. Spectators should not be pushed by wind (example: heretic e1m1).
  25. Spectators should not grunt when hitting walls or landing on things.
  26. The “limitpainelemental” server CVAR imposes a limit of 20 lost souls per map. The CVAR now defaults to true (ie., same as classic doom) rather than false.
  27. Corrected a sprite scaling issue, courtesy of Phenex2.
  28. Heretic gauntlet usage could result in a server kick (turbo); same idea as the doom chainsaw.
  29. Fixed a problem with the color of Heretic KeyGizmos in online mode.
  30. “Bullet puffs” (so to speak) were missing in Heretic online mode.
  31. The client would get stuck into an infinite loop on connection to a heretic server containing dead heretic imps. Fixed.
  32. The “zbot” skin name is automatically translated to “zbor” in Heretic mode and “zbox” in Hexen mode. All 3 skins are not available to players: only to bots.
  33. The “You need the XXX key to open this door” message now produces a grunt in online mode as well.
  34. Fixed the behavior of missiles when they hit Line_Horizon lines.
  35. Dormant items should not generate blood spurts or splatter.
  36. Water splashes were getting spawned both on the server and the client. Fixed.
  37. Keys retained by the DF2_KEEP_KEYS dmflag when someone died in coop were not shown in the HUD.
  38. More bot chatter/taunting courtesy of Adereth.
  39. No more “Client output packet overflow” while viewing demos.
  40. The client's pickup switch method would get inadvertently modified on some unusual conditions (manual map change and player NOT being the first on the server). Fixed.
  41. Added a -nomsgbox cmd. line parameter to facilitate auto-restarts in case of crashes.
  42. Blocked the respawning of monsters spawned by ACS or the Icon of Sin cube in nightmare mode. That was an old and unresolved doom2.exe bug.
  43. No more “attempted server crash” auto-bans.
  44. Blue armor is now included in the DF_NO_SUPER dmflag
  45. Implemented a server sanity check for teamdamage (0..1)
  46. Implemented a server sanity check for air control (0..1)
  47. Implemented a server sanity check for gravity (0..1600)
  48. Removed the enable_rcon cvar; rcon is enabled only when rcon_password is NOT empty.
  49. Removed the force_password cvar: it's implied depending on the “password” cvar; if “password” is empty, then the server is public. If it's not empty, then the server will require a password.
  50. Implemented new launcher info packet covering all the functionality needed for 1.09
  51. The manual /map command on the server was not saving the bot state, so bots added by /addbot on the current map would not spawn on the next one.
  52. Stopped the auto-scrolling of the zserv32 window when the window is not already at the bottom.
  53. Sometimes the server would report phantom players to the launcher. Should be fixed now.
  54. Sometimes the player list on zserv32 was wrong. Fixed.
  55. Increased number of map list slots from 36 to 1024.
  56. New mapcycle related commands on the server:
    • mapskipby : Goes forward/backward in the map list
    • mapskipto : Goes forward in the map list to the specified map
  57. Automatically saves the mapcycle index to a file before each map start. The file gets deleted on normal exit. If the file is found on startup, it means that the program had previously crashed, so it continues the map cycle from the map following the one in the saved file.
  58. Fixed the server to reduce the “pullback” on the first spawn.
  59. The server can accept alternate wads in the place of one or more wads. Useful examples are allowing freedoom/freedm rather than doom2 (or vice versa), facevox rather than zvox2, etc. This is enabled via the “setaltwads” server command (which could reside in zserv.cfg). Here is an example: setaltwads “doom2=freedoom062=freedm062 zvox2=facevox2=sharkvox” This tells zserv that it can accept freedoom062.wad or freedm062.wad in place of doom2.wad and it can accept facevox2.wad or sharkvox.wad in place of zvox2.wad. Some important points:
    • For any equivalence to be accepted, one of the wads in the equivalence must be already loaded and zserv must be able to find the other ones in order to checksum them. This also means that either all the wads should reside in the current or program directory, or you should use the -waddir cmd. line parameter (or the WADDIR env. variable) to tell zserv where the wads are.
    • The entire argument of the setaltwads command must be enclosed in double quotes.
    • When zserv executes this command, it does the above checks and sets up the equivalences. It will also display the equivalence on the console, so you can be sure if it has been accepted or not.
    • Freedoom and freedm are not frozen like doom2.wad; therefore, we *absolutely* need proper versioning in their filenames, eg., use something like freedoom062.wad rather than freedoom.wad The use of the “unversioned” wad name will lead to chaos from the part of the players (what will happen for example if half the servers run one version of freedoom, the other half uses another version and they all use the same name? how will a player be able to play?). Therefore, we will have no other option but to block from the master server any zserv using the unversioned wad names.
  60. The launcher has been upgraded to understand and handle alternate wads properly. It will prompt you when a selection has to be made and it will remember your choice.
  61. Implemented a CTF point system that's based on the one from Q3 slightly extended to handle 3- and 4-way CTF. Here is the way points are calculated:
    • +1 point for fragging an enemy player
    • -1 point for fragging a teammate.
    • -1 point for committing suicide (environment kills count as suicide too)
    • +2 points for fragging an enemy carrying your flag.
    • +1 points for fragging an enemy carrying any other flag but yours (applicable to 3- and 4-way games only).
    • -2 points for fragging a teammate carrying an enemy flag.
    • +5 points for capturing an enemy flag.
    • +1 point for returning your flag.
    • +1 point for assisting a capture by returning your flag and your team capturing within 4 seconds.
    • +2 points for assisting a capture by fragging an enemy carrying your flag and your team capturing within 4 seconds.
    • +2 points for fragging someone who has recently damaged your flag carrier.
    • +1 point for fragging an enemy player within sight of AND near your flag carrier.
    • +1 point for fragging an enemy player in your base area (as determined by a SECTINFO lump).
      The points are added up according to the applicable rules. Suppose for example that you frag an opponent carrying your flag and return it: you get +1 point from rule #1, +2 points from rule #4 and +1 point from rule #8: 4 points in total. If the fragging took place in your base area, then rule #13 would apply as well, so another point would be added.
  62. Modified the server to avoid creating the .zdoom directory in the user's home directory (unix) and to enable a common convention across all O/Ss. All WAD files are searched on the current directory first, then on the zserv program directory, then on the directory specified by the “-waddir” cmd. line option or the “WADDIR” environment variable.
  63. cl_maxbodies lower bound goes from 1 to 3.
  64. New chat spam defaults: 4 messages per 8 seconds for team modes or 10 seconds for non-team modes.
  65. New “maplist” command on the client. It prints the server map rotation.
  66. The “restartemptymap” server cvar has been extended to reset the level timer (if one is in effect) when the first player joins.
  67. Spectators should not trigger “thing specials” (example: jumppads in zdctfmp map10).
  68. “New style scoreboard” option removed from options menu. The “newscores” CVAR is still there for those who insist.
  69. New client CVAR “zd_overridecolors” that lets you override the colors you see for your teammates and enemies (in all modes). When zd_overridecolors is on, teammates are displayed using the “teammate_color” CVAR, and enemies are displayed using the “enemy_color” CVAR.
  70. Fixed a problem in the handling of the up arrow key in the option menus of the client. The menu would appear blank and it could lead to a client crash.
  71. New “sitrep” CVAR that shows you your teammates names, health, armor and location in team modes or coop, or works like a mini scores-screen in DM. The report's position can be adjusted by the “sitrep_xofs” and “sitrep_yofs” CVARs. There is also a “sitrep_fontsize” CVAR that controls the size of the report's font (it can range from 0 up to 7: defaults to 1).
  72. Fixed various problems with coop spawning, including spawning of players above the number of coop starts in the map, spawning under bridge things, blocking of spawn points by other players or monsters, etc. If a spawn is blocked by a player or monster, they will get telefragged except for the first 5 seconds of the level. That should give players enough time to move off the spawn points.
  73. Related to coop spawning is voodoo doll support. A new dmflag (DF2_VOODOO_DOLL = 0x2000000) was added that enables the detection of voodoo doll starts as such; this avoids spawning real players on the voodoo doll starts. Beware: this is only the beginning of voodoo doll support and it's very far from completion. So don't expect voodoo dolls to work yet.
  74. Fixed an oversight in the team switching server code whereby one could get around the maxplayersperteam limit.
  75. Implemented map reset, map switch and player kick voting. They are controlled by the following server CVARs:
    • sv_vote_limit = 3
      # of times someone can call a vote per map
    • sv_vote_timeout = 45
      How long the voting will last (in seconds)
    • sv_vote_reset = 0
      Enable/disable reset voting
    • sv_vote_map = 0
      Enable/disable map voting
    • sv_vote_map_percent = 51
      Percentage needed to pass the reset/switch vote
    • sv_vote_map_skip = 0
      How many maps must be played before a given map is eligible for voting after it has been played.
    • sv_vote_kick = 0
      Enable/disable kick voting
    • sv_vote_kick_percent = 75
      Percentage needed to pass the player kick vote
      Player kicking is available only for coop modes. The other forms of voting are recommended only on coop or private/LAN or tournament servers. The voting is initiated by the “callvote” command on the client. It can assume one of the forms:
    • callvote reset
    • callvote map
    • callvote kick
      When someone calls a vote, a notification about the ongoing vote is displayed on everyone's HUD. Players can then vote for or against the proposal by typing “yes” or “no” on their console or saying “yes” or “no” in chat.
      There are 2 other voting related client commands: the “voteinfo” command displays the server voting CVARs, while the “maplist” command displays the server map rotation (this is useful for issuing a callvote map command as you may not know which maps are in the server rotation).
      The position of the voting display on the client can be adjusted by the “vote_xofs” and “vote_yofs” CVARs. The “vote_fontsize” CVAR controls the font size used for the display; it can range from 0 to 7 and it defaults to 1. Finally the “vote_compact” CVAR results in a slightly more compact voting display.
  76. Introduced a concept of “limited rcon”. The server admin can define up to 9 different “limited rcon levels”. Each level is characterized by a different rcon password and a set of commands authorized to issue. Here is an applied example: suppose the server admin wants to give limited rcon access to a tournament referee. The referee should be able to do specific tasks, but he is not supposed to change the server setup, stop, restart the server, etc.The server admin could put the following in the zserv.cfg file:
    • set rcon_pwd_1 “referee”
    • set rcon_cmds_1 “mapskipby mapskipto maplist players kick addtempban”
      These 2 lines define “limited rcon level 1”, its password and the authorized commands.
      You can define up to 9 such levels (rcon_pwd_1 … rcon_pwd_9) if you have to.
  77. Fixed an item respawn bug where the respawn sound and flash occured twice in quick succession in c/s mode.
  78. Fixed an item respawn bug where a respawned item would appear at a different vertical position than where it actually was spawned on the server.
  79. Made the parsing of MAPINFO lumps more forgiving in terms of unknown keywords. When such keywords are encountered, the parsing of mapinfo stops and the program continues rather than aborting.
  80. Ported ANIMDEFS WARP2 Eternity style flat warping effect from ZDoom courtesy of Worst-vd-plas.
  81. Implemented air supply support in MAPINFO courtesy of Phenex2.
  82. Started work on enabling dehacked for heretic/hexen courtesy of Worst-vd-plas.

ZDaemon 1.08.05 release (2007-12-26)

  1. Improved server-side speedhack detection.
  2. Better handling of uneven packet delivery (server-side). It avoids the use of a certain delaying technique for strategic purposes.
  3. The server is now UPnP-aware, so it can forward ports on NAT routers automatically. It's enabled via the -upnp command line switch.
  4. Implemented a “killlimit” server cvar. It's meant for coop and it's analogous to the fraglmit cvar of DM. It can also assume negative values, in which case it means that *everyone* in game must reach the specified number.
  5. Implemented an “overtime” server CVAR. When it's different from zero and the time limit expires, the game goes into overtime and ends on the first frag, suicide, capture, etc (ie., sudden death).

ZDaemon 1.08.04 release (2007-12-17)

  1. Security fix (DOS-related).
  2. New server CVAR “acl” (access list) that controls the nicks allowed to connect.
  3. New server commands “acl_add”, “acl_remove” and “acl_clear”. They're pretty obvious.
  4. More code cleanups in zserv.
  5. Fixed a memory leak in zserv; it was losing about 1K bytes on each respawn. The memory was reclaimed at level end and that's why it was not noticed in normal games. It would appear though when there was no time and frag limit.

ZDaemon 1.08.03 release (various revisions at various dates)

  1. Launcher only.

ZDaemon 1.08.02 release (2006-04-04)

  1. Fixed a problem in coop mode with the sv_deathlimit cvar. If someone remained dead long enough to become a spectator and then rejoined, then that person could not shoot any monsters and monsters could not kill him. It has been fixed now.
  2. Fixed a crash on some maps (eg., exec map09) when the “no exit” dmflag is used.
  3. Fixed a problem where the “A secret has been revealed” and other (wad- specific) messages were printed on the console instead of being displayed at the screen center.
  4. The “weapnext” and “weapprev” commands (bound to the mousewheel by default) are automatically translated to “spynext” and “spyprev” respectively while spectating or viewing demos. This facilitates the switching of POVs while spectating or viewing demos.
  5. Fixed a problem with the “Boss cube”; it would crash the client in client/server mode (eg. doom2 map30).
  6. Added a new dmflag (DF_RESET_INVENTORY = 1048576) and an associated cvar (sv_resetinventory). It's meant for coop and it determines whether player inventory should be reset at the end of each map.
  7. The “respawn items” , “no exit” and “weapons stay” dmflags needed the “alwaysapplydmflags” cvar to operate properly in coop. Not any more: alwaysapplydmflags is gone now and the dmflags work as expected.
  8. More server code cleanups.
  9. Improved the coop spawn algorithm; if your spot is occupied, it will try all coop spawns until it finds an empty one.
  10. Updated the ip-country database.
  11. Blocked any runtime changes to the “maxclients” CVAR; it can be set only in zserv.cfg.
  12. Added a new dmflag (DF_QUAD_RESPAWN_TIME= 8388608) and an associated cvar (sv_quadrespawntime). It quadruples the time between item respawns and obviously applies only if item respawn is ON.
  13. When the OS Sound range dmflag is on AND it's not a team game, then spawns facing west are silent. It's an old doom2.exe bug, but it was inconsistent between VC++ and gcc because it relied on undefined compiler behavior. This has been formalized now and is consistent across the board.
  14. When you try to connect to a full server, you get an error message instead of no reply.
  15. Added a new dmflag2 (DF2_USEBLOCKING = 16777216) and an associated cvar (sv_useblocking). It's taken from ZDoom 2.0.98 and it means “All special lines can block use lines”.
  16. Fixed the missing puffs bug introduced in 1.08
  17. Grunting on 2-sided linedefs is now blocked when the silent BFG dmflag is on.
  18. Multiplayer weapons are now spawned in coop mode (not SP mode).
  19. sv_resend defaults to 1 now.
  20. New server cvar (sv_maxclientsperip) which limits the number of allowed clients per IP. It defaults to 4. Can be disabled if set to a non- positive value.
  21. Various security fixes (mostly DOS-related). When zserv detects a DOS attack, it auto-bans the attacking IP; the ban is temporary and expires in 15 minutes.

ZDaemon 1.08.01 release (2006-01-01)

  1. Fixed a sound problem; many sounds (projectiles and map items) were not scaled by sfx volume, which resulted in very distorted sounds.
  2. Added a new possible value to the netstats CVAR; when it's 3, it displays both numbers and graph.
  3. When the “cl_showpressuse” CVAR is false, the client does not display the player name while spectating (and if the watched player is equal to the console player). Combined with the no-gravity conditions while spectating, this facilitates the taking of map screenshots.
  4. Sometimes you see rockets sticking to a wall; this is a dropped packet problem. Added a fix to circumvent it.
  5. Improved the “teleport jackhammer” and “spawn jackhammer” problems when cl_floorfix=1. Right now, cl_floorfix is not 100% right (because it treats the symptom rather than the cause), but it doesn't appear to have any bad side effects either; therefore, it should make the game quite more enjoyable.
  6. There was an oversight in the blocking of color changes (while alive and playing) on the server which resulted in some people using disco scripts again. It should be finally put to rest.
  7. Skin switching is allowed only in the same cases as color switching.
  8. The player setup dialog has been reworked to avoid sending many messages to the server when someone changes teams, colors, etc. Only a single message is sent (if necessary) when someone exits the menu. This should also reduce problems with spamming in team modes.
  9. Fixed a CTF exploit: flag carriers cannot switch teams.
  10. Added another method to reduce spamming via team switching; any attempts to switch teams more than once in less than 5 seconds are ignored.
  11. New server CVAR called “sv_deathlimit”. If non-zero, it specifies the max. number of seconds that one is allowed to remain dead. When the limit is reached, he becomes either a spectator or is respawned depending on the sv_forcerespawn dmflag (which was not previously used in practice, so it looked like a fitting candidate for this feature). The default value for the CVAR is 180 seconds.

ZDaemon 1.08 release (December 21, 2005)

  1. Adapted the entire audio code from zdoom 2.0.96. This avoids some crashes in the old code, improves midi/mod handling and also adds FLAC support.
  2. New audio option to mute when out of focus
  3. New master volume control to separate the sound effects volume from the other categories.
  4. Fixed a problem where the client would display the wrong armor value.
  5. Implemented support for custom voice packs
  6. PWO / pickup switching method is now sent from the server to all clients to improve the weapon display while spying.
  7. The “zbot” skin is now unavailable to human players.
  8. Netcode fixes for less and more stable traffic.
  9. Improved compression over the wire.
  10. Added a “netstats” cvar that can take the values of:
    • 0 → no stats
    • 1 → numerical
    • 2 → graph
  11. Added a “cycle_netstats” command that does the obvious. It's meant to be bound to some key to make it easy to monitor net usage while playing.
  12. Fixed a small bug in unlagged: improves the shooting accuracy a bit.
  13. Various security improvements.

ZDaemon 1.07.01 release (Aug 31, 2004)

  1. Changed the behavior of spectators: they can now fly without any gravity as well as use mouselook on any server (similar to UT).
  2. Moved the experience display in the DM and TDM scoreboards when using a full screen HUD.
  3. Fixed a bug in the scaling of the team color background in TDM when using a full screen HUD and st_scale=true
  4. Fixed the saving/restoring of the pwo. Got rid of the “getpwo” and “setpwo” commands as well as the pref_weapon_X CVARs; they're replaced by a single CVAR called “pwo” that uses the same format as getpwo/setpwo.
  5. Added the +showscores command to the key customization menus
  6. Extended the operation of the on-screen timer: if there is no time limit on the map, it shows the time since you connected. Can be useful on games with respawning items and no time limit.
  7. Added a new dmflag to avoid killing people on exit
  8. Fixed some 1st/3rd view problems while viewing demos.
  9. Added some vertical space between players and spectators in the new DM and Coop scoreboards.
  10. Fixed a problem with the sliders in the Heretic menu
  11. Added a “cl_maxbodies” CVAR that controls the number of dead bodies displayed. It can range from 1 to 32; defaults to 16.
  12. Fixed a problem with the PWO; the server assumed that you always switched to a picked up weapon and that created anomalies when its priority was lower than the one you were holding.
  13. Fixed a PWO-related client crash when you picked up multiple weapons quickly.
  14. Enabled a “server provider ban list” that can be shared among various instances of zserv; the idea is to enable providers of a large number of zservs to maintain a single ban list without going to the hassle of updating the ban list for each of their zservs. The feature is enabled by specifying the “banlist_url” CVAR inside zserv.cfg. It can contain either an http or ftp URL to the ban list.
  15. Fixed the underscore bug where a kill+suicide on the same tick would trigger the end of game.
  16. Implemented a fix for the jackhammer bug (view violently shaking as you stand still on stairs) that also produces smoother movement for higher pings. The fix is not 100% finished (there is something else related on the server and we're looking into it), but we feel that even this partial fix is worthwhile. If you dislike its side effects (there are some relatively small anomalies as you come out of teleports), you can type “cl_floorfix 0” in the client console to disable it.
  17. Fixed the “chat_block spectators” command so that people who were actually in-game, are not considered spectators at the end of the game.
  18. Changed the default red/blue/green/white team colors to darker shades.
  19. Implemented the display of target names when allowed by the server. There is an entry in the Display Options menu to turn it on/off.
  20. Added a client CVAR called “cl_showpressuse” that determines if the string “Press the 'USE' key to join” is displayed. It defaults to true, but it can be turned off if you like; this is useful for taking screenshots in spectator mode.
  21. Fixed the weapnext/weapprev commands when switch to empty was enabled.
  22. Improved the PWO method: when you pick up a weapon, you switch to it, only if the weapon has higher priority than the one you're holding AND you are not firing at the moment.
  23. Made a netcode fix to prevent out of order packets. If you see weird behavior and want to disable the fix, type “cl_lastticfix 0” in the client console.
  24. There is a new server CVAR called “block_color_switching”. If non-zero, the server will block anyone who switches colors unless he's dead or spectating. This CVAR defaults to 1 and is also forced to that value if the server advertizes to the master.
  25. Added special (“unlagged”) network code to compensate for the latency in instant hit weapons (pistol, sg, ssg, cg, rg). This increases the shooting accuracy of high pingers significantly. The activation of the unlagged code is controled through the “sv_unlag” server CVAR which defaults to true; you can experiment setting it to false to determine how it affects the accuracy. Note that this is not a full solution for the ping problem; it is a good start however.
  26. The time reported by the server is reset to zero when a spectator joins the game. Therefore, the time reported for spectators is the time since connection, while the time reported for players is the actual playing time.
  27. The PWO info is now sent from the player to the server so that the server handles weapon pickups properly.

ZDaemon 1.07 release (July 11, 2005)

  1. Restored the “Respawn super” DMFLAG to its traditional meaning in order to avoid disturbing OS rules. The importance of the dmflag is not that high anyway (for non-OS setups), since we have the other dmflag that blocks all spheres from spawning in the first place.
  2. The program now obeys the dehacked MaxHealth statement (thx to excelblue).
  3. Fixed a problem with playing 1.06 CTF demos; the program now turns on the CTF compatibility dmflag automatically when playing such demos.
  4. Fixed a problem with teleport fog and sound missing sometimes upon respawn.
  5. Fixed a problem in the server autoresetting logic when a spectator disconnected.
  6. Fixed a bug in the enforcement of the pickup_switch_method.
  7. Improved the PWO dialog; when you change a weapon, the weapons selected above it are not affected (ie., you're allowed to select a weapon only from those under the given weapon). This simplifies the weapon selection a lot: you simply start from the top and move your way down.

ZDaemon 1.07rc release (July 7, 2005)

  1. Brought back the old scoreboards (with an option to use them)
  2. Added a DMFLAG about OS Vertical (Z) movement.
  3. Fixed a server problem about the player position update frequency; it made the game quite choppy.
  4. Fixed a width problem in the heretic menus.
  5. Added an option to show remaining time on the main screen.
  6. Minor adjustment to the OS speed
  7. Added an optional background to the new scoreboards. The brightness and opacity of the background are user-adjustable.
  8. Fixed a problem with the rank/spread info overlapping the HUD in some cases.
  9. Got rid of the “hud_scale” cvar. The “st_scale” (scale status bar) cvar is now used for that. The advantage is that you can scale both status bar and HUD with a single cvar and there is already a GUI for that.
  10. The rank/spread info now obeys the st_scale cvar so it fits better (visually) with the rest of the HUD.
  11. Fixed the railgun firing in client/server mode.
  12. Removed the “-host”, “-join”, “-net”, “-dup”, “extratick” command line params. from the client. They are ZDoom specific; they don't apply to ZDaemon.
  13. Expanded the “Silent weapon pickup” DMFLAG; now it is “Silent weapon/item pickup”. As such, any health, armor, ammo, etc. pickups by player X are not heard by player Y when this flag is on.
  14. Blocked the “noise” command in client/server mode. Also made sure “movebob” and “stillbob” range from 0 up to 0.25 in client/ server mode.
  15. Extended the “Respawn super” DMFLAG to cover all 4 spheres; not just Invulnerability and Invisibility.
  16. Added a new DMFLAG to block the spawning of the spheres.
  17. Added a new DMFLAG to disable crosshairs.
  18. Enabled the Team DM mode to use teamstarts if available in the map. If no teamstarts are in the map, then dmstarts are used (which means that we can still use any DM map for TDM). A similar thing applies to CTF; if for example there are no teamstarts in the map, then dmstarts will be used.
  19. Added logic to avoid flag spawning unless valid for the given mode and maxteams. This means that we can use CTF maps for TDM too, or 4-team CTF maps for 2-team CTF, etc.
  20. Made the new CTF map convention the “standard” one; added a new DMFLAG to enable backwards compatibility with the method we used in 1.06. This should give map authors enough time to convert the maps to the new standard. This compatibility flag is deprecated and will be removed after some time (most probably in 1.08).
  21. In team modes, spectators can/will use any teamstart or dmstart; this means that CTF map authors don't have to include both kinds of starts in the map.
  22. Improved compatibility with ST CTF maps; several ST-specific items are automatically converted to standard ones (eg., minigun → chaingun, BFG10K → BFG9000, etc). The conversion is (and cannot be) perfect; it's mostly an aid to map authors and developers.
  23. Added a DMFLAG about spawning cards/keys in team modes; when it's on, the cards/keys spawn in the map and the players do NOT have any cards/keys automatically.
  24. Added a DMFLAG to automatically give cards/keys to players in team modes according to their team. The correspondence is:
    • red team → red card
    • blue team → blue card
    • green team → red skullkey
    • white team → blue skullkey
      When this DMFLAG is on, all team players get the appropriate key/card on spawn, and the above 4 cards / keys do NOT spawn in the map. This means that the map authors can designate several areas as available only to members of a specific team. The map author can also use the yellow card or key; they will spawn normally in the map and they will be there for the taking by any team member.
  25. Launcher: gold→white team
  26. Launcher: new dmflags etc in sp launcher
  27. Launcher: adjustment of OS definition for the golden bullets
  28. Launcher: added support for Freedoom and FreeDM for SP and demos.
  29. The program now adjusts the plasma radius depending on the OS Speed dmflag
  30. New connection sound (thx to Mogul)
  31. Added volume control for chat and team chat
  32. zsadm: added system status command.
  33. java applet: maxteams in ctf, no fraglimit in coop or ctf, support for more iwads, maxplayersperteam, minplayers, master_advertise, removebotswhenhumans, autoreset, speed_check, new dmflags, numeric flags.
  34. Added Chiphead's rcon fix
  35. Fixed a bug with the mousewheel allowing faster than normal weapon switching.
  36. Added a “switchtoempty” cvar to allow switching to empty weapon
  37. Implemented Preferred Weapon Order (PWO) (thx to Jtoxification) The “neverswitchonpickup” cvar has been replaced by a new cvar called “pickup_switch_method”. It can be zero (always switch as in normal doom), one (never switch), or two (switch according to the PWO).
  38. Added “getpwo” and “setpwo” console commands to facilitate the adjustment of PWO from macros.
  39. Added a “nextprevpwo” cvar that determines whether the PWO applies to the “weapnext” and “weapprev” commands.
  40. Added an OS weapon switching DMFLAG that disables neverswitch and PWO, and enables switching to empty.
  41. Added a “weapbest” command that switches scans the weapons you have and switches to the one with the highest priority.

ZDaemon 1.07rc1 release (June 9, 2005)

  • Far too many to list. Many OS improvements by Dash, other bug fixes by Danni and Kilgore, LAN advertizing, etc.

ZDaemon 1.06.08 release (November 28, 2004)

  1. Updated the country database in the server
  2. Fixed a problem where the server would not fetch the global ban list if it grew beyond 1500 bytes.
  3. After lots of testing, settled for a default value of 10 for the farthestalpha cvar.
  4. Fixed the freelook problem (centerview command was hosed)
  5. Fixed various compatibility problems on the server to compile under gcc 3.4
  6. Added the display of rank / spread info on the client; also added an option to turn the display on/off.
  7. The client now keeps accurate track about who is a bot and who is human. It also avoids displaying ping values for bots on the scores screen.
  8. Extended the chat_block/chat_unblock/chat_toggle commands to accept a new parameter (“bots”). So you can type for example:
    • chat_block bots
      to turn off all bot chatter.
  9. Added an option to display bots using a different skin; this is useful for mixed bots/humans games. For now, this requires some support from the server side as well (as the bot skin is in the file zbot1.wad); when 1.07 is out, we'll put the skin inside zdaemon.wad
  10. Fixed an old problem with blinking player skins if someone was using a skin and you had turned off the “client skins” option. The fix also reduces the CPU utization on the client.
  11. Added the display of the time and score limits on the scores screen for DM games.
  12. The server now avoids sending a teleport spawn when someone connects (and is a spectator); the client now detects this case and plays the admin/chat sound.
  13. Fixed the camera problem when viewing demos and the watched player is fragged.
  14. Fixed another demo viewing / spying problem with respect to multi- kill and spreee messages. They are now displayed properly according to the player that you're watching at the moment.
  15. Fixed a problem where any entries in a WAD were placed into a separate namespace (and effectively disabled) if there was a skin inside the WAD.

ZDaemon 1.06.07 release (August 15, 2004)

  1. Updated the country database in the server
  2. Fixed a problem on the server where it would not fetch the ban list under certain (rare) circumstances.

ZDaemon 1.06.06 release (August 1, 2004)

  1. Added 2 new events for bot chat:
    • Suicide
    • Death by BFG
  2. Enabled the chat probabilities to be adjustable from bots.cfg.
  3. Also enabled a “global section” inside bots.cfg for values that should apply by default to all bots in the file. Simply specify the desired attribute in the beginning of the file outside of any braces ( { } ).
  4. Fixed a small bug about lead tracking when bots enter / leave.
  5. Fixed a no-camera problem on the client when a spied upon bot was removed

ZDaemon 1.06.05 release (July 27, 2004)

  1. Added a “minplayers” variable in zserv.cfg; it forces bots to be automatically added / removed as humans join / disconnect in order to maintain a minimum desired number of players.
  2. Added a “removebotswhenhumans” variable in zserv.cfg; it applies when minplayers>2 and a second human enters the game; in that case, if “removebotswhenhumans” is greater than zero, then all bots get removed automatically. If “removebotswhenhumans” is zero, then the normal meaning of “minplayers” is effective.
  3. Added an “nbots” cmd. line parameter for desired number of bots.
  4. Fixed an old bot bug: if the last added bot had an id of zero (eg., if you added a bot to the server and then someone connected), then the bot would not move at all. Also enabled bots to view all around (all the time) to make them a bit tougher. THIS MUST BE DONE ON THE CLIENT TOO FOR SP.
  5. Added a watchdog thread on the server to detect infinite loops; if such a condition is detected, the server appends an entry to the “zserv.crashlog” file and crashes (intentionally). In most cases, it will be automatically restarted by the usual zserv monitoring scripts run by server admins.
  6. Fixed an old connection bug that would manifest itself when bots were present on the server. It would screw up the connection and then many weird things could happen (eg., server crash, the player appearing as a bot, a no camera problem, etc.)
  7. Fixed another bug where spectators disabled certain spawn points when the “respawn farthest” dmflag was used. THIS MUST BE DONE ON THE CLIENT TOO FOR SP.
  8. Fixed a bug in the coop respawn algorithm. THIS MUST BE DONE ON THE CLIENT TOO FOR SP.
  9. Avoid spawning decals and splashes on the server; they are useless, slow the server down and produce memory leaks.
  10. Improved the network handling of non-moving things.
  11. Improved the both roaming by making them ignore items they already have (eg., weapons/armor/health). THIS MUST BE DONE ON THE CLIENT TOO FOR SP.
  12. Improved the respawn farthest policy: there is a new cvar in zserv.cfg called “farthestalpha”. It can range between -100 and +100, with +100 being the default. It introduces a controled amount of randomness into the farthest selection policy. If it's equal to -100, then the respawn selection if completely random (identical to not using farthest respawn). If it's equal to +100, then the respawn selection is completely non-random: it will always use the farthest respawn point (identical to what we've been using so far). Values in-between those two extremes let us finetune the desired amount of randomness. THIS MUST BE DONE ON THE CLIENT TOO FOR SP.
  13. Added bot chat and taunts; bots talk on the following events:
    • Entry
    • End of level and they're at first place
    • End of level and they're at the bottom
    • End of level and they're in the middle
    • When they frag someone
      For each event there is a probability of talking (so they will not talk for example on each frag), as well as a fairly large set of strings from which they choose at random. Right now all this stuff is hardcoded; later, we'll place this info into the bots.cfg file for better bot customization. THIS MUST BE DONE ON THE CLIENT TOO FOR SP.

ZDaemon 1.06.04 release (July 15, 2004)

  1. Improved the net code in terms of CPU efficiency.
  2. Fixed the crashes of the win32 version of the server (thx a million bond)
  3. Fixed the log problem with the L@P servers.
  4. Forced the default directory in zsmon to be the one containing the executable.
  5. New dmflags2 for Preferred Weapon Order and Display of target names.
  6. The server determines the country of each player and transmits it to the launcher and client.
  7. Implemented a global ban list without going through the file system.
  8. Added a ban refresh command that will be accepted only if sent by the master.
  9. Decoupled most loops in the server from the MAXPLAYERS compile time constant. The loops now go from 0 up to the last client which should result in lower cpu usage; another result is that it will be quite easier to increase MAXPLAYERS without worrying as much about cpu usage.

ZDaemon 1.06.03 release (July 4, 2004)

  1. Added some code in the server to detect a rare condition when its internal clock is going haywire. This can result in a DDOS to the master. If this happens, the server appends an entry to the “zserv.crashlog” file and crashes (intentionally). In most cases, it will be automatically restarted by the usual zserv monitoring scripts run by server admins.
  2. If the master_advertise flag is on, the server enforces a chat spam limit of 3 messages per 10 seconds.
  3. The “SZ_GetSpace: overflow” sometimes still appears on the server; added more checks to avoid it.

ZDaemon 1.06.02 release (June 3, 2004)

  1. Added some precautions in the server to avoid experience counting when bots are present during a game and also disabled the logging of frags in the frag and weapon logs when either the killer or the victim is a bot.

ZDaemon 1.06.01 release (May 8, 2004)

  1. Fixed a problem in the win32 version of the server where the admin could not change the dmflags/dmflags2 values from the GUI.
  2. Fixed a server problem where a player's disconnection was not “clean” if he was kicked out of the game for any reason.
  3. Fixed a server problem where the red/blue keycards would not work properly in coop mode; the bug was introduced by the CTF code.
  4. Fixed a server problem where it would kick people out upon connection with a turbo message.
  5. Improved a bit the display of the “players” command on the server to show the IP address of each player.
  6. Fixed a minor server bug introduced by the CTF mode where the key cards would appear in DM mode (it was actually harmless).
  7. Fixed a server problem where the keycards appeared in Team DM mode (they shouldn't), they couldn't be picked up (as if the player had them already) but they didn't work (as if he didn't have them).
  8. Fixed the speedcheck problem on the server.
  9. Closed a security hole where some special packets could crash the server.
  10. Removed some server memory leaks that would happen on each player connection.
  11. Cleaned up a bit the server net code.
  12. Fixed an “SZ_GetSpace: overflow” message that would sometimes appear on the server; it would cause some packets to get lost.
  13. Removed the MessageBox() function calls from the Win32 GUI version of the server to facilitate automatic restarts.
  14. Improved the “thing” spawning algorithm to considerably decrease the CPU consumption of the server.

ZDaemon 1.06 Release (Mar. 29, 2004)

  1. Fixed the “chainsaw turbo” bug.
  2. Adapted the “impressive”, “humiliation” and “holy shit” thresholds for CTF (min. difference of 3, 6 and 9 respectively instead of 5, 10 and 15 in DM and Team DM).
  3. Added some server checks to prevent speed hacking. Since they have not been tested as much as the other code, they can be disabled by setting the “speed_check” variable to zero inside zserv.cfg.

ZDaemon 1.06rc5 (Mar. 27, 2004)

  1. Fixed the case where the CTF flags were sometimes floating.
  2. Fixed the color-changing script nuisance with a suggestion by Blunt; the “wait” command has been removed.
  3. Fixed a CTF bug where the flags sometimes looked like keycards.
  4. Yet one more attempt to fix the player display on the win32 server console.

ZDaemon 1.06rc4 (Mar. 26, 2004)

  1. Improved the tracking of the ctf carried flag with respect to its carrier.
  2. Fixed a gravity problem with the ctf carried flags.
  3. Reduced the cpu utilization in ctf mode in both server and client.
  4. Changed the screenshot generation algorithm to make it work better (and faster) even when you have already taken many screenshots.

ZDaemon 1.06rc3 (Mar. 24, 2004)

  1. Fixed the CTF scores screen (made it a bit like team dm)
  2. Added a new “time left” server→client message to inform clients about time remaining on the level. This info is used by the clients to display a count-down timer on the scores screen. The time-left message is trasmitted once per minute to avoid clock drift.
  3. Fixed a ctf message related problem where clients would crash after receiving a ctf-related message; it would usually happen at the beginning/end of a map or when a player switched teams.
  4. Reduced the ctf-related net traffic by letting the client keep track of the flag state visuals (ie., dropped/in base flag).
  5. Added a visual indicator on the HUD when the player is a ctf flag carrier.
  6. Adjusted the position of the ctf flag to be directly behind the carrier and at the same z-position.
  7. Reduced further the ctf-related net traffic by letting clients position the carried flags behind their carriers.

ZDaemon 1.06rc2 (Mar. 20, 2004)

  1. Added the timelimit and timeleft values to the sv_gametype msg.
  2. Cleaned up the CTF flag state msgs. to avoid client crashes.

ZDaemon 1.06rc1 (Mar. 19, 2004)

  1. Taken out CTF intermission screen and music
  2. Got rid of zdctf.wad
  3. Made new zdaemon.wad
  4. Made new zvox2.wad
  5. Fixed problem with Dcanvas::DrawSWrapper: Bad patch (CTF)
  6. Added new CTF flag state images.
  7. Added the wicked sick msg.
  8. Wait 10 seconds after dropping the flag to return it.
  9. Provide for Assist Audio Msg. (to be used in the future)
  10. Changed the CTF event mechanism so that the Taken/Dropped/ Returned/Score Events generate special text and audio messages on the client.
  11. When ctf!=0, force fraglimit to zero so that the game cannot be ended by fragging others. This also avoids the “N frags left” audio msgs.
  12. Keep track of the lead in server and send audio msgs in CTF mode.
  13. Restored individual frags to their original meaning. We'll come up with a good point system for 1.07

ZDaemon 1.05.07 release (Mar. 16, 2004)

  1. Simplified the various log control commands and cmd. line options: none of them takes a filename argument; all log filenames are now predetermined according to the following patterns:
    • frag logs: “frag-YYYYMMDD.log”
    • weapon logs: “weap-YYYYMMDD.log”
    • connection logs: “conn-YYYYMMDD.log”
    • general logs: “gen-YYYYMMDD.log”
      where YYYY is the current year, MM is the month and DD the day of the month.
  2. Simplified the log submission mechanism; nothing is really needed from the admin side (neither a cvar, not any command line option): if the “master_advertise” flag is on, then zserv also turns on the generation of weapon and connection logs.
  3. Added a new cvar in zserv.cfg; it's called “log_disposition” and determines what will happen to logs after the daily rotation. It can assume one of the following values:
    • 0: the logs are left in the zserv directory.
    • 1: the logs are moved to an “old-logs” subdirectory under the zserv directory.
    • 2: the logs are deleted.
      If this cvar is missing or contains an invalid value, the default value of 2 (deletion) will be used.
  4. Removed the “use_master_ban_list” cvar. If the “master_advertise” flag is non-zero, then the master ban list will be fetched and used; otherwise, it will not.
  5. Added a small degree of randomness in the log rotation time, in order to avoid all zservs within a given timezone contacting the master stats server at the same time. The log submission will occur sometime between 10 and 119 seconds after midnight.
  6. Added a new cvar in zserv.cfg to enable CTF mode. The variable is called “ctf” and can take a 0 or 1 value.

ZDaemon 1.05.06 release (Feb. 29, 2004)

  1. Added a new server→client msg. to indicate desired gravity and air control. WARNING: THIS BREAKS OLDER CLIENTS.
  2. Set the default team chat color to brick.
  3. Implemented a new “sayto” client command that sends a chat msg. to a specific player. This command cannot be used by spectators to avoid cheating possibilities. The same applies to private msgs. to members of opposing teams in team mode. WARNING: THIS BREAKS OLDER CLIENTS.
  4. Cleaned up a bit the server code (trimmed around 3000 lines).
  5. Merged Duke's CTF code with the normal version WARNING: THIS BREAKS OLDER CLIENTS.

ZDaemon 1.05.05 release (Jan. 29, 2004)

  1. Added a “chatlog” console command to the client; it activates/ deactivates the logging of all chat, team chat and admin chat messages to the “zdchat.log” file. There is also a corresponding “-chatlog xxx” cmd. line parameter that lets you specify the log filename (the filename parameter is mandatory).
  2. Replaced almost all “zdoom” instances by “zdaemon” in the client; the only places where I left the “zdoom” name is the ini file and some unix directories (for backwards compatibility purposes).
  3. Added the “weaponlog” console command; it produces a frag/weapon log similar to the fraglog, but it also contains info about the weapon used for the frag.
  4. Added the “-wlog xxx” cmd. line parameter. It is equivalent to “+weaponlog” but enables you to specify the log filename.
  5. Fixed a display problem on the Win32 listview control (again).
  6. Improved the joining of teams by bots so that team membership is more balanced.
  7. Fixed a problem where when you added a single bot, it wouldn't move; this happened only in a C/S setting: not in a stand-alone game.
  8. Reorganized the Options menu in the client with a separate Mouse Options page which contains many more options (multiple sensitivities, mouse smoothing, etc.); this part is adapted from ZDoom 2.0
  9. Replaced the text edit control in zserv32 by an rtf control to overcome the 32K limit. Also cleaned up a bit the console writing code. 10. Added a mechanism to automatically submit the server connection and weapon logs to a master stats server. The submission is enabled by keeping those logs (with the -clog and -wlog command line options) and setting 6 variables in the zserv.cfg file. The variables are:
    • sub_conn_flg:
      • 1 enables the submission of the connection log;
      • 0 disables it.
    • sub_weap_flg:
      • 1 enables the submission of the weapon log;
      • 0 disables it.
    • sub_user_id: The user id required for the submission; it must have been assigned by the ZDaemon stats admin.
    • sub_pwd: The password required for the submission; it must have been assigned by the ZDaemon stats admin.
    • sub_svr_id: The server identifier required for the submission; it must have been assigned by the ZDaemon stats admin.
    • sub_url: The submission URL; also assigned by the ZDaemon stats admin.
  10. Added a new “-cfg” cmd. line parameter to the server that lets you specify the server configuration file; if you don't use it, it defaults to “zserv.cfg”.
  11. Fixed a small toolbar problem in the launcher: a small part near the left border was transparent.
  12. Added autorefresh and auto-relogin options to the launcher. If activated, they occur every 10 minutes.
  13. Enforced the current sorting order after you refresh all servers (or they autorefresh) in the launcher.
  14. Fixed a small repainting problem in the credits dialog of the launcher
  15. Marked the launcher sorting column with a slightly different background color.
  16. Added persistence to the sorting method of the launcher.
  17. Added a demo directory setting in the launcher; the recorded demo files will be stored there by default.
  18. Added a “play demo” command to the launcher. It prompts for the demo filename and wad names and runs ZDaemon.
  19. Added a mechanism to fetch a global ban list from the zdaemon servers. This ban list is merged with the local ban list at runtime. The global ban list is fetched upon startup and every midnight (local time). The activation of the mechanism is controlled by the “use_master_ban_list” variable in zserv.cfg
  20. Fixed a race condition in the closing of the launcher's login dialog.
  21. Tightened up a bit the network code of the server.

ZDaemon 1.05.04 release (Dec. 09, 2003)

  1. The rampage and dominating messages were interchanged in local play.
  2. Started the implementation of audio announcements in local play.
  3. Combined the name and ip address in a single line in connection msgs in the connection log.
  4. Fixed a problem with the displaying of names in the zserv32 window.
  5. Fixed a problem with the closing of the dmflags window in zserv32.
  6. Disabled the “Send” button in the zserv32 window when the edit box is empty.
  7. Updated the launcher to accept 4-byte values for the custom avatar IDs.
  8. Fixed a bug in the display of the experience “progress bar” in the Player Info dialog of the launcher. The progress bar would be incorrect when the player's experience was at 65,500 and above.
  9. Improved the scrolling credits display in zlauncher. It now works properly if you switch to another window and then back to the launcher. Also the text quality and scrolling speed have been improved.
  10. Removed the “Master Refresh” command in the launcher; this operation is now done with the “Refresh All” command.
  11. Fixed a signed/unsigned bug in the launcher when a server listens to a port higher than 32767.
  12. Added a “-noinput” cmd. line parameter to the Unix version of zserv which stops the program from polling stdin. This reduces the CPU load significantly when the server is run in the background. On my server it also decreased the ping values significantly (ie., around 40%).
  13. Updated getwad to fetch the search list from the web; also made several other minor search improvements to it.
  14. Enabled the search of IWADs (in the launcher) through getwad.
  15. Added the %DATE%, %TIME% and %WAD% special sequences in the extra parameter string passed to zdaemon from the launcher. These sequences expand to the current date (YYYYMMDD), time (HHMMSS) and wad (WAD1_WAD2_WAD3…) respectively. The %WAD% expansion consists of all non-optional PWADs: no IWAD or optional PWADs are included.
  16. Added a “Hide Unreachable Servers” option to the launcher to remove non-responding servers from server list.
  17. Modified the launcher so that it uses the ini file and zdaemon.exe from its own directory instead of the current directory.
  18. Added a “Record Demo” to the “Server” menu and the context submenu of the launcher. It prompts you for a demo filename and then launches a game with the “-netrecord” option.
  19. Fixed a launcher toolbar problem; it sometimes switched to “text label mode” on video mode changes and some other events.

ZDaemon 1.05.03 release (Nov. 04, 2003)

  1. Extended the information sent by the server to the launcher to also display the operating system and its version.
  2. Disabled the loading of deh and bex patches on the client when connecting to a server.
  3. Fixed a client crash when viewing a recorded demo file that was not properly terminated (eg., if we simply exited the program during recording instead of using the “stoprecord” command).
  4. Enabled 1st or 3rd person view when spying or viewing demos. The switching is done via the “H” key (or whatever you have bound to the “chase” command). The 1st person view exposes some previously hidden bugs in the spying/demo code; we'll take care of them in future releases.
  5. Corrected a few checks for the sizes of various msgs. on the server.
  6. Fixed the problem of playing demos recorded with zdaemon 1.0 up to 1.04; it was due to a change in the 1.05 protocol. Since there is no version identifier inside the demo files, the program *requires* a proper naming convention: the demo files should end with a double extension of “.NNN.zdo” where NNN is a 3-digit number identifying the zdaemon version on which it was recorded. Valid values for NNN are 100, 101, 102, 103, 104 and 105 (so far). If the demo file does not obey this convention, then it will be assumed that it is the same version as the zdaemon executable used to play the demo (which is a BAD idea: it should be avoided). The correct double extension will always be appended to the specified filename when recording new demos.
  7. Updated the launcher to display the version and OS info in the server info dialog.
  8. Updated the launcher to enable the copying of the server address to the clipboard in the server info dialog.

ZDaemon 1.05.02 release (Oct. 31, 2003)

  1. Fixed the server fraglog; it would not properly record the names of the killed/killers. When invoked in coop mode, it displays an appropriate error message.
  2. Got rid of the older connection log code accessible through the “connectionlog” console command; it was replaced by the newer version which is also available through the -clog cmd. line parameter.
  3. Static linking of mfc42.dll and msvcrt.dll in zserv; this removes the last dependency on the MFC DLL for any program in the zdaemon package. There is still a dependency on msvcrt.dll in the client, but we cannot remove it since msvcrt.dll is used by fmod. However, the dependence on msvcrt.dll is not as bad as on mfc42.dll, since msvcrt.dll is a part of recent versions of windows.
  4. Added the “-flog xxx” cmd. line parameter. It is equivalent to “+fraglog” but enables you to specify the log filename.
  5. Added the “-log xxx” cmd. line parameter. It is equivalent to “+logfile xxx”. This addition is made just for uniformity purposes.
  6. Disabled the loading of deh and bex patches on the server.
  7. Implemented automatic log rotation for all 3 zserv logs.
  8. Extended the information sent by the server to the launcher to display the exact build version and date.

ZDaemon 1.05.01 release (Oct. 21, 2003)

  1. Fixed an audio problem where sounds would not play in the client when it was in the background; this bug was introduced in 1.05 by the usage of a newer version of fmod.

ZDaemon 1.05 Release (October 19, 2003)

  1. Changed the master port from 15200 to 15300.

ZDaemon 1.05rc6 (October 18, 2003)

  1. Removed the “connection_logging” variable from zserv.cfg; it is superceded by the “-clog” cmd. line argument which takes a filename as its parameter; this filename specifies the name of the connection log file. Under Unix, you can use the special name “syslog” instead of a filename: this instructs zserv to log connections to the system log.
  2. Fixed the “pings” server command. It was always showing zero ping values.

ZDaemon 1.05rc5 (October 7, 2003)

  1. Fixed a zserv32 bug that would occur if the server banner was too long.
  2. Disabled the automatic loading of zvox.wad; if you want it, you'll have to specify it with the “-file” cmd. line parameter.
  3. Extended a bit the server→launcher protocol to send an optional flag about each loaded wad.
  4. Cleared out player info on the client upon disconnect.

ZDaemon 1.05rc4 (October 2, 2003)

  1. Fixed a bug that would truncate (or overflow) the names of the wad files as reported to the launcher.
  2. Fixed a zserv32 bug where various startup errors would result in a crash instead of displaying an error msg. and exiting the program.

ZDaemon 1.05rc3 (October 2, 2003)

  1. Completed the synchronization of the Windows, Linux and FreeBSD server code. The merging is not fully complete in the sense that there are 2 source distributions: one for Win32 and one for Unix. However, all the source files have been verified to be identical across the 2 versions. The plan is to unify these two distributions for the next zdaemon version (1.06).
  2. Added a command line parameter to the server that restricts incoming connections to a particular IP address; this may be useful on multi-homed machines. Its syntax looks like:
    • ip
      If you use this parameter, then the zserv32 window will display the listening IP address and port; otherwise, it will display just the port.

ZDaemon 1.05rc2 (September 30, 2003)

  1. Improved the zserv32 window resize to remember its size and position across separate invokations of the program.
  2. Modified a bit the program's banner in the zserv32 window to avoid displaying the IP address of the machine; this could result in confusion on multihomed machines.

ZDaemon 1.05rc1 (September 29, 2003)

  1. Fixed a small problem in the banlist code.
  2. Enabled the resizing of the zserv32 window.
  3. Introduced a new server variable called “connection_logging”. If it is non-zero, then all connections to the server are logged either in the zd_connlog.txt file (Win32) or in the system log (Unix). If is is zero, no such info is saved.

ZDaemon Teamplay Beta 07 (September 28, 2003)

  1. Merged Raider's and the Teamplay changes into a single version in preparation for zdaemon 1.05; Raider's improvements include:
    • Consistency checking:
      The client must have exactly the same wad files as the server. The server will check all of the wads that the client is attempting to use before it allows the client to connect. If the client is missing any wads, has any additional wads, or has any wads that are in any way different from the wads the server is using, the server will refuse the connection. This applies to skins as well. You can only use skin wad files if the server is also using them. If the server has skins loaded and the client does not, it will refuse the connection.
    • New cvar added (client):
      The cvar cl_loadskins was necessary to allow the clients to turn on or off the loading of skins. If you have cl_loadskins set to “true”, the ZDaemon client will automatically load any skins you have in the skins folder. This would be a problem if you were to join a server that doesn't have those skins. By default, this cvar is set to “false”.
      To change it, type:
      • cl_loadskins true (enable skins)
      • cl_loadskins false (disable skins)
    • New cvar added (server):
      The server has a new cvar that turns skins on and off. If you have cl_loadskins set to “1”, the ZDaemon server will automatically load any skins you have in the skins folder. By default, this cvar is set to “0”. If you don't specify it in your cfg file, it will not load skins. In zserv.cfg:
      • set load_skins “1” (enable skins)
      • set load_skins “0” (disable skins)
    • Scripting disabled:
      The “exec” command was removed from the client. This was necessary due to the sudden surge in “scripts” that have been showing up lately. There are a few of them, ranging from annoying to outright malicious. As a result, the ability to execute a remote cfg file was disabled.
    • Fixed banlist:
      The ban list feature was broken. If you added more than one ban, the server would crash the next time you started it. This has been fixed.
    • Known bugs/quirks: If you set the “load_skins” cvar in zserv.cfg, it will not recognize that change until the second time you run the server. I have no idea why it behaves this way. We'll try to fix that in the near future. For now, just remember that if you change this setting, you have to run the server, close it, then run it again for it to take effect.
  2. Worked on the WAD consistency checking: the major improvements are:
    • New, very secure checksum algorithm on the entire WAD files. The time penalty (experienced on the client's startup) should be 2 seconds max. in practically all cases. On most computers powerful enough to run zdaemon, the time penalty should be less than a second.
    • Much more detailed and specific messages to the client when something goes wrong; it tells him the exact cause of the problem and advises him to visit a web page for help.
    • Added a server variable called “optional_wads” where the server admin can specify which wads are loaded by the server, but are not really necessary and may not be loaded by the client (eg., audio or skin wads).
  3. Rewrote the entire banlist code from scratch, as it still had some problems.

ZDaemon Teamplay Beta 06 (September 23, 2003)

  1. Improved the map display: it now shows your position in white, while teammate positions are displayed in the team's color.
  2. Fixed a zserv32 bug where the “Quit” command on the system tray would be ignored.
  3. Fixed a zserv32 bug where the /exit or /quit commands on the server console would crash the server.
  4. Added a text message when somebody connects (before he joins the game)
  5. The “Barrels respawn” text in “More Gameplay Options” in zclient was misspelled.
  6. Changed the “Use the attack key to join” msg. to “Press the Fire key to join” when in spectator mode.
  7. Fixed the weapon changing crash when in spectator mode.
  8. Replaced all version numbers by their proper value.
  9. Got rid of the edit box in zserv32's about dialog; it didn't serve any purpose.
  10. Reduced the max. udp packet size from 8192 to 1400; it should improve the communication between the server, client and launcher.
  11. Corrected the checking for available net buffer size for several messages in the server.
  12. Increased the “zoom out” factor in the map, so the map can become small enough that it doesn't require scrolling.

ZDaemon Teamplay Beta 05 (September 19, 2003)

  1. Implemented a new console command “toggleautoswitch” that toggles the value of the “neverswitchonpickup” variable. This can be useful for reducing the keys dedicated to the setting of this variable.
  2. Increased from 15“ to 20” the game intermission in teamplay mode, since there may be more info to read at the end of a teamplay game.
  3. Enabled the display of teammates in the map in teamplay mode.
  4. Replaced the “audioannouncements” boolean variable by the “snd_annvolume” floating point variable. This lets us adjust the volume of the audio announcements, which I think is more flexible. Consequently, the on/off switch in the options screen has been replaced by a slider and the “toggleaudioannouncements” cmd. has also been dropped.
  5. Simplified a bit the server→launcher protocol.
  6. Fixed a bug in the team switching code when a player would become a spectator by switching to a non-playing team.
  7. When all members of playing teams disconnect, the team scores are automatically reset.
  8. Added some chat spam control: it is activated by the “spam_window” and “spam_limit” variables in zserv.cfg; the first one is expressed in seconds, and the second in number of messages allowed with the spam_window. You can disable this feature by setting them to zero.
  9. Added a chat blocking mode; it can be used to block chat messages either from all players, or from spectators, or by specific players. There are 4 related console commands:
    • chat_block
    • chat_unblock
    • chat_toggle
    • chat_reset
      In the first three commands, the parameter can be either the special string “all” meaning all players, either the special string “spec” (or “spectators”) meaning players in spectator mode, or the string “#NNN” where NNN is a player number (available from the “players” command), or the string “$XYZ” where XYZ is a player's name, or the string “@NNN” where NNN is again a player number; in the last case, the network address of the specified player is blocked.
      All blocks are valid only for the current zdaemon session. They are reset as soon as you exit the client.
      IMPORTANT: the blocks are additive: if you issue the command: “chat_block #1”
      (ie., you want to block player 1) and then issue the command: “chat_unblock all” then player 1 is still blocked, since he has a specific block which overrides any other block commands. If you really want to lift all blocks, use the “chat_reset” command.
      I realize that this policy is a bit counter-intuitive; I'll try to improve it for the next beta.
      If you block a player by ID, then the block is lifted as soon as the player disconnects; otherwise, you would also be blocking subsequent players who happen to be assigned the same server slot.
  10. Fixed a bug in the client where chat messages would generate a sound even when you had set the msg level higher than the chat threshold.
  11. Fixed another bug in the client where the last two message levels (chat and team chat) were not displayed in the Options menu.
  12. Changed a bit the announcement strategy: most announcements now are not queued; they are played directly as they occur. Only practice will show if this is a better strategy.
  13. Improved a bit the “say” and “say_team” commands to allow their parameters without quotation marks. However, you still cannot use semi-colons (;) since they are understood by the doom parser to separate commands; if you need to use a semi- colon, enclose it in double quotes.

ZDaemon Teamplay Beta 04 (Sep. 10, 2003)

  1. Implemented software support for audio announcements; the server watches for certain events, and when they happen, it transmits the appropriate code to the client; the client can then play an audio clip for each such event. The supported events are:
    • “Prepare to fight” (4 seconds before the game starts)
    • “Fight” (at the start of the game)
    • “You win”, “You lose”, “It's a tie” (at the end of the game)
    • “Impressive”, “Humiliation”, “Holy Shit” (at the end of the game when the score differential is large.
    • “1 minute left”, “5 minutes left”, “1 frag left”, “2 frags left”, “3 frags left”
    • “You have taken the lead”, “You have lost the lead”, “You are tied for the lead”.
    • “Teammate kill”
    • “Suicide” (or a kill by the environment, such as lava).
    • “Double kill”, “Multi kill”, “Ultra kill”, “Monster kill”.
    • “Killing spree”, “Rampage”, “Dominating”, “Unstoppable”, “Godlike”.
      Note that the audio announcements are *queued* on the client side, so an event may generate multiple such announcements and you will still be able to understand them.
      For this beta I concentrated on the software side of this feature and cannot offer any audio clips yet. However there exists a special WAD file (called zvox.wad) that contains sample sounds from Q3 and UT; this file can be used for testing this feature. However, I cannot distribute it for obvious copyright reasons. If you know where to find this file, then simply place it in your wad directory.
  2. Improved the team score display to better handle long player names and unbalanced team memberships.
  3. The server now transmits the fraglimit and teamscorelimit variables to the client, so they can be used for the team score display.
  4. Added a boolean console variable called “audioannouncements” to control the playing of such announcements. If set to true (the default value) the announcements will play; otherwise, they will be silenced.
  5. Added a console command “toggleannouncements” that toggles the value of the “audioannouncements” variable; this makes it easy to turn on/off the audio announcements by pressing a key (ie., you can bind the “toggleannouncements” command to a key).
  6. Enabled the toggling of the audio announcement from the GUI; if you go to the “Options” screen, you'll see the “Audio Announcements” option.
  7. When in teamplay mode, the player's HUD shows the team frags instead of the individual frags.
  8. When you use fullscreen mode in teamplay, you can still see your team color as background to the frag value (which would be team frags instead of individual frags).
  9. Enabled spying on teammates; spectators can always spy on any- body; active players (in teamplay mode) can only spy on members of their own team. If either the spy or the “spied” player change teams while spying, the spying is stopped immediately.
  10. Implemented the “maxteams” server variable (in zserv.cfg); it controls the number of teams that can actually participate. If for example, you set it to “2”, then only members of the first 2 teams (red and blue) can join the game; members of the other teams can spectate but not join.
  11. Implemented the killing of switchers; if somebody switches teams in teamplay mode, he is instantly killed (minus one frag and -5 exp. points); the team scores are not affected in any way. Of course, the killing happens only for live players; there is no switching penalty if you are dead or spectating. Furthermore, if the switcher becomes a member of a non-playing team, then he automatically becomes a spectator too.
  12. Enabled the loading/saving of the “developer” console variable in zdoom.ini (it was always there, but it was not saved). This simplifies a bit the debugging of the client.
  13. Fixed the “turn180” command; it should now work properly (and instantly) no matter whether you play or spectate and no matter the speed of your computer.
  14. Fixed a zserv annoyance; the server now never reads or writes zdoom.ini; all its configuration is in zserv.cfg
  15. Fixed a zserv32 bug, where the player names, scores and time in the game would not get properly updated.
  16. Fixed another zserv32 bug where the server would not close when you pressed the Esc key and then answered “Yes” (in the “Are you sure…” question).
  17. Fixed the “no camera” problem if you were spying on somebody and that person disconnected. Now instead of the “no camera” message, you will simply return to your original view. You may *still* get the “no camera” message, but this would be due to network problems or possibly another bug. At least, this bug has been fixed.
  18. Provided a solution for hosting the server in a NAPT environ- ment: the heartbeat message from the server to the master server now contains the actual listening port of the server; ideally, the master server should use that value instead of checking the actual port used to send the heartbeat message (the actual port may have been translated by NAPT; it *is* a standard procedure). This change does *not* create any incompatibility between the server and the current version of the master server. This approach *may* be used in the future; the master-server↔server protocol remains the same for the time being.
  19. If the “force_password” variable (in zserv.cfg) is non-zero, but the actual password is empty, then the server does not enforce any password. This bug fix was contributed by Bond.
  20. Extended the server→launcher protocol by providing more detailed info about the players and teams. This was again contributed by Bond and we will soon see it in upcoming versions of IDE. This change does *not* create any incompatibility between the server and current versions of launchers.

ZDaemon Teamplay Beta 03 (Aug. 26, 2003)

  1. The server now transmits the value of the teamdamage variable to the clients (so everybody can check the server value).
  2. Add some more resetting to zero when a player disconnects to avoid a rare server displaying the wrong number of frags when somebody disconnects and another player reconnects in the same “server slot”.
  3. Added some more logic to avoid redundant team change messages.
  4. The new beta version does not allow for any loners; everybody connected to the server (while it is in teamplay mode) will belong to a team.
  5. Redesigned the team score display page; it is now almost the same as that of UT.
  6. Disabled team messages from spectators; it would facilitate cheating.
  7. Fixed a nasty bug in the zdaemon client which gets triggered whenever there is % character in a player's name. It could crash the client if fed the player's name contained the right sequence of characters (eg., %s).
  8. Implemented a new face background in the status bar; when teamplay is on, the face background takes the color of your team.
  9. Fixed a zserv32 bug where it would not show the players' names in its listview control.

ZDaemon Teamplay Beta 02 (Aug. 20, 2003)

  1. Fixed a zserv bug where the server would crash when contacted by a launcher, if the master_advertise flag was zero. This is unrelated to the TeamPlay features.
  2. Removed any contact between the server and the master server when the master_advertise flag is zero. This is unrelated to the TeamPlay features.
  3. Improved the Team Score calculations; right now they are almost identical to those of UT.
  4. Fixed some bugs in the score calculations to correctly display the end of sprees. This is unrelated to the TeamPlay features.
  5. Fixed a bug in the Team Score Display; sometimes, it would not display a team when its score was zero.
  6. Fixed a bug in zserv that would appear when the wadnames passed to the server contained path information. In extreme cases, the server would crash.

ZDaemon Teamplay Beta 01 (Aug. 17, 2003)

  1. Implemented the Joining/Switching of teams.
  2. Implemented the enforcing of team colors.
  3. Implemented the Team Chat commands.
  4. Implemented the Team selection from the GUI
  5. Implemented the Team Score calculations.
  6. Implemented the Team Score display in the clients.
  7. Implemented the “resetscores” rcon command.
  8. Implemented the “teamscorelimit” server parameter.
  9. Fixed a zserv32 bug, where the server would often crash upon shutdown; the problem was that a background thread was not properly terminated.

ZDaemon 1.04 (April 12, 2003)

  1. Various bugfixes and improvements
  2. Private and passworded servers now allowed

ZDaemon 1.03 (December 11, 2002)

  1. Htmlview launches as a separate tab to server list
  2. Servers now report the maxclients cvar correctly
  3. Detailed server info now shows url, email. etc.
  4. Falling damage no longer causes red-palette spasms
  5. Fixed multiple “oof” sounds when oldschool sounds are off
  6. 'rcon_enable' added to enable/disable rcon for servers
  7. Rampage and Domination were mixed up - fixed
  8. Avatars: Ralphis, Slayer, and more!

ZDaemon 1.02 (November 29, 2002)

  1. Fixed text bug
  2. Dumped LZO packet compression
  3. Master server now accepts player updates to their profiles

ZDaemon 1.00 (November 25, 2002)

  1. New port base! Based on ZDoom 1.23 beta 33
  2. New DMFLAGS2:
    • Monsters can be twice as strong or powerful
    • Coop DMFLAG2 to keep your collected keys
    • Respawn protection
    • Nice weapons in coop modes.
    • Option for respawn same spot as death
    • DMFLAG2 allows players to drop weapons
    • Oldschool weapon pickup sounds
  3. Touched up silent bfg to match doom2.exe
  4. Maxplayers and maxclients are now realtime CVARS
  5. Spectators can now talk to other players
  6. Demo recording/playback now supported
  7. New scoreboard
  8. Pings are now 100% accurate
  9. Players can now see how long they've been in the game
  10. Brand new launcher!
  11. Launcher can now automatically search your hard drive for any directory containing WAD files
  12. Custom Linux paths should no longer get in the way
  13. Players now must create accounts which keeps their personal stats
  14. Experience points / Levels. Players move up in levels by gaining experience points. +2 XP for every kill, -1 for every death. -5 for suicides.
  15. ZCajun bot support
  16. Tons of other things I've forgotten!

ZDaemon 0.99 (July 05, 2001)

  1. NEW Silent BFG dmflag added (DF_SILENTBFG=524288)
  2. Launcher now has an auto-update feature so now you'll get the latest and greatest versions of ZDaemon the second they come out! (Win32 only)
  3. Fixed “oof” sounds not being played against normal walls and linedefs.
  4. Fixed wrongful flood kicks
  5. NEW DMFLAG - Deathmatch items appear in coop games (DF_COOPDMWEAPONS=1048576)
  6. Server now remembers the last map it loaded in coop games in case the server crashed - it will load that map again. No more starting all over again when a server crashes.
  7. Fixed some miscalculations on buffer checks with the server during period of client connection.
  8. ZDaemon client now has frequent buffer checks to prevent an overflow screwing things up.
  9. Small bug that showed your character while in spectator spy mode is fixed.
  10. Much more stability in connecting to servers. ZDaemon can now handle if a packet is lost while connecting.
  11. Parse errors and bad server messages on the client will no longer disconnect the player, but instead drop the packet.
  12. Spectators can no longer telefrag players on connect
  13. Security added for players using “cheat wad” hacks ('mapcheckdifference' cvar in server console)
  14. Servers now have automatic kicks for abusive flooding attacks ('floodrate' cvar in server console)
  15. When spying on a player, you can see their health now
  16. The player now properly animates when viewing in chasecam. (not too fast anymore)
  17. Deathmatch weapons now appear in coop modes (much rejoice!)

ZDaemon 0.96 (June 18, 2001)

  1. We have full and complete docs! Send your blessings to myk
  2. Chasecam cheat support added for coop games.
  3. Viewing your character in chasecam mode will no longer look like your character is going into convulsions
  4. Skins can now be toggled on or off via the ZDaemon client in the menu Main Menu→Options→Client/Server options
  5. A bug that caused floors to sometimes be mapped with the wrong texture as a result from different indexing numbers is fixed.
  6. That annoying door bug that sometimes wont let players who are in the game open doors is fixed (not tested)
  7. 'mode:' debug text taken out from the server (oops)
  8. Spectators cant land on other Actors
  9. Other players cant land on top of spectators while playing
  10. Servers update the master server now every 15 minutes

ZDaemon 0.95 (June 02, 2001)

  1. New server command lines -maxplayers -maxclients can determine how many connections your server can accept and how many players can actually join the game
  2. Skinned “fist” sound now works
  3. New default skin pack! (Zskins.wad)
  4. 'neverswitchonpickup' once again allowed
  5. Strange spontaneous client & server crashes fixed (I hope)
  6. Server spewing out multiple “Player dies” when joining a game from spectator fixed.
  7. Spying a player who disconnects will no longer crash your client
  8. “oomph” sound fixed
  9. Respawn bug no longer causes a crash
  10. Demon sounds work properly now
  11. New Multi-wad support for servers (up to 4 wads)
  12. Full skin support
  13. Doomguy's face is now animated properly on the client
  14. Lines tags that modify sector light levels now works
  15. Floors that raise and change texture are now fixed
  16. Full support for spectator modes has been added.
  17. Server MOTD has been added to view while in spectator
  18. New launcher now finds WADs in custom directories
  19. Launcher now saves the extra ZDaemon parameters in the CFG file now
  20. Teams are automatically chosen in teamplay modes
  21. New 'connectlog' command for the server will log every connection attempt made
  22. New 'max_rate' command will limit the clients rate from lagging servers
  23. Skins are now looked up by name instead of index number
  24. A lot of code removed to drop clients on sv_parsecommands, and overflowed buffers. If these errors occur, ZDaemon just drops the packet instead of disconnecting the client entirely.
  25. Player ghosts are have been fixed in spectator mode
  26. Dead players are removed totally from the server to reduce clutter, just looks better.
  27. Somehow, deathmatch settings got b0rked, fixed up now.
  28. Even more stability reducing crashes and dropped clients and errors and crap.
  29. Updates to the 'zserver.cfg' file that requires server admins to have an address
  30. Players can no longer spy spectators

ZDaemon 0.92 (March 12, 2001)

  1. ZLauncher will now launch at the correct IWAD location

ZDaemon 0.9 (March 11, 2001)

  1. MUCH more stability! (I have yet to find a crash)
  2. ZLauncher now searches the extra directories for IWADs as well
  3. Stupid player ghost respawn bug crash fixed
  4. Player spy - 'spynext' and 'spyprev' works again in coop modes
  5. Screenshots work once again
  6. Fast monsters are fixed for DMFLAGs and Nightmare modes
  7. Respawning works again for DMFLAGs and in Nightmare modes
  8. Arch-Vile no longer spawns client side ghosts
  9. R_RenderPlayer view without a player→camera fixed
  10. D_Display crash fixed
  11. Chainsaw sound fixed
  12. Wildcards added for short server ban IPs
  13. Client and server stay in check with the number of Actors each side has greatly reducing the risk of crashing the client or server
  14. Revenant missiles fixed
  15. Revenant no longer spawns client side missiles
  16. Pain Elemental no longer spawns client side lost souls
  17. “Ass Missiles” fixed
  18. Arachnotrons can now shoot their deadly plasma! PH33R!
  19. No more client or player ghosts hanging around
  20. Intermission text taken out for seamless coop. play (and no more crashing)
  21. Frequent server buffer checks to prevent a SZ_GetBuffer error
  22. ZLauncher now shows player information and has options for 'Detailed Server Information'
  23. Can now specify additional directories to search for WADs
  24. More client error checking to prevent bad data and causing a crash

ZDaemon 0.8 (February 20, 2001)

  1. Packet compression UDP network code. Runs a lot faster!
  2. New ZDaemon Launcher
  3. Launcher can download files from any http or ftp site
  4. Better and more reliable server information
  5. Small fixes to reduce crashing
zdaemon/info/changelog.txt · Last modified: 2021-05-19 11:24:36 (21 months ago) by jcd