Jump to content

Version history: Difference between revisions

81,435 bytes added ,  5 September 2018
Add latest 3.1 info
(Remove useless =)
(Add latest 3.1 info)
(28 intermediate revisions by the same user not shown)
Line 13: Line 13:
|- style='background: #b3ffb3'
|- style='background: #b3ffb3'
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| '''2.1.2'''
| '''3.0'''
| Sep 07, 2017
| [http://zandronum.com/downloads/zandronum3.0-win32-installer.exe Installer]
| [http://zandronum.com/downloads/zandronum3.0-win32-base.zip Zip]
| [http://zandronum.com/downloads/zandronum3.0-linux-x86.tar.bz2 x86]
| [http://zandronum.com/downloads/zandronum3.0-linux-x86_64.tar.bz2 x86_64]
| [http://zandronum.com/downloads/zandronum3.0-macosx.dmg Installer]
| <code>ZA_3.0</code>
|-
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| 2.1.2
| Jul 19, 2015
| Jul 19, 2015
| [http://zandronum.com/downloads/zandronum2.1.2-win32-installer.exe Installer]
| [http://zandronum.com/downloads/zandronum2.1.2-win32-installer.exe Installer]
Line 175: Line 187:
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v098b_linux-base.tar.bz2 base] + [http://www.skulltag.com/download/files/release/st-v098a_freebsd.tar.bz2 i386 server]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v098b_linux-base.tar.bz2 base] + [http://www.skulltag.com/download/files/release/st-v098a_freebsd.tar.bz2 i386 server]
| <code>ST_0.98a</code>
| <code>ST_0.98a</code>
|}
|-
 
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
=== Betas ===
| 0.97d5 security update 1
{| class='wikitable' style='width: 100%'
|
! colspan="2" | Version
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097d5_security_update_windows.zip Patch Zip]
! Beta
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097d5_security_update_ubuntu.tar.bz2 Ubuntu patch tar.bz2]
! Released
! [[File:ZDoom Icon 16x16.png|16px|ZDoom base]]
! [[File:OpenGL logo (Nov14).svg|16px|GZDoom base]]
! colspan="1" | [[File:Windows_logo_-_2012.svg|16px|Windows]]
! colspan="2" | [[File:NewTux.svg|16px|Linux]]
! [[File:OS_X_El_Capitan_logo.svg|16px|OS X]]
! colspan="2" | [[File:Freebsd-sphere-logo.png|16px|FreeBSD]]
! [[File:Mercurial logo cropped.svg|16px|Source code tag]]
|- style='background: #ffffcc'
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| '''4.0'''
|
|
| <code>master</code>
| <code>master</code>
|
|
|  
|  
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097d5_security_update_freebsd.tar.bz2 i386 server patch tar.bz2]
| <code>ST_0.97d5-security-update-1</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97d5
|
|
| [http://www.skulltag.com/download/files/release/installer97d5.exe Installer]
| [http://skulltag.com/download/files/release/st-v097d5_windows.zip Zip]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097d5_linux-base.tar.bz2 base] + [http://www.skulltag.com/download/files/release/st-v097d5_ubuntu.tar.bz2 Ubuntu]
|
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v098a_linux-base.tar.bz2 base] + [http://www.skulltag.com/download/files/release/st-v098a_freebsd.tar.bz2 i386 server]
| <code>ST_0.97d5</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97d4
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097d4-3_windows.zip Zip]
| [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_linux-base.tar.gz base]
| [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_debian.tar.gz Debian] <br/> [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_fedora.tar.gz Fedora] <br/> [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_gentoo.tar.gz Gentoo] <br/> [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_knoppix.tar.gz Knoppix] <br/> [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_slackware.tar.gz Slackware] <br/> [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_ubuntu.tar.gz Ubuntu]
|
| colspan="2" | [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_linux-base.tar.gz base] + [http://www.skulltag.com/download/files/release/skulltag-v097d4-3_freebsd.tar.gz i386 server]
| <code>ST_0.97d4</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97d3
|
| colspan="2" |
|
|  
|  
| see [https://bitbucket.org/Torr_Samaho/zandronum-zdoom-sync zandronum-zdoom-sync]
|- style='background: #ffffb3'
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| '''3.0'''
| '''160814-2010'''
| Aug 14, 2016
| 2.8pre-441-g458e1b1
| 1.8.6
| [http://zandronum.com/downloads/testing/3.0/ZandroDev3.0-160814-2010windows.zip Zip]
|
| [https://csnxs.uk/archive/id/doom/sourceports/zandronum/builds/linux/betas/zandronum-linux-x86_64-3.0-alpha-160814-2010.tar.gz x86_64]* / [https://csnxs.uk/archive/id/doom/sourceports/zandronum/builds/linux/betas/zandronum-linux-x86_64-3.0-alpha-160814-2010-with-debug.tar.gz debug]*
|
|
| colspan="2" |
| <code>ST_0.97d3</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97d2
|
|
| [https://csnxs.uk/archive/id/doom/sourceports/zandronum/builds/freebsd/betas/zandronum-server-freebsd-x86_64-3.0-alpha-160814-2010.txz x86_64 server]* / [https://csnxs.uk/archive/id/doom/sourceports/zandronum/builds/freebsd/betas/zandronum-server-freebsd-x86_64-3.0-alpha-160814-2010-with-debug.txz debug]*
| colspan="2" |
| <code>4f775b509b10</code>
|- style='background: #ffffcc'
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| '''2.2'''
|  
|  
|  
|  
| 2.5.0 (SVN 2560)
|
| SVN 900
| colspan="2" |
| <code>ST_0.97d2</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97d
|
| colspan="2" |
|  
|  
|  
|  
|
|
| colspan="2" |
| <code>ST_0.97d</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97c3
|
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097c3.zip Zip]
|
|
|
| colspan="2" |
| <code>ST_0.97c3</code>
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.97c2
|
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097c2.zip Zip]
|  
|  
| see [https://bitbucket.org/Torr_Samaho/zandronum-stable zandronum-stable]
|  
|}
|
 
| colspan="2" |
== Changelogs ==
| <code>ST_0.97c</code> or [http://www.skulltag.com/download/files/release/st-v097c2_src.zip source zip]
=== Development ===
|-
'''Note:''' Because the versions under this section are still undergoing development, these changelogs might be slightly outdated. It's best to keep up to date via the #zatesting channel on [[IRC]] or checking the history file in the source repository time to time.
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
 
| 0.97c
==== 3.0 ====
|
* Updated Zandronum's (G)ZDoom base to ZDoom 2.8pre-441-g458e1b1 / GZDoom 1.8.6. [Torr Samaho]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097c.zip Zip]
* Rewrote support for preferred weapon order. Weapon info is now automatically looked up, the ORDERDEF lump has been removed. [Dusk]
|
* Generalized the rune system. Any rune can be used as a powerup (including spread, prosperity and reflection, which are now available as powerups), and any powerup can be used as a rune. [Dusk]
|
* Added NamedRequestScriptPuke, named variant of RequestScriptPuke. The two functions can now take 1-5 parameters, thus supporting 4 script arguments. [Dusk]
|
* Added ACS time and date access functions SystemTime(), GetTimeProperty and Strftime(). The return value of SystemTime() may be overridden by the user with the new CCMD acstime. [Dusk]
| colspan="2" |
* Quad-buffered stereo / 3D Vision support can now be toggled with the new CVAR gl_quadbufferedstereo (default false). [Torr Samaho]
| <code>ST_0.97c</code>
* The warp cheat now works online and can be used by spectators even if sv_cheats is false. [Dusk]
|-
* Being banned from a server now shows the server's contact email address. Being masterbanned now shows a clearer message that directs to the forums. [Dusk]
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* Players' positions in the join queue are now rendered on the scoreboard. [Dusk]
| 0.97b
* The internal server browser now automatically loads the wads of the selected server when joining. For this, all wads need to be in a place where they can be found with the '-file' command line option. In the browser menu, the left and right keys allow to scroll through the list of filtered servers. [Torr Samaho]
|
* The 'Join the game' command key used by spectators is now customizable in the 'Customize Controls' menu. [Edward-san, Dusk]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v097b.zip Zip]
* The default 'authhostname' CVAR has been changed to the official zandronum game authentication server ( auth.zandronum.com:16666 ). [AlexMax, Edward-san]
|
* BOTINFO now allows to define more than 128 bots. [Torr Samaho]
|
* Chat now features a movable cursor, allowing text insertion/deletion from elsewhere than just the end. [Dusk]
|
* Chat preview is now rendered on multiple lines, if necessary. [Dusk]
| colspan="2" |
* Chat now remembers the ten previously sent messages that can be brought up with up/down arrow keys. [Dusk]
|
* Chat can now tab complete player names. [Dusk]
|-
* Clients' account names are now visible in the output of CCMD "playerinfo", unless the player hides it with the new CVar cl_hideaccount. The server can always see the accountname from playerinfo. [Dusk]
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* Added a mechanism to safe login credentials under Windows using the Windows Credential Manager aka Windows Vault. The credentials can be stored using the new CCMD 'login_add'. A default user name can be specified with the new CVAR 'login_default_user'. [Torr Samaho]
| 0.96f
* Fixed: Newly connecting clients were not properly informed about the secrets that were already revealed. [Torr Samaho]
|
* Fixed: Resurrect cheat didn't work online. [Dusk]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v096f.zip Zip]
* Fixed: Turbo cheat didn't work online. [Dusk]
|
* Fixed: Kill [class] cheat didn't work online. The kill monsters cheat can also be used by clients if sv_cheats is true. The server can use the kill [class] cheat anytime, like with kill monsters. [Dusk]
|
* Fixed: Logfiles would sometimes contain timestamps in the middle of lines. [Dusk]
|
* sv_shotgunstart is now respected in non-cooperative gamemodes. [Dusk]
| colspan="2" |
* Fixed: Take cheat didn't work online. [Dusk]
|
* Fixed: An invalid "winlimit hit" message would be displayed on map change in possession. [Dusk]
|-
* Fixed: The internal server browser didn't list all of the compatible, available servers. [Torr Samaho]
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* Fixed: A_CheckSight would not jump if a spectator was in the line of sight of the calling actor. [Dusk]
| 0.96e
* Fixed: Using kick_idx, ignore_idx, unignore_idx, getip_idx, kickfromgame_idx and ban_idx with an invalid player index assumed a default of player 0. [Dusk]
|
* Fixed: SpawnDecal did not work online. [Dusk]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v096e.zip Zip]
* Fixed: the 'take inventory' server command informed the clients by using the inventory class string instead of the much cheaper network id. Thanks to Siferah for spotting and reporting it. [Edward-san]
|
* Fixed: the 'spawn player' server command used 1 more byte than needed. [Edward-san]
|
* Fixed problems of the Doom status bar with high res font replacements. [Torr Samaho]
|
* Fixed: ACS function PlaySound did not work online. [Edward-san]
| colspan="2" |
* Fixed: Bots on a large map may freeze the game. [Torr Samaho]
|
* Fixed: clients would play D'Sparil's attacks sound even when the attacks didn't start because there was no target to attack. [Edward-san]
|-
* Fixed: clients weren't informed to play the heretic Knight attack sounds when it throws the axes. [Edward-san]
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* Fixed: clients were told to play the 'poison cough' sound even when the poisoning by flechette didn't happen (for example because the player is invulnerable). [Edward-san]
| 0.96d
* Fixed: clients were not informed correctly about the actors being in alert when another actor is hit by a dagger attack. [Edward-san]
|
* Fixed: clients would play the sounds from the world-activated ACS function ActivatorSound differently from offline. [Edward-san]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v096d.zip Zip] or [http://www.skulltag.com/download/files/release/st-v096d-FreeDoom.zip with FreeDoom]
* Fixed: the server didn't inform the clients to not apply the DROPPED flag to level-spawned items which don't have it by default. [Edward-san]
|
* Fixed: clients were not informed correctly about the morphed player's morph style. [Edward-san]
|
* Fixed: clients were not informed to play the active sound of a PowerProtection powerup. [Edward-san]
|
* Fixed: clients couldn't hide the RaiseAlarm item released by dying NPC actors. [Edward-san]
| colspan="2" |
* Fixed: clients were not informed correctly about actors being affected by A_NoBlocking invoked by an item pickup. [Edward-san]
|
* Fixed: HUDMessage messages weren't cleared on map resets. [Edward-san]
|-
* Fixed: Player start types were selected based on the CVARs deathmatch and teamgame instead of the GAMEMODE flags DEATHMATCH and TEAMGAME. [Torr Samaho]
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* Fixed: A titlemap run with gamemode cooperative and dead spectators was not started correctly. [Edward-san, Torr Samaho]
| 0.96c
* Fixed: The ACS function ReplaceTextures didn't show an effect for clients already in the game. [Torr Samaho]
|
* Fixed: Certain code pointers like A_PlaySound didn't work on MorphFlash/UnMorphFlash online. [Torr Samaho]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v096c.zip Zip] or [http://www.skulltag.com/download/files/release/st-v096c-FreeDoom.zip with FreeDoom]
* Fixed: Clients played the Archvile resurrect sound twice. [Edward-san]
|
* Fixed a network inconsistency with Archvile-like monsters which miss the Heal state and use A_VileChase to eventually resurrect the corpses. [Edward-san, Torr Samaho]
|
* Fixed: clients didn't handle properly resurrecting monsters in rare occurrences. [Edward-san]
|
* Fixed the wrong thingz positioning after an offline map reset. [Torr Samaho, Edward-san]
| colspan="2" |
* Fixed: clients mispredicted NOGRAVITY things, attached to the ceiling, when pushed by something. [Edward-san]
|
* Changed: Spectators can now interact with gravity and use the fly/land commands. [Leonard]
|-
* Save games now contain information about the renderer used to create the save. This allows to print a proper error message when an incompatible save is tried to be loaded. [Torr Samaho]
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* Clients don't error out anymore when encountering a division by zero in a DECORATE expression. Instead, a one time warning is printed on the first occasion and the result is assumed to be zero. This is necessary since clients can encounter this in valid DECORATE code due to Zandronum's jump handling. [Torr Samaho]
| 0.96b
* Changed the dmflags values to match the ZDoom values to resolve compatibility problems with the updated ZDoom base and future ZDoom updates. Launchers and config files need to be updated to account for this change. [Torr Samaho]  
|
* Removed ping unlagged as gametic unlagged has superceded it. [Dusk]
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v096b.zip Zip] or [http://www.skulltag.com/download/files/release/st-v096b-FreeDoom.zip with FreeDoom]
* sv_nodrop is now a dmflag. [Dusk]
|
* Merged sv_nokill and sv_disallowsuicide into one dmflag with two names. [Dusk]
|
* The CVARINFO error message triggered when an existing CVAR in the ini conflicts with CVARINFO now instructs the user to clean the ini. [Torr Samaho]
|
* The server now displays the IP address of the player upon connection and disconnection in log messages. [Dusk]
| colspan="2" |
* ZDoom changed the jumping physics in ZDoom SVN revisions 2238 and 2970. The old jumping behavior known from Skulltag can be restored with the new CVAR compat_skulltagjumping. [Torr Samaho]
|
* con_virtualwidth and con_virtualheight now default to 640 and 480, respectively. [Dusk]
|-
* kickfromgame and kickfromgame_idx have been renamed to forcespec and forcespec_idx, respectively, though the old names still exist for compatibility with e.g. aliases. Same also with the ACS function KickFromGame, whose new name is ForceToSpectate.
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
* A new non-fatal 'Script Error' message will be printed if in a MAPINFO episode definition it's present either 'botskillname' or 'botskillpicname' but not 'botepisode'.
| 0.95k
* The CVARs gl_render_things, gl_render_walls and gl_render_flats are now restricted to beta builds. [Torr Samaho]
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095k.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95j
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095j.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95i
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095i.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95h
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095h.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95g
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095g.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95f
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095f.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95e
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095e.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95d
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095d.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.95c
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v095c.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.94c
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v094c.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.94b
|
| colspan="2" | [http://www.skulltag.com/download/files/release/st-v094b.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.93
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta93.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.92
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta92.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.91
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta91.zip Zip]
|
|
|
| colspan="2" |
| [http://www.skulltag.com/download/files/release/st-v091_src.7z source zip]
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.90
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta90.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.81
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta81.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.8
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta8.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.71
|
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta2.zip Zip]
|
|
|
| colspan="2" |
|
|-
| style='width: 20px; text-align: center;' | [[File:SkullTag Icon.png|16px|Skulltag]]
| 0.70
| Jun 11 2000<sup>?</sup>
| colspan="2" | [http://www.skulltag.com/download/files/release/stbeta1.zip Zip]
|
|
|
| colspan="2" |
|
|}
 
=== Betas ===
{| class='wikitable' style='width: 100%'
! colspan="2" | Version
! Beta
! Released
! [[File:ZDoom Icon 16x16.png|16px|ZDoom base]]
! [[File:OpenGL logo (Nov14).svg|16px|GZDoom base]]
! colspan="1" | [[File:Windows_logo_-_2012.svg|16px|Windows]]
! colspan="2" | [[File:NewTux.svg|16px|Linux]]
! [[File:OS_X_El_Capitan_logo.svg|16px|OS X]]
! colspan="2" | [[File:Freebsd-sphere-logo.png|16px|FreeBSD]]
! [[File:Mercurial logo cropped.svg|16px|Source code tag]]
|- style='background: #ffffb3'
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| '''3.1'''
| 3.1-alpha-180901-1533
| Sep 01, 2018
| 2.8pre-441-g458e1b1
| 1.8.6
| [https://zandronum.com/downloads/testing/3.1/ZandroDev3.1-180901-1533windows.zip Zip]
|
|
|
|
|
| see [https://bitbucket.org/Torr_Samaho/zandronum-stable zandronum-stable]
|- style='background: #ffffcc'
| style='width: 20px; text-align: center;' | [[File:ZanLogo.png|16px]]
| '''zdoom-sync'''
|
|
| <code>master</code>
| <code>master</code>
|
|
|
|
|
|
| see [https://bitbucket.org/Torr_Samaho/zandronum-zdoom-sync zandronum-zdoom-sync]
|}
 
== Changelogs ==
=== Development ===
'''Note:''' Because the versions under this section are still undergoing development, these changelogs might be slightly outdated. It's best to keep up to date via the #zatesting channel on [[IRC]] or checking the history file in the source repository time to time.
 
==== 3.1 ====
* Added a new server administration menu, from which server settings can be changed without needing to use the console. The menu will ask for the RCON password if necessary. Gameplay and compatibility settings are now grayed out unless the user has RCON access and work online properly. Added various Zandronum-specific gameplay settings to the menu. [Dusk]
* "stat nettraffic" now also shows information on the number of many missing packets the client requests from the servers. [Torr Samaho]
* The server can now broadcast the MD5 hashes of loaded PWADs to launchers. [Sean]
* Fixed: ACS function SetSkyScrollSpeed didn't work online. [Edward-san]
* Fixed: color codes in callvote reasons weren't terminated properly. [Dusk]
* Fixed: The 'Color Setter' and the 'Fade Setter' things weren't handled properly on map resets. [Edward-san]
* Fixed: A_JumpIfTargetInsideMeleeRange and A_JumpIfTargetOutsideMeleeRange weren't handled properly online. [Edward-san]
* Fixed: Same spot respawn didn't work anymore with dead spectators. [Edward-san]
* Fixed: A_CheckLOF wasn't handled properly online. [Edward-san]
* Fixed the DROPPED flag not being removed from level-spawned things when not needed. [Edward-san]
* Fixed an ACS related server and client crash. [Torr Samaho]
* sv_forcegldefaults renamed to sv_forcevideodefaults. The old name still exists for compatibility. [Dusk]
* r_3dfloors is now forced to be true when sv_forcevideodefaults is true. [Dusk]
 
=== Zandronum ===
==== 3.0 ====
* Updated Zandronum's (G)ZDoom base to ZDoom 2.8pre-441-g458e1b1 / GZDoom 1.8.6. [Torr Samaho]
* Rewrote support for preferred weapon order. Weapon info is now automatically looked up, the ORDERDEF lump has been removed. [Dusk]
* Generalized the rune system. Any rune can be used as a powerup (including spread, prosperity and reflection, which are now available as powerups), and any powerup can be used as a rune. [Dusk]
* Added a new buffer for the reliable packets scheduled to be sent from the server to the clients. This allows to limit the number of packets the server sends to a client per tick (CVAR sv_maxpacketspertick, default 64). In particular, this allows to spread the full update a client gets when connecting to the server over multiple ticks and should fix problems connecting to large maps with many actors. Also increased the packet loss buffer size from 1024 to 2048. [Torr Samaho]
* Added NamedRequestScriptPuke, named variant of RequestScriptPuke. The two functions can now take 1-5 parameters, thus supporting 4 script arguments. [Dusk]
* Added ACS time and date access functions SystemTime(), GetTimeProperty and Strftime(). The return value of SystemTime() may be overridden by the user with the new CCMD acstime. [Dusk]
* Quad-buffered stereo / 3D Vision support can now be toggled with the new CVAR gl_quadbufferedstereo (default false). [Torr Samaho]
* The warp cheat now works online and can be used by spectators even if sv_cheats is false. [Dusk]
* Being banned from a server now shows the server's contact email address. Being masterbanned now shows a clearer message that directs to the forums. [Dusk]
* Players' positions in the join queue are now rendered on the scoreboard. [Dusk]
* The internal server browser now automatically loads the wads of the selected server when joining. For this, all wads need to be in a place where they can be found with the '-file' command line option. In the browser menu, the left and right keys allow to scroll through the list of filtered servers. [Torr Samaho]
* The 'Join the game' command key used by spectators is now customizable in the 'Customize Controls' menu. [Edward-san, Dusk]
* The default 'authhostname' CVAR has been changed to the official zandronum game authentication server ( auth.zandronum.com:16666 ). [AlexMax, Edward-san]
* BOTINFO now allows to define more than 128 bots. [Torr Samaho]
* Chat now features a movable cursor, allowing text insertion/deletion from elsewhere than just the end. [Dusk]
* Chat preview is now rendered on multiple lines, if necessary. [Dusk]
* Chat now remembers the ten previously sent messages that can be brought up with up/down arrow keys. [Dusk]
* Chat can now tab complete player names. [Dusk]
* Clients' account names are now visible in the output of CCMD "playerinfo", unless the player hides it with the new CVar cl_hideaccount. The server can always see the accountname from playerinfo. [Dusk]
* Added a mechanism to safe login credentials under Windows using the Windows Credential Manager aka Windows Vault. The credentials can be stored using the new CCMD 'login_add'. A default user name can be specified with the new CVAR 'login_default_user'. [Torr Samaho]
* This server now prevents players to use a name already used by another player. If a player requests a duplicate name, the player is renamed to 'Player N' where N is a random number from 0 to 9999. [Torr Samaho]
* Added CCMD demo_pause that allows to pause/resume the currently played client side demo. In free spectate mode, the spectator can still move around while the demo is paused. [Torr Samaho]
* Added cl_soundwhennotactive CVAR support to non-Windows clients. [Edward-san]
* Added support to clientside ACS_ExecuteWithResult with four arguments. [Edward-san]
* Added sv_survival_nomapresetondeath Zandronum dmflag to modify survival game mode where the map will not be reset on all players death - the players will be able to continue with fresh amount of lives. Dead players will carry over their inventory in accordance to "keep inventory" flags. [Zalewa]
* Backported ZDoom's ACS function GetActorFloorTexture. [Torr Samaho]
* The SQLite3 database can now be used in WAL mode. This mode is enabled / disabled with the new CCMDs 'db_enable_wal' / 'db_disable_wal'. [Torr Samaho]
* Added new ACS command SetDeadSpectator (int playernumber, int deadspectator). This command can turn alive players into dead spectators (deadspectator == 1) and revive dead spectators  (deadspectator == 0). [Torr Samaho]
* Added the new ACS command SetActivatorToPlayer as a replacement solution for AAPTR_PLAYERx that works with all 64 players instead of only 8. [Dusk]
* Added CVAR sv_forcerespawntime that controls the time delay before force respawn activates and respawns a player. [Ru5tK1ng]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.11.3/Doom clients to join Doom/Freedoom 0.11.3 servers. [Torr Samaho]
* Fixed: Newly connecting clients were not properly informed about the secrets that were already revealed. [Torr Samaho]
* Fixed: Resurrect cheat didn't work online. [Dusk]
* Fixed: Turbo cheat didn't work online. [Dusk]
* Fixed: Kill [class] cheat didn't work online. The kill monsters cheat can also be used by clients if sv_cheats is true. The server can use the kill [class] cheat anytime, like with kill monsters. [Dusk]
* Fixed: Logfiles would sometimes contain timestamps in the middle of lines. [Dusk]
* sv_shotgunstart is now respected in non-cooperative gamemodes. [Dusk]
* Fixed: Take cheat didn't work online. [Dusk]
* Fixed: An invalid "winlimit hit" message would be displayed on map change in possession. [Dusk]
* Fixed: The internal server browser didn't list all of the compatible, available servers. [Torr Samaho]
* Fixed: A_CheckSight would not jump if a spectator was in the line of sight of the calling actor. [Dusk]
* Fixed: Using kick_idx, ignore_idx, unignore_idx, getip_idx, kickfromgame_idx and ban_idx with an invalid player index assumed a default of player 0. [Dusk]
* Fixed: SpawnDecal did not work online. [Dusk]
* Fixed: the 'take inventory' server command informed the clients by using the inventory class string instead of the much cheaper network id. Thanks to Siferah for spotting and reporting it. [Edward-san]
* Fixed: the 'spawn player' server command used 1 more byte than needed. [Edward-san]
* Fixed problems of the Doom status bar with high res font replacements. [Torr Samaho]
* Fixed: ACS function PlaySound did not work online. [Edward-san]
* Fixed: Bots on a large map may freeze the game. [Torr Samaho]
* Fixed: clients would play D'Sparil's attacks sound even when the attacks didn't start because there was no target to attack. [Edward-san]
* Fixed: clients weren't informed to play the heretic Knight attack sounds when it throws the axes. [Edward-san]
* Fixed: clients were told to play the 'poison cough' sound even when the poisoning by flechette didn't happen (for example because the player is invulnerable). [Edward-san]
* Fixed: clients were not informed correctly about the actors being in alert when another actor is hit by a dagger attack. [Edward-san]
* Fixed: clients would play the sounds from the world-activated ACS function ActivatorSound differently from offline. [Edward-san]
* Fixed: the server didn't inform the clients to not apply the DROPPED flag to level-spawned items which don't have it by default. [Edward-san]
* Fixed: clients were not informed correctly about the morphed player's morph style. [Edward-san]
* Fixed: clients were not informed to play the active sound of a PowerProtection powerup. [Edward-san]
* Fixed: clients couldn't hide the RaiseAlarm item released by dying NPC actors. [Edward-san]
* Fixed: clients were not informed correctly about actors being affected by A_NoBlocking invoked by an item pickup. [Edward-san]
* Fixed: HUDMessage messages weren't cleared on map resets. [Edward-san]
* Fixed: Player start types were selected based on the CVARs deathmatch and teamgame instead of the GAMEMODE flags DEATHMATCH and TEAMGAME. [Torr Samaho]
* Fixed: A titlemap run with gamemode cooperative and dead spectators was not started correctly. [Edward-san, Torr Samaho]
* Fixed: The ACS function ReplaceTextures didn't show an effect for clients already in the game. [Torr Samaho]
* Fixed: Certain code pointers like A_PlaySound didn't work on MorphFlash/UnMorphFlash online. [Torr Samaho]
* Fixed: Clients played the Archvile resurrect sound twice. [Edward-san]
* Fixed a network inconsistency with Archvile-like monsters which miss the Heal state and use A_VileChase to eventually resurrect the corpses. [Edward-san, Torr Samaho]
* Fixed: clients didn't handle properly resurrecting monsters in rare occurrences. [Edward-san]
* Fixed the wrong thingz positioning after an offline map reset. [Torr Samaho, Edward-san]
* Fixed: clients mispredicted NOGRAVITY things, attached to the ceiling, when pushed by something. [Edward-san]
* Fixed: menu ignore got confused about players with the same name. [Dusk]
* Fixed: A_Respawn wasn't handled correctly online. [Edward-san]
* Fixed: clients couldn't hear the player's jumping sound if present. [Edward-san]
* Fixed: When the server used ACS_ExecuteWithResult to start a CLIENTSIDE scripts, the clients were told the wrong arguments. [Torr Samaho]
* Fixed: A_Mushroom did not work properly online. [Torr Samaho]
* Fixed: The server didn't instruct clients to spawn missiles from A_CustomMissile if they exploded on spawn. [Torr Samaho]
* Fixed: AFastProjectile ignored the CLIENTSIDEONLY flag of its MissileType. [Torr Samaho]
* Fixed: A_SpawnDebris did not work properly online and ignored the CLIENTSIDEONLY flag. [Torr Samaho]
* Fixed: Voodoo dolls could cause unnecessary network traffic. [Torr Samaho]
* Fixed: Indefinitely hidden non-inventory actors caused unnecessary network traffic during a map reset. [Torr Samaho]
* Fixed: Clients were informed about RandomSpawners, even though they only needed to know about the outcome of the spawner, which wasted network traffic. [Torr Samaho]
* Fixed: The server could instruct the client to spawn puffs without a netID even if the puff didn't have the NONETID flag. [Torr Samaho]
* Fixed: Clients with high bandwidth weren't informed about the item dropping physics online. [Edward-san]
* When sv_nocallvote is 2, only consider votes of players joined in the game (addresses 2590). [Ru5tK1ng]
* Fixed: Returning to a map in a hub could crash the clients online. [Torr Samaho]
* Fixed: Votes were not being removed or cancelled when a player disconnected. [Ru5tK1ng]
* Fixed: Server-to-client ACS script executions could not represent the values [-127..-1] as parameters. [Dusk]
* Fixed the inconsistent/missing number of allies and/or opponents left when the displayed player dies/spectates in gamemodes with dead spectators. [Edward-san]
* Fixed: SMF_Look was not working in CTF and other team game modes. [Ru5tK1ng]
* Fixed: Fixed colormaps not being respected for actors beneath 3D floors. [Dusk, Torr Samaho]
* Fixed: The scoreboard duel wins drawer could crash with cameras not attached to the player. [Edward-san]
* Fixed: The screen blending effects wouldn't work on the automap. [Edward-san]
* Fixed: A_BrainScream and A_BrainExplode caused unnecessary network traffic. [Torr Samaho]
* Fixed: the change of the player name with a too short name wasn't handled correctly. [Edward-san]
* Fixed: z-position client-server inconsistencies for things on cliffs. [Zalewa, Edward-san]
* Fixed: Leaf1 and Leaf2 caused unnecessary network traffic. [Torr Samaho]
* Fixed: Mugshot multiplayer background color didn't change with player color in OpenGL. [Zalewa]
* Fixed: "File|Join" from server console wouldn't load DeHackEd patches. [Zalewa]
* Fixed: GetScreenWidth and GetScreenHeight ACS functions did not work online. [Dusk]
* Fixed: the DamageFactor calculation was executed twice for armors. [Edward-san]
* Fixed: body of the player who loses all lives no longer disappears into thin air. [Zalewa]
* Fixed a certain number of commands and server CVARs which weren't protected against the ConsoleCommand. [Edward-san, Torr Samaho]
* Fixed: the server could crash if a morph powerup is taken away when the morphed player exhausts the ammo. [Edward-san]
* Fixed crash with voodoo dolls and PowerIronFeet. [Edward-san]
* Fixed: Under rare circumstances, the server could freeze when selecting a random map from the map rotation. [Torr Samaho]
* Fixed: When the server instructed a client to jump as result of A_Jump*, the client did not call the state function of the state jumped to. [Torr Samaho]
* Fixed: The server didn't fully notify the clients about water splashes. [Torr Samaho]
* Fixed a potential client crash related to the firing sound of a railgun. [Torr Samaho]
* Fixed: Blood splatter caused unnecessary network traffic. [Torr Samaho]
* Fixed: A_FiredSpawnRock and A_FiredSplotch caused unnecessary network traffic. [Torr Samaho]
* Fixed: Angle arguments in DECORATE didn't work properly on ARM devices like the Raspberry Pi (adapted from the corresponding ZDoom fix). [Torr Samaho]
* Fixed: The server informed the clients about the position of the other players during intermission, which generated unnecessary network traffic. [Torr Samaho]
* Fixed: the server erroneously told clients that some slamming actors changed their state to the Spawn state instead of the Idle state. [Edward-san]
* Slightly improved how the MinotaurFriend is handled online. [Edward-san]
* Fixed: When a player was damaged, clients always executed the first state function of the standard pain state. [Torr Samaho]
* Fixed: The server didn't inform the clients about changes made with A_ChangeFlag to the special Zandronum flags, like DONTIDENTIFYTARGET. [Torr Samaho]
* Fixed: CLIENTSIDE scripts lost track of the player as activator when the player was morphed or unmorphed. [Torr Samaho]
* Fixed: A too long value of sv_hostname could crash the Windows server when it was minimized to the system tray. [Torr Samaho]
* Fixed: Using SetDBEntryString with an integer instead of a string as argument could cause a crash. [Torr Samaho]
* Changed: Spectators can now interact with gravity and use the fly/land commands. [Leonard]
* Save games now contain information about the renderer used to create the save. This allows to print a proper error message when an incompatible save is tried to be loaded. [Torr Samaho]
* Clients don't error out anymore when encountering a division by zero in a DECORATE expression. Instead, a one time warning is printed on the first occasion and the result is assumed to be zero. This is necessary since clients can encounter this in valid DECORATE code due to Zandronum's jump handling. [Torr Samaho]
* Changed the dmflags values to match the ZDoom values to resolve compatibility problems with the updated ZDoom base and future ZDoom updates. Launchers and config files need to be updated to account for this change. [Torr Samaho]
* sv_nodrop is now a dmflag. [Dusk]
* sv_limitnumvotes renamed to sv_votecooldown and changed to integer that determines the time to wait before a player can revote. All vote limits and times are double this value. [Ru5tK1ng]
* Merged sv_nokill and sv_disallowsuicide into one dmflag with two names. [Dusk]
* The CVARINFO error message triggered when an existing CVAR in the ini conflicts with CVARINFO now instructs the user to clean the ini. [Torr Samaho]
* The server now displays the IP address of the player upon connection and disconnection in log messages. [Dusk]
* ZDoom changed the jumping physics in ZDoom SVN revisions 2238 and 2970. The old jumping behavior known from Skulltag can be restored with the new CVAR compat_skulltagjumping. [Torr Samaho]
* con_virtualwidth and con_virtualheight now default to 640 and 480, respectively. [Dusk]
* kickfromgame and kickfromgame_idx have been renamed to forcespec and forcespec_idx, respectively, though the old names still exist for compatibility with e.g. aliases. Same also with the ACS function KickFromGame, whose new name is ForceToSpectate.
* A new non-fatal 'Script Error' message will be printed if in a MAPINFO episode definition it's present either 'botskillname' or 'botskillpicname' but not 'botepisode'.
* The CVARs gl_render_things, gl_render_walls, gl_render_flats and gl_mask_threshold are now restricted to beta builds. [Torr Samaho]
* Make newly connected clients wait before calling a vote. The wait time is controlled with the new CVAR 'sv_voteconnectwait'. [Ru5tK1ng]
* Keys can now be used while a client side demo is played. This allows binds to CCMDs like demo_pause to be used during playback. [Torr Samaho]
* Dead spectators will now preserve inventory so that they can be respawned with it. [Zalewa]
* When alive players complete the map in survival, dead spectators will recover their inventory on the next map in accordance to SV_COOP_LOSE* flags [Zalewa]
* The 'authhostname' DNS lookup is not done during startup anymore, but only if the IP address is needed. [Torr Samaho]
* The memory required for the bot nodes is now dynamically allocated when the first bot is added and freed when the last bot is removed. Thus, the CVAR sv_disallowbots is obsolete and was removed (adapted form Konar6's kpatch). This also fixes that offline, the memory required for the bot nodes was always allocated. [Torr Samaho]
* To stay compatible with Zandronum 2.x, GetCVar still returns the consoleplayer's value if called in a non-player activated CLIENTSIDE script to get the value of a user cvar. [Torr Samaho]
* Althud's discovered secret counter now shows global discovered secret count in netgames. [Zalewa]
* Changed the default value of sv_defaultdmflags to false. [Torr Samaho]
 
==== 2.1.2 ====
* Fixed the remaining jitter and weapon sync problems caused by the client movement buffer. [Torr Samaho]
 
==== 2.1.1 ====
* The client movement buffer now can be toggled with the new CVAR sv_useticbuffer (default true). [Torr Samaho]
* Fixed jittery player movement caused by the client movement buffer. [Torr Samaho]
* Fixed: Clients wrongly predicted the health of the consoleplayer. [Edward-san, Torr Samaho]
* Fixed: clients were not updated about the successful A_CustomPunch lifesteal attacks from a player. [Edward-san]
* Fixed: clients were not updated about the successful A_Saw lifesteal attacks from a player. [Edward-san]
 
==== 2.1 ====
* The Zandronum server is now compatible with the Raspberry Pi (based on selected ZDoom backports), so far only tested with a Raspberry Pi 2 Model B. [Torr Samaho]
* Added support for ACS script numbers higher than 999. This is intended to increase compatibility with mods that worked in 1.3, but stopped working with 2.0. [Torr Samaho]
* The server can now broadcast dehacked patches loaded with -deh and -bex to server browsers. [Dusk]
* Added Catastrophe's CCMD 'ifspectator' that executes its argument only if the consoleplayer is a spectator. [Torr Samaho]
* Fixed: Too high volume parameters to A_PlaySound and friends caused the volume to overflow online. [Dusk]
* Fixed: Friendly fire obituaries did not appear online in competitive gamemodes. [Dusk]
* Hopefully fixed a potential weapon switch induced client-side crash. [Dusk]
* Fixed: Amount of total monsters went out of count upon map resets. [Dusk]
* Fixed: When a player scored a point in CTF, Skulltag or Possession, the scoreboard in the Windows server console was not updated properly. [Torr Samaho]
* Fixed: -optfile would eat CCMD calls (such as +exec) and treat them and their arguments as wads to include as optional. [Dusk]
* Fixed: the 'light fast strobe in sync' sector special would visually desync while playing a demo. [Edward-san]
* Fixed: A_LookEx desynced completely online. [Dusk, Edward-san]
* Fixed possible health desync issues in some situations. [Edward-san]
* Fixed: Trying to open a corrupt zip archive crashed the game (backported from ZDoom). [Torr Samaho]
* Fixed: Players were kicked for excessive movement commands instead of simply ignoring the excessive commands. [Torr Samaho]
* Fixed: clients were not informed of some actor flag modifications with A_ChangeFlag. [Edward-san]
* Fixed: Trying to record client demos on some mods, e.g. duel32c_st.pk3, caused the client to error out. [Torr Samaho]
* Fixed: A_FadeIn and A_FadeOut did not work for actors which don't have a network id. [Dusk, Edward-san]
* Fixed: The client could not handle the display of the morphed mugshot in the status bar. [Edward-san]
* Fixed: clients lost some actor flag modifications done in a previous map after a changemap map change. [Edward-san]
* Fixed: Players would be awarded damage dealt to non-COUNTKILL monsters if sv_awarddamageinsteadkills was set. [Dusk]
* Fixed: Using alternative track orders with music formats with multiple tracks did not work online. [Dusk]
* Fixed: "gl_cachenodes 1" could crash the server. [Torr Samaho]
* Fixed: A map change in CTF online could crash the game. [Torr Samaho]
* Fixed: Blocked sliding polyobjects were not handled properly online. [Edward-san]
* Fixed: The delayed stairs building movers were not handled properly online. [Edward-san]
* Fixed: Some dehacked weapon attack sounds could not work. [Edward-san]
* Fixed some weapon sync issues related to the client movement buffer. [Torr Samaho]
* Fixed: Even when using a random map rotation, the map a server loads on start was not randomized (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: sv_forcegldefaults 1 stopped working properly for the gl clients. [Edward-san]
* Make the crash log unique for SDL platforms by appending the timestamp to the file name. [Edward-san, Dusk]
* The Linux executables now will be able to generate a core dump in case a crash happens. [Edward-san]
* Railgun attacks no longer always pierce armor. The Skulltag railgun in skulltag_actors.pk3 continues to do so, however, through use of +PIERCEARMOR. [Dusk]
* A map is now marked as used when entered instead of when exited in the rotation list. [Leonard, Torr Samaho]


==== 2.2 ====
==== 2.0 ====
'''Note:''' All changes in this version are also part of [[#3.0|3.0]].
* Updated Zandronum's (G)ZDoom base to ZDoom SVN revision 2560 / GZDoom SVN revision 900 [Torr Samaho]
 
* Added quad-buffered stereo / 3D Vision support to the GL renderer (minimal invasive implementation based on biospud's GZ3Doom). [Torr Samaho]
* The coop info HUD now uses weapon tags. [Dusk]
* Added the OS used to the version string the server sends to the launchers (adapted form Konar6's kpatch). [Torr Samaho]
* Fixed: The effects of the terminator sphere and the hellstone on a player were not properly stored in save games. [Torr Samaho]
* When a banned client is prevented from connecting, the ban reason (if specified in the banlist) is logged to the server console (adapted form Konar6's kpatch). [Torr Samaho]
* Fixed: SetPlayerProperty could still change certain flags on a spectator. [Leonard]
* Added a new compatflags cvar: compat_silentwestspawns, emulates Vanilla compatibility by not performing any spawnfog/sounds for west angled spawns. [Water, Edward-san]
* Fixed: Changing the CVAR 'fullscreen' crashed the server. [Torr Samaho]
* Added compat_maxbloodscalar which will enforce vanilla red screen damage as if the blood_fade_scalar was 1.0. [Water]
* Fixed: sv_sharekeys did not use actor tags properly anymore after the ZDoom update in 2.0. [Dusk]
* Ported CVARINFO lump support and the ACS functions SetCVar, GetCVarString and SetCVarString from ZDoom. This includes support for CVars that are automatically synced between server and clients. User CVars are not support for now though. [Torr Samaho]
* Fixed: Free spectate mode would crash the game. [Dusk]
* Added domination and customteamgame to SBarInfo gamemode detection. [Blzut3]
* Fixed: The game could tick too fast after getting kicked. [Leonard]
* Added dmflag sv_unblockallies which is exactly like sv_unblockplayers except only unblocks ally players. [Dusk]
* Fixed: The automap would render spectators other than the local player. The local player, if spectating, now won't be rendered either if the user spies on someone. [Dusk]
* The server can now advertise WADs as optional so long as said WADs are not necessary for clients to join. This is controlled with the new command-line option -optfile and the new preferoptionalwads CVar. Note: this is only a hint for server browsers! Authentication is and has always been lump-based and not WAD-based! [Dusk]
* Fixed: the server did not handle item givings and takings with amounts greater than 32767. [Edward-san]
* Added support for Zandronum-specific gamemodes for the alternative HUD. [Dusk]
* Fixed: Thing arguments were transmitted with 1 byte each instead of 4 bytes. [Dusk]
* Added CVAR sv_limitcommands which can be set to false to disable various flooding limits (allow constant suiciding, team changing, disable command flood auto-kick, etc). Should not be set to false in public servers. [Dusk]
* Fixed inconsistent 'spectating' text draw when a dead spectator coop spies another player. [Edward-san]
* Added a Network Options menu which will contain all new network options. [Water, Torr Samaho]
* Fixed: Online clients trying to run an offline skirmish were not disconnected properly. [Edward-san]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.9/Doom clients to join Doom/Freedoom 0.9 servers. [Torr Samaho]  
* Fixed: A_SpawnFly's customized BrainFire-like fog actor parameter reproduced the wrong sound online. [Edward-san]
* Significantly bandwidth-optimized server-to-client ACS_Execute (and friends) calls. Such a call now uses 9 to 21 bytes of bandwidth per client per call (depending on the size of arguments), instead of 22 to 29 bytes. [Dusk]
* Fixed: A_FadeTo did not work properly online. [Edward-san]
* Added cl_showspawns, which creates a particle fountain at active spawns. [Water, Torr Samaho]
* Fixed: clients were not updated about the successful gauntlet lifesteal attacks from a player. [Edward-san]
* Added a decorate flag DONTIDENTIFYTARGET which prevents player identification from being done to the actor. [Water]
* Fixed: clients ignored the customized sound argument of A_VileAttack. [Edward-san]
* Added CVAR compat_autoaim which restores vanilla autoaim, as there was a switch to autoaim filling in the gaps due to limited number of tracers from vanilla. [Water]
* Fixed display problems of the MOTD on the clients when the server sent an invalid string. [Torr Samaho]
* Added CVAR cl_clientflags which controls both cl_unlagged and cl_respawnonfire to save bandwidth and make future booleans easier to transmit over the network. [Water, Torr Samaho]
* Fixed: The server didn't inform the clients about jumps made by A_CheckSight. [Torr Samaho]
* Added a menu entry to for the GZDoom HUD, i.e. CVAR hud_althud. [Torr Samaho]
* Fixed c/s sync problems on maps with more than 65535 sidedefs. [Torr Samaho]
* Added a CVAR (wi_autoscreenshot) to allow screenshots to automatically be taken upon entering the intermission screen. [Water, Torr Samaho]
* Fixed sidedef related problems with map resets on UDMF maps. [Torr Samaho]
* Added CVAR cl_clientsidepuffs which allows clients to predict puffs, which makes bullet puffs from hitscan weapons appear instantly. [Water, Torr Samaho]
* Fixed: Clients were not properly informed about the effects of SetAmmoCapacity after a changemap map change. [Torr Samaho]
* Added bloodsplatter effects to also be performed when cl_hitscandecalhack is set to true. [Water, Torr Samaho]
* Fixed: sv_forcegldefaults 1 didn't cover gl_distfog changes. [Edward-san, Torr Samaho]
* The server now kicks its clients when it shuts down. [Dusk]
* Fixed: The ACS function SetMugshotState was not handled properly online. [Edward-san, Torr Samaho]
* Added support for RCON client tab-completion. This bumps the protocol version to 4, but clients using protocol 3 are still supported. [Dusk]
* Fixed: The player drowning code was not handled properly online. [Edward-san]
* The client movement buffer is now reordered based on the client's gametic information before the commands are processed. [Torr Samaho, Water]  
* Fixed: Clients did not receive the correct MaxAmount value for AmmoCapacity inventories if it was greater than 32767 after a map change. [Edward-san]
* Added gametic unlagged which should perform better under varying net conditions compared to ping-based unlagged. [Water, AlexMax, Torr Samaho]
* Fixed: Server-to-client ACS script calls would corrupt arguments within the range [-128, -1]. [Dusk]
* An icon will be displayed in the scoreboard if you're in the console, similarly to chat. [Cata]
* Fixed: The client could change the value of sv_limitcommands for itself, allowing it to skip some sanity checks. [Dusk]
* Added new player pawn property Player.MaxSkinSizeFactor which allows customization of the limits used by skin size checking. Skins larger than hitbox size (radius * 2, height) times this factor are downsized to fit. Defaults to the original hardcoded values 3.44, 1.68. Setting either value to 0 disables the limit entirely. Made the warning message more descriptive and informative. [Dusk]
* Fixed: Player TIDs were not synced to newly connecting clients. [Dusk]
* Fixed problems when boss monsters were replaced by Randomspawners in game modes that use map resets, e.g. survival. [Torr Samaho]
* Fixed: sv_forcegldefaults 1 didn't honor the MAPINFO lightmode option if present. [Edward-san]
* Fixed: Radius_Quake didn't work properly online if the duration was longer than 128 tics. [Torr Samaho]
* Fixed: Invisible and translucent map things lost their visual effect on map restarts and nightmare respawns. [Edward-san]
* Fixed: Blocked poly object doors were not handled properly online. [Torr Samaho]
* Fixed: Boom-style generic ceilings did not cause texture changes properly online and were not reverted during a map reset. [Dusk, Torr Samaho]
* Fixed: No longer can pick up team items in CTF or Skulltag after the round ends. [Water]
* Fixed: When a player carrying the white flag died or disconnected, the white flag was spawned on the floor instead of the actual Z position of the player. [Edward-san]
* Fixed: Monsters near the bottom of a ledge on a raising sector sometimes appeared as teleporting up on clients online. [Torr Samaho]
* Fixed: Dying players with no lives left disappeared instantly if compat_instantrespawn was enabled. [Edward-san]
* Fixed: Light effects created by scripts weren't removed during a map reset. [Torr Samaho]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.10/Doom clients to join Doom/Freedoom 0.10 servers. [Torr Samaho]
* Fixed: MAPINFO lumps were not protected. [Dusk]
* Spectators may now move freely even when the game has ended and players are frozen in place. [Dusk]
* Fixed: Instant light fading was not updated on the client's side. [Water]
* The "wrong protocol version" network error now shows the full server and client version. [Torr Samaho]
* Fixed: Frozen corpses were not properly cleaned up during the countdown phase, leading to unexpected behavior with player viewpoints. [Water, Torr Samaho]
* Since the only purpose of the CVARs sv_useticbuffer and sv_limitcommands is for debug, they are now restricted to testing binaries. [Torr Samaho, Dusk]
* Trying to generate bot nodes on very large maps caused the game to crash. This should now be fixed at least on extremely large maps. Bots are disabled in this case. [Torr Samaho]
* The player's yaw movement is locked if its speed is above 'SR40' (and angle changes are disregarded) on client and server. [Circunei Z, Hypnotoad]
* Fixed: The crouched sprite wasn't displayed for skins enforced through Weapon.PreferredSkin if the player class had +NOSKIN. [Esum, Torr Samaho]
* Joypad strafing movements are now capped at SR40 speed. [Leonard]
* Fixed: Player spawn height now is on the ground so any player starts in the air will not result in team telefragging unless all spawns are full. [Water, Torr Samaho]
* Dropping is now allowed in competitive gamemodes, unless sv_nodrop explicitly disallows it. [Dusk]
* Fixed: Missiles with the +NOEXPLODEFLOOR flag desynced online. [Dusk]
 
* Fixed: A voodoo doll exiting the level would print a bogus " exited the level" message. [Dusk]
=== Zandronum ===
* Fixed: Reflection desync between client and server if it doesn't have a Doom/Hexen bouncetype property. [Water, Torr Samaho]
==== 2.1.2 ====
* Fixed a server crash related to the client movement buffer. [Torr Samaho]
* Fixed the remaining jitter and weapon sync problems caused by the client movement buffer. [Torr Samaho]
* Fixed: SetFont() would 'leak' into other scripts online. [Dusk]
 
* Fixed: Spectators could not trigger allowed action specials with sectors. The only exceptions are the 'Use' and the 'UseWall' action triggers. [Edward-san, Torr Samaho]
==== 2.1.1 ====
* Fixed: The server did not inform the clients fully about the crush behavior of floors, ceilings and pillars. [Edward-san]
* The client movement buffer now can be toggled with the new CVAR sv_useticbuffer (default true). [Torr Samaho]
* Fixed: The server could crash the clients with malicious packets. [Torr Samaho]
* Fixed jittery player movement caused by the client movement buffer. [Torr Samaho]
* Fixed problems with the client side Z position prediction near ledges. [Torr Samaho]
* Fixed: Clients wrongly predicted the health of the consoleplayer. [Edward-san, Torr Samaho]
* Fixed: a closing polyobject door made no sound online. [Dusk, Edward-san]
* Fixed: clients were not updated about the successful A_CustomPunch lifesteal attacks from a player. [Edward-san]
* Fixed: The server did not inform the clients correctly about the type of the door action, making the clients hear the wrong door sound. [Edward-san]
* Fixed: clients were not updated about the successful A_Saw lifesteal attacks from a player. [Edward-san]
* Fixed: The client could potentially get HOMs while requesting a snapshot. [Leonard, Torr Samaho]
 
* Fixed: CVAR sv_unblockplayers now works with different species. [Leonard]
==== 2.1 ====
* Fixed: The scale of skins enforced through Weapon.PreferredSkin was ignored if the player class had +NOSKIN. [Torr Samaho]
* The Zandronum server is now compatible with the Raspberry Pi (based on selected ZDoom backports), so far only tested with a Raspberry Pi 2 Model B. [Torr Samaho]
* Fixed: In "teamgame" based game modes, friendly monsters didn't attack players of opposing teams unless provoked. [Torr Samaho]
* Added support for ACS script numbers higher than 999. This is intended to increase compatibility with mods that worked in 1.3, but stopped working with 2.0. [Torr Samaho]
* Fixed: If the packet with the end of a snapshot was dropped on a server with no active players, a client possibly waited forever for the snapshot to finish. [Torr Samaho]
* The server can now broadcast dehacked patches loaded with -deh and -bex to server browsers. [Dusk]
* Fixed: The client didn't let bouncing missiles spawned by A_SpawnItemEx pass through the player who spawned the missiles. [Torr Samaho]
* Added Catastrophe's CCMD 'ifspectator' that executes its argument only if the consoleplayer is a spectator. [Torr Samaho]
* Fixed: After a map change, items at player starts would be inadvertently removed. [Dusk]
* Fixed: Too high volume parameters to A_PlaySound and friends caused the volume to overflow online. [Dusk]
* Fixed: CVAR cl_announcepickups didn't work in certain cases. [Leonard]
* Fixed: Friendly fire obituaries did not appear online in competitive gamemodes. [Dusk]
* Fixed: Custom attenuation values did not work online. [Dusk, Edward-san]
* Hopefully fixed a potential weapon switch induced client-side crash. [Dusk]
* Fixed: Rotating polyobjects did not stop on map resets. [Dusk, Edward-san]
* Fixed: Amount of total monsters went out of count upon map resets. [Dusk]
* Fixed: Emulated multiplayer and multiplayer map changes broke random. [Torr Samaho, Edward-san]
* Fixed: When a player scored a point in CTF, Skulltag or Possession, the scoreboard in the Windows server console was not updated properly. [Torr Samaho]
* Fixed: Since Skulltag 98a, chat and announcer stopped producing sounds in game during Time Freeze and in intermission after map exiting while Time Freeze was on. [Edward-san]
* Fixed: -optfile would eat CCMD calls (such as +exec) and treat them and their arguments as wads to include as optional. [Dusk]
* Fixed: Spectators could not use the 'Teleport_NoStop' action special. [Edward-san]
* Fixed: the 'light fast strobe in sync' sector special would visually desync while playing a demo. [Edward-san]
* Fixed: Under certain circumstances, the SKININFO parser didn't properly handle the sprite entry. [Torr Samaho]
* Fixed: A_LookEx desynced completely online. [Dusk, Edward-san]
* Fixed: The CCMD 'kickfromgame' and the ACS function 'KickFromGame' could not work offline. [Edward-san]
* Fixed possible health desync issues in some situations. [Edward-san]
* Fixed: Spawn() and friends did not sync the spawned actor(s)'s tid to clients. [Dusk]
* Fixed: Trying to open a corrupt zip archive crashed the game (backported from ZDoom). [Torr Samaho]
* Renamed compatflags2 to zacompatflags and moved all Zandronum/Skulltag exclusive compatflags from compatflags to zacompatflags to resolve compatibility problems with ZDoom updates. Launchers and config files need to be updated to account for this change. [Torr Samaho]  
* Fixed: Players were kicked for excessive movement commands instead of simply ignoring the excessive commands. [Torr Samaho]
* Renamed dmflags3 to zadmflags, moved all Zandronum/Skulltag exclusive dmflags2 from dmflags2 to zadmflags and changed the remaining dmflags2 values to match the ZDoom values to resolve compatibility problems with future ZDoom updates. Launchers and config files need to be updated to account for this change. [Torr Samaho]  
* Fixed: clients were not informed of some actor flag modifications with A_ChangeFlag. [Edward-san]
* Since ZDoom 2.5.0 (and thus Zandronum) doesn't support script numbers higher than 999, Zandronum now gracefully errors out when encountering a script with an invalid number instead of crashing randomly. [Torr Samaho]  
* Fixed: Trying to record client demos on some mods, e.g. duel32c_st.pk3, caused the client to error out. [Torr Samaho]
* The Linux binaries can now be debugged with the zandronum.debug file, which is provided in a separated download. [Edward-san]
* Fixed: A_FadeIn and A_FadeOut did not work for actors which don't have a network id. [Dusk, Edward-san]
* Changed intermission proceeding to not rely on spectators if there is active players. [Water]
* Fixed: The client could not handle the display of the morphed mugshot in the status bar. [Edward-san]
* The login server selected with authhostname needs to support version 2 of the login protocol. [Torr Samaho]
* Fixed: clients lost some actor flag modifications done in a previous map after a changemap map change. [Edward-san]
* Changed how a sentinel variable is handled which makes it much harder for clients to purposely drop packets, thus stopping a speed hack. [Water, Torr Samaho]
* Fixed: Players would be awarded damage dealt to non-COUNTKILL monsters if sv_awarddamageinsteadkills was set. [Dusk]
* Changed: Free spectators can now use the noclip cheat in demos. [Leonard]
* Fixed: Using alternative track orders with music formats with multiple tracks did not work online. [Dusk]
* Changed the CTF flag height from 16 to 48, which will prevent players from clipping through them without picking them up on stairwells or uneven terrain. [Striker]
* Fixed: "gl_cachenodes 1" could crash the server. [Torr Samaho]
* Reduced the time interval between each join and each team switch to 3 seconds. [Edward-san]
* Fixed: A map change in CTF online could crash the game. [Torr Samaho]
 
* Fixed: Blocked sliding polyobjects were not handled properly online. [Edward-san]
==== 1.3 ====
* Fixed: The delayed stairs building movers were not handled properly online. [Edward-san]
* Added persistent storage based on an SQLite3 database. The new CVAR databasefile controls where the database is saved (defaults to ":memory:", i.e. volatile in-memory database) and the new CVAR database_maxpagecount (defaults to 32768) controls the maximal allowed size in pages of the database. The new ACS functions allow mods to access the underlying database. [Torr Samaho]
* Fixed: Some dehacked weapon attack sounds could not work. [Edward-san]
** void SetDBEntry ( string Namespace, string Key, int Value )
* Fixed some weapon sync issues related to the client movement buffer. [Torr Samaho]
** int GetDBEntry ( string Namespace, string Key ),
* Fixed: Even when using a random map rotation, the map a server loads on start was not randomized (ported from Konar6's kpatch). [Torr Samaho]
** void SetDBEntryString ( string Namespace, string Key, string Value )
* Fixed: sv_forcegldefaults 1 stopped working properly for the gl clients. [Edward-san]
** string GetDBEntryString (string Namespace, string Key )
* Make the crash log unique for SDL platforms by appending the timestamp to the file name. [Edward-san, Dusk]
** void IncrementDBEntry ( string Namespace, string Key, int Increment )
* The Linux executables now will be able to generate a core dump in case a crash happens. [Edward-san]
** int SortDBEntries ( string Namespace, int Limit, int Offset, bool Descending )
* Railgun attacks no longer always pierce armor. The Skulltag railgun in skulltag_actors.pk3 continues to do so, however, through use of +PIERCEARMOR. [Dusk]
** int CountDBResults ( int Handle )
* A map is now marked as used when entered instead of when exited in the rotation list. [Leonard, Torr Samaho]
** void FreeDBResults ( int Handle )
 
** string GetDBResultKeyString ( int Handle, Index )
==== 2.0 ====
** string GetDBResultValueString ( int Handle, Index )
* Updated Zandronum's (G)ZDoom base to ZDoom SVN revision 2560 / GZDoom SVN revision 900 [Torr Samaho]
** int GetDBResultValue ( int Handle, Index )
* Added quad-buffered stereo / 3D Vision support to the GL renderer (minimal invasive implementation based on biospud's GZ3Doom). [Torr Samaho]
** int GetDBEntryRank ( string Namespace, string Key, bool Descending )
* Added the OS used to the version string the server sends to the launchers (adapted form Konar6's kpatch). [Torr Samaho]
** void BeginDBTransaction ( )
* When a banned client is prevented from connecting, the ban reason (if specified in the banlist) is logged to the server console (adapted form Konar6's kpatch). [Torr Samaho]
** void EndDBTransaction ( )
* Added a new compatflags cvar: compat_silentwestspawns, emulates Vanilla compatibility by not performing any spawnfog/sounds for west angled spawns. [Water, Edward-san]
** int GetDBEntries ( string Namespace )
* Added compat_maxbloodscalar which will enforce vanilla red screen damage as if the blood_fade_scalar was 1.0. [Water]
* Added the Zandronum side of an optional account system based on authentication with the Secure Remote Password (SRP) protocol, AlexMax is working on the login server (https://github.com/AlexMax/charonauth).
* Ported CVARINFO lump support and the ACS functions SetCVar, GetCVarString and SetCVarString from ZDoom. This includes support for CVars that are automatically synced between server and clients. User CVars are not support for now though. [Torr Samaho]
** The login server hostname can be specified with the new CVAR authhostname (masterhostname analog, port can be specified with ":port").
* Added domination and customteamgame to SBarInfo gamemode detection. [Blzut3]
** The new CCMD login allows a client to authenticate with the auth server the server has selected with its authhostname setting.
* Added dmflag sv_unblockallies which is exactly like sv_unblockplayers except only unblocks ally players. [Dusk]
** The new CVAR sv_forcelogintojoin (default false) can prevent unauthenticated players from joining the game (they can still connect as spectators).
* The server can now advertise WADs as optional so long as said WADs are not necessary for clients to join. This is controlled with the new command-line option -optfile and the new preferoptionalwads CVar. Note: this is only a hint for server browsers! Authentication is and has always been lump-based and not WAD-based! [Dusk]
** The new ACS functions "int PlayerIsLoggedIn( int Player )" and "string GetPlayerAccountName ( int Player )" allow mods to obtain information about the account of a player. [Torr Samaho]
* Added support for Zandronum-specific gamemodes for the alternative HUD. [Dusk]
* Added new dmflag sv_sharekeys. When enabled, any keys picked are shared between players. Also, players joining the game get the keys others have as well. [Dusk]
* Added CVAR sv_limitcommands which can be set to false to disable various flooding limits (allow constant suiciding, team changing, disable command flood auto-kick, etc). Should not be set to false in public servers. [Dusk]
* The ACS commands TakeInventory, SetActorProperty (only for speed and gravity) and SetAmmoCapacity don't cause network traffic unless they actually make a change to the affected actor. [Torr Samaho]
* Added a Network Options menu which will contain all new network options. [Water, Torr Samaho]
* The text scaling scaling mechanism (controlled by con_scaletext, con_virtualwidth and con_virtualheight) now can use the aspect ratio of the screen instead of 4:3. The new behavior can be activated using a new option in the text scaling menu or with the new CVAR con_scaletext_usescreenratio. [Torr Samaho]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.9/Doom clients to join Doom/Freedoom 0.9 servers. [Torr Samaho]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.8/Doom clients to join Doom/Freedoom 0.8 servers. [Torr Samaho]  
* Significantly bandwidth-optimized server-to-client ACS_Execute (and friends) calls. Such a call now uses 9 to 21 bytes of bandwidth per client per call (depending on the size of arguments), instead of 22 to 29 bytes. [Dusk]
* Added a client movement buffer. Instead of processing all movement commands of a client immediately, they are stored in this buffer now. Each tic per client up to two commands in this buffer are processed. This way, players with an instable connection shouldn't appear as teleporting instead of moving to players with a stable connection. Note: This only changes how a player perceives the movement of other players. It has not effect on how a player perceives his own movement. [Torr Samaho]  
* Added cl_showspawns, which creates a particle fountain at active spawns. [Water, Torr Samaho]
* The mdk cheat command can now be used online in cheat servers. Unlike in ZDoom, it is also allowed in deathmatch modes. [Dusk]
* Added a decorate flag DONTIDENTIFYTARGET which prevents player identification from being done to the actor. [Water]
* The noclip command for spectators is now client-sided for increased responsivity. [Dusk]
* Added CVAR compat_autoaim which restores vanilla autoaim, as there was a switch to autoaim filling in the gaps due to limited number of tracers from vanilla. [Water]
* Added new ACS command GetGamemodeState. The return values are GAMESTATE_UNSPECIFIED = -1, GAMESTATE_WAITFORPLAYERS = 0, GAMESTATE_COUNTDOWN = 1, GAMESTATE_INPROGRESS = 2 and GAMESTATE_INRESULTSEQUENCE = 3. [Torr Samaho]
* Added CVAR cl_clientflags which controls both cl_unlagged and cl_respawnonfire to save bandwidth and make future booleans easier to transmit over the network. [Water, Torr Samaho]
* Added new CVAR sv_forcerandomclass. If this is true, all players use the random player class regardless of the class they selected. [Torr Samaho]  
* Added a menu entry to for the GZDoom HUD, i.e. CVAR hud_althud. [Torr Samaho]
* Colored team names in exiting console messages and added extra console messages for CTF and Skulltag (scores, pickups, drops, etc.) (ported from Konar6's kpatch). [Torr Samaho]
* Added a CVAR (wi_autoscreenshot) to allow screenshots to automatically be taken upon entering the intermission screen. [Water, Torr Samaho]
* Added clientside CVAR cl_overrideplayercolors that overrides players' color translations. Allies will take the color of cl_allycolor and enemies the color of cl_enemycolor. These CVARs are white and black by default, respectively. cl_enemycolor is no-op when there are more than 2 teams, though cl_allycolor will still apply. [Dusk]
* Added CVAR cl_clientsidepuffs which allows clients to predict puffs, which makes bullet puffs from hitscan weapons appear instantly. [Water, Torr Samaho]
* Added new script type EVENT. By calling EVENT scripts the engine notifies a mod that a noteworthy event happened and also provides some information about the event using 'arg1' and 'arg2'. So far the following events are supported: [Torr Samaho, Water]  
* Added bloodsplatter effects to also be performed when cl_hitscandecalhack is set to true. [Water, Torr Samaho]
** GAMEEVENT_PLAYERFRAGS (player frags another player)
* The server now kicks its clients when it shuts down. [Dusk]
** GAMEEVENT_MEDALS (player receives a medal)
* Added support for RCON client tab-completion. This bumps the protocol version to 4, but clients using protocol 3 are still supported. [Dusk]
** GAMEEVENT_CAPTURES (player captures the flag/skull)
* The client movement buffer is now reordered based on the client's gametic information before the commands are processed. [Torr Samaho, Water]
** GAMEEVENT_TOUCHES (player touches the flag/skull)
* Added gametic unlagged which should perform better under varying net conditions compared to ping-based unlagged. [Water, AlexMax, Torr Samaho]
** GAMEEVENT_RETURNS (the flag/skull is returned)
* An icon will be displayed in the scoreboard if you're in the console, similarly to chat. [Cata]
** GAMEEVENT_ROUND_STARTS
* Added new player pawn property Player.MaxSkinSizeFactor which allows customization of the limits used by skin size checking. Skins larger than hitbox size (radius * 2, height) times this factor are downsized to fit. Defaults to the original hardcoded values 3.44, 1.68. Setting either value to 0 disables the limit entirely. Made the warning message more descriptive and informative. [Dusk]
** GAMEEVENT_ROUND_ENDS (the current round ends and the win sequence starts, e.g. when the fraglimit is hit)
* Fixed problems when boss monsters were replaced by Randomspawners in game modes that use map resets, e.g. survival. [Torr Samaho]
** GAMEEVENT_ROUND_ABORTED  (the current round is ended prematurely, e.g. if all players leave the game)
* Fixed: Radius_Quake didn't work properly online if the duration was longer than 128 tics. [Torr Samaho]
* Added new CCMD: listmusic, which will list all the currently loaded music. [Water]
* Fixed: Blocked poly object doors were not handled properly online. [Torr Samaho]
* Added settings to fine tune the PWO behavior (CVARs pwo_switchonsameweight and pwo_switchonunknown). [Circunei Z]
* Fixed: No longer can pick up team items in CTF or Skulltag after the round ends. [Water]
* Added a new cvar: lobby, which applies lobby characteristics to a single map lump. In addition, if a map is set as a lobby map via the cvar, it is returned to after every other map. The lobby map is also returned to if the server is empty for more than 30 seconds. [AlexMax]
* Fixed: Monsters near the bottom of a ledge on a raising sector sometimes appeared as teleporting up on clients online. [Torr Samaho]
* Added an alias for the islobby MAPINFO tag: lobby. [AlexMax]
* Fixed: Light effects created by scripts weren't removed during a map reset. [Torr Samaho]
* Both types of lobby maps (MAPINFO and cvar) now ignore timelimits. [AlexMax]
* Fixed: MAPINFO lumps were not protected. [Dusk]
* Added new ACS function RequestScriptPuke which requests execution of the given script on the server. The function must only be called from CLIENTSIDE scripts the script executed must be NET. [Dusk]
* Fixed: Instant light fading was not updated on the client's side. [Water]
* Announcer sounds for pickups now can be disabled with the new CVAR cl_announcepickups (default true) (patch by dark-slayer-201). [Torr Samaho]
* Fixed: Frozen corpses were not properly cleaned up during the countdown phase, leading to unexpected behavior with player viewpoints. [Water, Torr Samaho]
* Added the new vote type "forcespec" that forces a player to spectate. It can be disabled with the new CVAR sv_noforcespecvote (default false). [Torr Samaho]
* Trying to generate bot nodes on very large maps caused the game to crash. This should now be fixed at least on extremely large maps. Bots are disabled in this case. [Torr Samaho]
* Added a connect sound that is played when a player connects to the server as spectator. It can be disabled with the new CVAR cl_connectsound (default true). Kudos to Revilution for creating a sound for this. [Torr Samaho]
* Fixed: The crouched sprite wasn't displayed for skins enforced through Weapon.PreferredSkin if the player class had +NOSKIN. [Esum, Torr Samaho]
* Extended the vote kick protection for admins to include players logged into RCON (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: Player spawn height now is on the ground so any player starts in the air will not result in team telefragging unless all spawns are full. [Water, Torr Samaho]
* Fixed: The server didn't report when the master server notified the server that it's banned (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: Missiles with the +NOEXPLODEFLOOR flag desynced online. [Dusk]
* Fixed: Blood actors (or anything else which do not use net IDs) within save games would crash the game upon loading. [Dusk]
* Fixed: A voodoo doll exiting the level would print a bogus " exited the level" message. [Dusk]
* Fixed: Clients were not properly informed about the reset of moving non-door polyobjects during map resets. [Torr Samaho]
* Fixed: Reflection desync between client and server if it doesn't have a Doom/Hexen bouncetype property. [Water, Torr Samaho]
* Fixed: Using SetAmmoCapacity on an ammo type a player didn't have online caused the clients to assume that the player now has a small amount of this ammo type. [Torr Samaho]
* Fixed a server crash related to the client movement buffer. [Torr Samaho]
* Fixed: The view was not centered in demos when the recording player released the mouse look button and lookspring was true. [Torr Samaho]
* Fixed: SetFont() would 'leak' into other scripts online. [Dusk]
* Fixed: Players sometimes could jump up through solid 3D floors online when unlagged was on. [Torr Samaho]
* Fixed: Spectators could not trigger allowed action specials with sectors. The only exceptions are the 'Use' and the 'UseWall' action triggers. [Edward-san, Torr Samaho]
* Fixed: A_CrusaderRefire did not work properly online, causing the Crusader to desync. [Dusk]
* Fixed: The server did not inform the clients fully about the crush behavior of floors, ceilings and pillars. [Edward-san]
* Fixed: Strife's Flamethrower did not shake the player's view online. [Dusk]
* Fixed: The server could crash the clients with malicious packets. [Torr Samaho]
* Fixed: The server would crash with join passwords longer than 64 characters. [Dusk]
* Fixed problems with the client side Z position prediction near ledges. [Torr Samaho]
* Fixed: Skins defined with SKININFO didn't work properly if the sprite entry was not set explicitly. [Torr Samaho]
* Fixed: a closing polyobject door made no sound online. [Dusk, Edward-san]
* Fixed: Tampered clients could insert ASCII control characters into chat messages (e.g. line breaks) (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: The server did not inform the clients correctly about the type of the door action, making the clients hear the wrong door sound. [Edward-san]
* Fixed: Strife's crossbow did not appear to use ammo on clients online. [Dusk]
* Fixed: The client could potentially get HOMs while requesting a snapshot. [Leonard, Torr Samaho]
* Fixed: Clients using endgame while attempting to connect would not terminate the connection attempt. [Dusk]
* Fixed: CVAR sv_unblockplayers now works with different species. [Leonard]
* Fixed: Telefregging shouldn't count towards awarding the Fisting and Spam medals (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: The scale of skins enforced through Weapon.PreferredSkin was ignored if the player class had +NOSKIN. [Torr Samaho]
* Fixed: Toggle crouch shouldn't reset when menu is activated during a netgame. [Jam]
* Fixed: In "teamgame" based game modes, friendly monsters didn't attack players of opposing teams unless provoked. [Torr Samaho]
* Fixed: Monsters would become "blind" if the player who awoke them by sound became a spectator. [Dusk]
* Fixed: If the packet with the end of a snapshot was dropped on a server with no active players, a client possibly waited forever for the snapshot to finish. [Torr Samaho]
* Fixed: When spawning more than 2 hellstaff rains in Heretic, the old ones would linger around on the client instead of disappearing. [Dusk]
* Fixed: The client didn't let bouncing missiles spawned by A_SpawnItemEx pass through the player who spawned the missiles. [Torr Samaho]
* Fixed: The linetarget cheat now prints the actor's actual health value. [Dusk]
* Fixed: After a map change, items at player starts would be inadvertently removed. [Dusk]
* Fixed: When a player turned into spectator the dynamic lights associated to the player's body were not removed. [Torr Samaho]
* Fixed: CVAR cl_announcepickups didn't work in certain cases. [Leonard]
* Fixed: A_PoisonBagInit desyncs between the client and server. [Water]
* Fixed: Custom attenuation values did not work online. [Dusk, Edward-san]
* Fixed: Medals now show for who you are spectating instead of always your own. [Water]
* Fixed: Rotating polyobjects did not stop on map resets. [Dusk, Edward-san]
* Fixed: The server possibly announced player disconnects for players that didn't fully connect. [Torr Samaho]
* Fixed: Emulated multiplayer and multiplayer map changes broke random. [Torr Samaho, Edward-san]
* Fixed: When a player is damaged, don't send useless inconsistent values of HP and Armor (100/100) to the clients if they're not allowed to see the real HP/Armor. [Edward-san]
* Fixed: Since Skulltag 98a, chat and announcer stopped producing sounds in game during Time Freeze and in intermission after map exiting while Time Freeze was on. [Edward-san]
* Fixed: Line_SetBlocking didn't work properly online. [Dusk]
* Fixed: Spectators could not use the 'Teleport_NoStop' action special. [Edward-san]
* Fixed: A_GiveInventory and A_GiveToTarget didn't work on CLIENTSIDEONLY actors. [Torr Samaho]
* Fixed: Under certain circumstances, the SKININFO parser didn't properly handle the sprite entry. [Torr Samaho]
* Fixed: "botdebug_walktest 1" caused the game to crash when the player was looking through the eyes of a non-player actor. [Torr Samaho]
* Fixed: The CCMD 'kickfromgame' and the ACS function 'KickFromGame' could not work offline. [Edward-san]
* Fixed: turn180 did not work as a spectator. [Dusk]
* Fixed: Spawn() and friends did not sync the spawned actor(s)'s tid to clients. [Dusk]
* Fixed: Gravity was applied twice in one tic when running off a cliff with compat_123b33jumpphysics enabled when it shouldn't be. [AlexMax]
* Renamed compatflags2 to zacompatflags and moved all Zandronum/Skulltag exclusive compatflags from compatflags to zacompatflags to resolve compatibility problems with ZDoom updates. Launchers and config files need to be updated to account for this change. [Torr Samaho]  
* Fixed: Some ordinals weren't written correctly in the spectator queue message. [Esum]
* Renamed dmflags3 to zadmflags, moved all Zandronum/Skulltag exclusive dmflags2 from dmflags2 to zadmflags and changed the remaining dmflags2 values to match the ZDoom values to resolve compatibility problems with future ZDoom updates. Launchers and config files need to be updated to account for this change. [Torr Samaho]  
* Fixed: Non-interacting actors like map spots would have their TIDs reset to 0 on map resets. [Dusk]
* Since ZDoom 2.5.0 (and thus Zandronum) doesn't support script numbers higher than 999, Zandronum now gracefully errors out when encountering a script with an invalid number instead of crashing randomly. [Torr Samaho]  
* Fixed: The server didn't load the archived value of SERVERINFO CVARs (e.g. sv_smartaim). [Torr Samaho]
* The Linux binaries can now be debugged with the zandronum.debug file, which is provided in a separated download. [Edward-san]
* Fixed: The chat length limit of 128s was not enforced online. [Dusk]
* Changed intermission proceeding to not rely on spectators if there is active players. [Water]
* Fixed: The server could erroneously show "FindStateLabelAndOffset" warnings. [Torr Samaho]
* The login server selected with authhostname needs to support version 2 of the login protocol. [Torr Samaho]
* Fixed: an opportune string could cause a buffer overflow while getting the address from a hostname. Thanks to kazzmir for reporting the vulnerability. [Edward-san]
* Changed how a sentinel variable is handled which makes it much harder for clients to purposely drop packets, thus stopping a speed hack. [Water, Torr Samaho]
* Fixed: +WEAPON.NOAUTOAIM did not disable horizontal autoaim with projectile weapons. [Dusk]
* Changed: Free spectators can now use the noclip cheat in demos. [Leonard]
* Fixed: Monsters near the bottom of a ledge or fence sometimes appeared as teleporting up on clients online. [Torr Samaho]
* Changed the CTF flag height from 16 to 48, which will prevent players from clipping through them without picking them up on stairwells or uneven terrain. [Striker]
* Changed huffman code from Hexen II's to that provided by Vortex Cortex. [Blzut3, Vortex Cortex]
* Reduced the time interval between each join and each team switch to 3 seconds. [Edward-san]
* Changed the Offline Skirmish frag slider bar to go in intervals of 1 instead of 5. [Water]
 
* The CCMD playerinfo now distinguishes true spectators from in game players (ported from Konar6's kpatch). [Torr Samaho]
==== 1.3 ====
* Botscript rand() renamed to random() and now returns a value between min and max inclusive instead of leaving max out of the possibilities. Now is actually random and now swaps min and max if min is greater than max instead of throwing a runtime error. [Dusk]
* Added persistent storage based on an SQLite3 database. The new CVAR databasefile controls where the database is saved (defaults to ":memory:", i.e. volatile in-memory database) and the new CVAR database_maxpagecount (defaults to 32768) controls the maximal allowed size in pages of the database. The new ACS functions allow mods to access the underlying database. [Torr Samaho]
* Medals are only awarded when the game has started (is not in countdown). [Water]
** void SetDBEntry ( string Namespace, string Key, int Value )
* If the map rotation is not empty, the server now prevents map/changemap votes to maps that are not in the rotation, regardless of whether of sv_maprotation is true. This allows the server to restrict these votes without enforcing the rotation itself, which would also enforce the order in which the maps are played (adapted from an old patch of TIHan). [Torr Samaho]
** int GetDBEntry ( string Namespace, string Key ),
* Renamed compat_123b33jumpphysics to compat_oldzdoomzmovement, which is a more accurate description of what the flag actually does. [AlexMax]
** void SetDBEntryString ( string Namespace, string Key, string Value )
* The server now ignores client ping packets that don't make sense. [Torr Samaho]
** string GetDBEntryString (string Namespace, string Key )
* The team selection menu now is kept in sync with the local player's team, unless it was set to random. [Dusk]
** void IncrementDBEntry ( string Namespace, string Key, int Increment )
* Changed the chat muting report: the server will inform the muted client how much time is left also in seconds. [Edward-san]
** int SortDBEntries ( string Namespace, int Limit, int Offset, bool Descending )
* Medals are only awarded when the game has started (is not in countdown). [Water]
** int CountDBResults ( int Handle )
* If the map rotation is not empty, the server now prevents map/changemap votes to maps that are not in the rotation, regardless of whether of sv_maprotation is true. This allows the server to restrict these votes without enforcing the rotation itself, which would also enforce the order in which the maps are played (adapted from an old patch of TIHan). [Torr Samaho]
** void FreeDBResults ( int Handle )
* Renamed compat_123b33jumpphysics to compat_oldzdoomzmovement, which is a more accurate description of what the flag actually does. [AlexMax]
** string GetDBResultKeyString ( int Handle, Index )
* The server now ignores client ping packets that don't make sense. [Torr Samaho]
** string GetDBResultValueString ( int Handle, Index )
* The team selection menu now is kept in sync with the local player's team, unless it was set to random. [Dusk]
** int GetDBResultValue ( int Handle, Index )
* Changed the chat muting report: the server will inform the muted client how much time is left also in seconds. [Edward-san]
** int GetDBEntryRank ( string Namespace, string Key, bool Descending )
 
** void BeginDBTransaction ( )
==== 1.2.2 ====
** void EndDBTransaction ( )
* Fixed: The server reported to be using a testing build instead of a stable one. [Torr Samaho]
** int GetDBEntries ( string Namespace )
 
* Added the Zandronum side of an optional account system based on authentication with the Secure Remote Password (SRP) protocol, AlexMax is working on the login server (https://github.com/AlexMax/charonauth).
==== 1.2.1 ====
** The login server hostname can be specified with the new CVAR authhostname (masterhostname analog, port can be specified with ":port").
* Fixed: A malformed packet could make the server kick the clients. Thanks to Konar6 for supplying a proof-of-concept exploit that allowed to debug the issue. [Torr Samaho]
** The new CCMD login allows a client to authenticate with the auth server the server has selected with its authhostname setting.
* Fixed an exploit with color codes in player names (ported from Konar6's kpatch). [Torr Samaho]
** The new CVAR sv_forcelogintojoin (default false) can prevent unauthenticated players from joining the game (they can still connect as spectators).
* Fixed a client memory exhaustion vulnerability. Thanks to AgentME for reporting the vulnerability and submitting a preliminary patch. [Torr Samaho]
** The new ACS functions "int PlayerIsLoggedIn( int Player )" and "string GetPlayerAccountName ( int Player )" allow mods to obtain information about the account of a player. [Torr Samaho]
* Fixed a client heap corruption vulnerability. Thanks to AgentME for reporting the vulnerability and submitting a patch. [Torr Samaho]
* Added new dmflag sv_sharekeys. When enabled, any keys picked are shared between players. Also, players joining the game get the keys others have as well. [Dusk]
* Fixed an exploit based on out of bounds userinfo sent by a malicious client (ported from Konar6's kpatch). [Torr Samaho]
* The ACS commands TakeInventory, SetActorProperty (only for speed and gravity) and SetAmmoCapacity don't cause network traffic unless they actually make a change to the affected actor. [Torr Samaho]
* Fixed an exploit based on improperly disconnected malicious clients. Kudos to kgsws for finding and reporting this exploit. [Torr Samaho]
* The text scaling scaling mechanism (controlled by con_scaletext, con_virtualwidth and con_virtualheight) now can use the aspect ratio of the screen instead of 4:3. The new behavior can be activated using a new option in the text scaling menu or with the new CVAR con_scaletext_usescreenratio. [Torr Samaho]
* Fixed an exploit that allowed malicious clients to create additional bodies. Kudos to kgsws for finding and reporting this exploit. [Torr Samaho]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.8/Doom clients to join Doom/Freedoom 0.8 servers. [Torr Samaho]  
* Fixed: A malformed packet could crash the server. Thanks to AgentME for reporting the vulnerability and submitting a preliminary patch. [Torr Samaho]
* Added a client movement buffer. Instead of processing all movement commands of a client immediately, they are stored in this buffer now. Each tic per client up to two commands in this buffer are processed. This way, players with an instable connection shouldn't appear as teleporting instead of moving to players with a stable connection. Note: This only changes how a player perceives the movement of other players. It has not effect on how a player perceives his own movement. [Torr Samaho]  
* The linux binaries are not compiled with -fno-stack-protector anymore. This was originally intended to increase compatibility with distros using older glibc versions but is not necessary anymore since the source is open. Thanks to AgentME for pointing this out. [Torr Samaho]
* The mdk cheat command can now be used online in cheat servers. Unlike in ZDoom, it is also allowed in deathmatch modes. [Dusk]
 
* The noclip command for spectators is now client-sided for increased responsivity. [Dusk]
==== 1.2 ====
* Added new ACS command GetGamemodeState. The return values are GAMESTATE_UNSPECIFIED = -1, GAMESTATE_WAITFORPLAYERS = 0, GAMESTATE_COUNTDOWN = 1, GAMESTATE_INPROGRESS = 2 and GAMESTATE_INRESULTSEQUENCE = 3. [Torr Samaho]
* Revamped the authentication error messages: The server now reports which kind of authentication failed (i.e. protected lump or map) and reports a list of all loaded PWADs including their md5 checksums. The client also automatically logs the corresponding local values which should make it much easier to pinpoint the cause of an authentication error. [Torr Samaho]
* Added new CVAR sv_forcerandomclass. If this is true, all players use the random player class regardless of the class they selected. [Torr Samaho]  
* Added compat_fullweaponlower to emulate vanilla without bundling it with another flag. [Water]
* Colored team names in exiting console messages and added extra console messages for CTF and Skulltag (scores, pickups, drops, etc.) (ported from Konar6's kpatch). [Torr Samaho]
* Added new dmflag "no medals", controlled by the new CVAR sv_nomedals. If this is true, clients are enforced not to show medals, i.e. behave as if cl_medals == 0. [Torr Samaho]  
* Added clientside CVAR cl_overrideplayercolors that overrides players' color translations. Allies will take the color of cl_allycolor and enemies the color of cl_enemycolor. These CVARs are white and black by default, respectively. cl_enemycolor is no-op when there are more than 2 teams, though cl_allycolor will still apply. [Dusk]
* Fixed crashes related to loading many announcers. [Torr Samaho]
* Added new script type EVENT. By calling EVENT scripts the engine notifies a mod that a noteworthy event happened and also provides some information about the event using 'arg1' and 'arg2'. So far the following events are supported: [Torr Samaho, Water]  
* Fixed: +showscores did not always respond properly when viewing a demo. [Dusk]
** GAMEEVENT_PLAYERFRAGS (player frags another player)
* Fixed: Monsters near a ledge sometimes appeared as constantly falling down and teleporting back on clients online. [Torr Samaho]
** GAMEEVENT_MEDALS (player receives a medal)
* Fixed: Interpolation points and actor moves didn't work properly on clients after a map reset online. [Torr Samaho]
** GAMEEVENT_CAPTURES (player captures the flag/skull)
* Fixed: Client side demo recording could crash the client. [Circunei Z, Torr Samaho]
** GAMEEVENT_TOUCHES (player touches the flag/skull)
* Fixed a lastX/Y/Z desync between client and server. [Water]
** GAMEEVENT_RETURNS (the flag/skull is returned)
* Fixed: Calling a map/changemap vote with an existing non-map lump as argument caused the server to throw an error. [Torr Samaho]
** GAMEEVENT_ROUND_STARTS
* Fixed: When a player carrying the flag died or disconnected, the flag was spawned on the floor instead of the actual Z position of the player. [Torr Samaho]
** GAMEEVENT_ROUND_ENDS (the current round ends and the win sequence starts, e.g. when the fraglimit is hit)
* The commands "wait", "error", "error_fatal" and "crashout" can't be called by ConsoleCommand anymore. [Torr Samaho]  
** GAMEEVENT_ROUND_ABORTED  (the current round is ended prematurely, e.g. if all players leave the game)
* Added new CCMD: listmusic, which will list all the currently loaded music. [Water]
* Added settings to fine tune the PWO behavior (CVARs pwo_switchonsameweight and pwo_switchonunknown). [Circunei Z]
* Added a new cvar: lobby, which applies lobby characteristics to a single map lump. In addition, if a map is set as a lobby map via the cvar, it is returned to after every other map. The lobby map is also returned to if the server is empty for more than 30 seconds. [AlexMax]
* Added an alias for the islobby MAPINFO tag: lobby. [AlexMax]
* Both types of lobby maps (MAPINFO and cvar) now ignore timelimits. [AlexMax]
* Added new ACS function RequestScriptPuke which requests execution of the given script on the server. The function must only be called from CLIENTSIDE scripts the script executed must be NET. [Dusk]
* Announcer sounds for pickups now can be disabled with the new CVAR cl_announcepickups (default true) (patch by dark-slayer-201). [Torr Samaho]
* Added the new vote type "forcespec" that forces a player to spectate. It can be disabled with the new CVAR sv_noforcespecvote (default false). [Torr Samaho]
* Added a connect sound that is played when a player connects to the server as spectator. It can be disabled with the new CVAR cl_connectsound (default true). Kudos to Revilution for creating a sound for this. [Torr Samaho]
* Extended the vote kick protection for admins to include players logged into RCON (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: The server didn't report when the master server notified the server that it's banned (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: Blood actors (or anything else which do not use net IDs) within save games would crash the game upon loading. [Dusk]
* Fixed: Clients were not properly informed about the reset of moving non-door polyobjects during map resets. [Torr Samaho]
* Fixed: Using SetAmmoCapacity on an ammo type a player didn't have online caused the clients to assume that the player now has a small amount of this ammo type. [Torr Samaho]
* Fixed: The view was not centered in demos when the recording player released the mouse look button and lookspring was true. [Torr Samaho]
* Fixed: Players sometimes could jump up through solid 3D floors online when unlagged was on. [Torr Samaho]
* Fixed: A_CrusaderRefire did not work properly online, causing the Crusader to desync. [Dusk]
* Fixed: Strife's Flamethrower did not shake the player's view online. [Dusk]
* Fixed: The server would crash with join passwords longer than 64 characters. [Dusk]
* Fixed: Skins defined with SKININFO didn't work properly if the sprite entry was not set explicitly. [Torr Samaho]
* Fixed: Tampered clients could insert ASCII control characters into chat messages (e.g. line breaks) (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: Strife's crossbow did not appear to use ammo on clients online. [Dusk]
* Fixed: Clients using endgame while attempting to connect would not terminate the connection attempt. [Dusk]
* Fixed: Telefregging shouldn't count towards awarding the Fisting and Spam medals (ported from Konar6's kpatch). [Torr Samaho]
* Fixed: Toggle crouch shouldn't reset when menu is activated during a netgame. [Jam]
* Fixed: Monsters would become "blind" if the player who awoke them by sound became a spectator. [Dusk]
* Fixed: When spawning more than 2 hellstaff rains in Heretic, the old ones would linger around on the client instead of disappearing. [Dusk]
* Fixed: The linetarget cheat now prints the actor's actual health value. [Dusk]
* Fixed: When a player turned into spectator the dynamic lights associated to the player's body were not removed. [Torr Samaho]
* Fixed: A_PoisonBagInit desyncs between the client and server. [Water]
* Fixed: Medals now show for who you are spectating instead of always your own. [Water]
* Fixed: The server possibly announced player disconnects for players that didn't fully connect. [Torr Samaho]
* Fixed: When a player is damaged, don't send useless inconsistent values of HP and Armor (100/100) to the clients if they're not allowed to see the real HP/Armor. [Edward-san]
* Fixed: Line_SetBlocking didn't work properly online. [Dusk]
* Fixed: A_GiveInventory and A_GiveToTarget didn't work on CLIENTSIDEONLY actors. [Torr Samaho]
* Fixed: "botdebug_walktest 1" caused the game to crash when the player was looking through the eyes of a non-player actor. [Torr Samaho]
* Fixed: turn180 did not work as a spectator. [Dusk]
* Fixed: Gravity was applied twice in one tic when running off a cliff with compat_123b33jumpphysics enabled when it shouldn't be. [AlexMax]
* Fixed: Some ordinals weren't written correctly in the spectator queue message. [Esum]
* Fixed: Non-interacting actors like map spots would have their TIDs reset to 0 on map resets. [Dusk]
* Fixed: The server didn't load the archived value of SERVERINFO CVARs (e.g. sv_smartaim). [Torr Samaho]
* Fixed: The chat length limit of 128s was not enforced online. [Dusk]
* Fixed: The server could erroneously show "FindStateLabelAndOffset" warnings. [Torr Samaho]
* Fixed: an opportune string could cause a buffer overflow while getting the address from a hostname. Thanks to kazzmir for reporting the vulnerability. [Edward-san]
* Fixed: +WEAPON.NOAUTOAIM did not disable horizontal autoaim with projectile weapons. [Dusk]
* Fixed: Monsters near the bottom of a ledge or fence sometimes appeared as teleporting up on clients online. [Torr Samaho]
* Changed huffman code from Hexen II's to that provided by Vortex Cortex. [Blzut3, Vortex Cortex]
* Changed the Offline Skirmish frag slider bar to go in intervals of 1 instead of 5. [Water]
* The CCMD playerinfo now distinguishes true spectators from in game players (ported from Konar6's kpatch). [Torr Samaho]
* Botscript rand() renamed to random() and now returns a value between min and max inclusive instead of leaving max out of the possibilities. Now is actually random and now swaps min and max if min is greater than max instead of throwing a runtime error. [Dusk]
* Medals are only awarded when the game has started (is not in countdown). [Water]
* If the map rotation is not empty, the server now prevents map/changemap votes to maps that are not in the rotation, regardless of whether of sv_maprotation is true. This allows the server to restrict these votes without enforcing the rotation itself, which would also enforce the order in which the maps are played (adapted from an old patch of TIHan). [Torr Samaho]
* Renamed compat_123b33jumpphysics to compat_oldzdoomzmovement, which is a more accurate description of what the flag actually does. [AlexMax]
* The server now ignores client ping packets that don't make sense. [Torr Samaho]
* The team selection menu now is kept in sync with the local player's team, unless it was set to random. [Dusk]
* Changed the chat muting report: the server will inform the muted client how much time is left also in seconds. [Edward-san]
* Medals are only awarded when the game has started (is not in countdown). [Water]
* If the map rotation is not empty, the server now prevents map/changemap votes to maps that are not in the rotation, regardless of whether of sv_maprotation is true. This allows the server to restrict these votes without enforcing the rotation itself, which would also enforce the order in which the maps are played (adapted from an old patch of TIHan). [Torr Samaho]
* Renamed compat_123b33jumpphysics to compat_oldzdoomzmovement, which is a more accurate description of what the flag actually does. [AlexMax]
* The server now ignores client ping packets that don't make sense. [Torr Samaho]
* The team selection menu now is kept in sync with the local player's team, unless it was set to random. [Dusk]
* Changed the chat muting report: the server will inform the muted client how much time is left also in seconds. [Edward-san]


==== 1.2.2 ====
==== 1.1.1 ====
* Fixed: The server reported to be using a testing build instead of a stable one. [Torr Samaho]
* Fixed: The messages sent with ay_team were visible to players of the other teams. [Dusk, Torr Samaho]
 
==== 1.2.1 ====
* Fixed: A malformed packet could make the server kick the clients. Thanks to Konar6 for supplying a proof-of-concept exploit that allowed to debug the issue. [Torr Samaho]
* Fixed an exploit with color codes in player names (ported from Konar6's kpatch). [Torr Samaho]
* Fixed a client memory exhaustion vulnerability. Thanks to AgentME for reporting the vulnerability and submitting a preliminary patch. [Torr Samaho]
* Fixed a client heap corruption vulnerability. Thanks to AgentME for reporting the vulnerability and submitting a patch. [Torr Samaho]
* Fixed an exploit based on out of bounds userinfo sent by a malicious client (ported from Konar6's kpatch). [Torr Samaho]
* Fixed an exploit based on improperly disconnected malicious clients. Kudos to kgsws for finding and reporting this exploit. [Torr Samaho]
* Fixed an exploit that allowed malicious clients to create additional bodies. Kudos to kgsws for finding and reporting this exploit. [Torr Samaho]
* Fixed: A malformed packet could crash the server. Thanks to AgentME for reporting the vulnerability and submitting a preliminary patch. [Torr Samaho]
* The linux binaries are not compiled with -fno-stack-protector anymore. This was originally intended to increase compatibility with distros using older glibc versions but is not necessary anymore since the source is open. Thanks to AgentME for pointing this out. [Torr Samaho]
 
==== 1.2 ====
* Revamped the authentication error messages: The server now reports which kind of authentication failed (i.e. protected lump or map) and reports a list of all loaded PWADs including their md5 checksums. The client also automatically logs the corresponding local values which should make it much easier to pinpoint the cause of an authentication error. [Torr Samaho]
* Added compat_fullweaponlower to emulate vanilla without bundling it with another flag. [Water]
* Added new dmflag "no medals", controlled by the new CVAR sv_nomedals. If this is true, clients are enforced not to show medals, i.e. behave as if cl_medals == 0. [Torr Samaho]
* Fixed crashes related to loading many announcers. [Torr Samaho]
* Fixed: +showscores did not always respond properly when viewing a demo. [Dusk]
* Fixed: Monsters near a ledge sometimes appeared as constantly falling down and teleporting back on clients online. [Torr Samaho]
* Fixed: Interpolation points and actor moves didn't work properly on clients after a map reset online. [Torr Samaho]
* Fixed: Client side demo recording could crash the client. [Circunei Z, Torr Samaho]
* Fixed a lastX/Y/Z desync between client and server. [Water]
* Fixed: Calling a map/changemap vote with an existing non-map lump as argument caused the server to throw an error. [Torr Samaho]
* Fixed: When a player carrying the flag died or disconnected, the flag was spawned on the floor instead of the actual Z position of the player. [Torr Samaho]
* The commands "wait", "error", "error_fatal" and "crashout" can't be called by ConsoleCommand anymore. [Torr Samaho]
 
==== 1.1.1 ====
* Fixed: The messages sent with ay_team were visible to players of the other teams. [Dusk, Torr Samaho]


==== 1.1 ====
==== 1.1 ====
Line 1,003: Line 1,381:


=== Skulltag ===
=== Skulltag ===
==== 0.98d ====
==== v0.98d ====
* Added unlagged support for player positions (controlled by the new CVAR sv_nounlagged). Clients can deactivate unlagged for their own attacks by setting cl_unlagged to 0. [Spleen, Torr Samaho, Eruanna]
* Added unlagged support for player positions (controlled by the new CVAR sv_nounlagged). Clients can deactivate unlagged for their own attacks by setting cl_unlagged to 0. [Spleen, Torr Samaho, Eruanna]
* Extended the chat substitution by $location, the name of the current player position as specified by SECTINFO. [Torr Samaho]
* Extended the chat substitution by $location, the name of the current player position as specified by SECTINFO. [Torr Samaho]
Line 1,111: Line 1,489:
* Decreased the default value of sv_maxpacketsize to 1024 (the default used in 98b and earlier versions), the higher value used in 98c caused "waiting for server" problems on some servers. [Torr Samaho]
* Decreased the default value of sv_maxpacketsize to 1024 (the default used in 98b and earlier versions), the higher value used in 98c caused "waiting for server" problems on some servers. [Torr Samaho]


==== 0.98c ====
==== v0.98c ====
* Skulltag now supports Intel based Macintoshes (mainly done by backporting ZDoom revisions 1571, 1581, 1607, 1736, 1779, 1780, 1786-1788, 1793, 1807, 1814, 2122). [Blzut3, Torr Samaho]
* Skulltag now supports Intel based Macintoshes (mainly done by backporting ZDoom revisions 1571, 1581, 1607, 1736, 1779, 1780, 1786-1788, 1793, 1807, 1814, 2122). [Blzut3, Torr Samaho]
* Added basic outbound net traffic analysis code for the server. This code allows to find out which actor classes and which ACS scripts use how much net traffic and should greatly simply the identification of network bandwidth hogs in custom mods. [Torr Samaho]
* Added basic outbound net traffic analysis code for the server. This code allows to find out which actor classes and which ACS scripts use how much net traffic and should greatly simply the identification of network bandwidth hogs in custom mods. [Torr Samaho]
Line 1,196: Line 1,574:
* Instead of kicking clients that send too many movement commands, the excessive commands are just ignored. [Torr Samaho]
* Instead of kicking clients that send too many movement commands, the excessive commands are just ignored. [Torr Samaho]


==== 0.98b ====
==== v0.98b ====
* Greatly improved the windows server dialog! [Rivecoder]
* Greatly improved the windows server dialog! [Rivecoder]
** Things that are entirely new:
** Things that are entirely new:
Line 1,312: Line 1,690:
* Fixed: CCMD "nextmap" did not handle "enDSeQ" when used on maps such as ExM8 and MAP30. [Vortex Cortex]
* Fixed: CCMD "nextmap" did not handle "enDSeQ" when used on maps such as ExM8 and MAP30. [Vortex Cortex]


==== 0.98a ====
==== v0.98a ====
** Thoroughly updated Skulltag's ZDoom base to the latest ZDoom SVN repository revision (currently 1551)! [Torr Samaho]
** Thoroughly updated Skulltag's ZDoom base to the latest ZDoom SVN repository revision (currently 1551)! [Torr Samaho]
** Upgraded the GZDoom renderer to 1.1.04 (revision 127, maintenance fixes from up to revision 322)! [Torr Samaho]
** Upgraded the GZDoom renderer to 1.1.04 (revision 127, maintenance fixes from up to revision 322)! [Torr Samaho]
Line 1,495: Line 1,873:
* Extended the server side client command protection to protect from commands the client is allowed to use often, but that still can be abused for a DOS attack. If a client floods the server with such commands (more than 100 in 10 seconds), the client is kicked and banned for 10 minutes. Commands of this type include toggling the console, toggling chat status and taunting. [Torr Samaho, SuperGod]
* Extended the server side client command protection to protect from commands the client is allowed to use often, but that still can be abused for a DOS attack. If a client floods the server with such commands (more than 100 in 10 seconds), the client is kicked and banned for 10 minutes. Commands of this type include toggling the console, toggling chat status and taunting. [Torr Samaho, SuperGod]


==== 0.97d5 ====
==== v0.97d5 ====
* Added server side client command protection. If a client floods the server with protected commands (more than 6 in 60 seconds), the client is kicked and banned for 10 minutes. [Torr Samaho, SuperGod]
* Added server side client command protection. If a client floods the server with protected commands (more than 6 in 60 seconds), the client is kicked and banned for 10 minutes. [Torr Samaho, SuperGod]
* Fixed: Certain kinds of chat messages that only consist of color codes and white spaces wiped out all other messages currently on the screen. [Torr Samaho, SuperGod]
* Fixed: Certain kinds of chat messages that only consist of color codes and white spaces wiped out all other messages currently on the screen. [Torr Samaho, SuperGod]
Line 2,593: Line 2,971:
* The player who "You've taken the lead!", "You've lost the lead", etc. announcer events refers to is now the display player, not the console player.
* The player who "You've taken the lead!", "You've lost the lead", etc. announcer events refers to is now the display player, not the console player.
* Instead of randomly being able to get invulnerability with the random powerup, you now get the guardsphere instead.
* Instead of randomly being able to get invulnerability with the random powerup, you now get the guardsphere instead.
==== v0.96f ====
* FIXED THE INFINITE LOOP BUG! This means that not only do servers no longer lock up and eat all the CPU, but the "Abnormal number of movement commands" kick should not occur anymore as well (unless of course you're actually cheating!).
* Team scores that do not trigger the announcer are done appropriately in network games.
* Skins that are scaled now appear properly in the finale.
* Players no longer spawn with the super shotgun in Doom 1 in LMS.
* Fixed problem where if you're in freeze mode, and respawn or end the level, you cannot move until turning off freeze mode.
* SetHudSize() now works properly in network games.
* Fixed problem where if the "map" or "changemap" commands were used with map rotation on, it wouldn't adjust the current position in the map rotation list properly.
* Skulltag now allows reuse of the LAN socket. This means that if you have two instances of Skulltag open, you can see LAN servers in the local server browser in both instances.
==== v0.96e ====
* Rewrote the "checksum" aspect of network games! It's now referred to as "level authentication". Now, level authentication is done prior to joining servers (so no more joining the game, and then immediately being kicked afterwards), and has a nicer error message.
* Fixed the bug where clients would get kicked for "Abnormal level of movement commands detected!" if the CPU on the server machine was overloaded.
* Rewrote the ban system so that it no longer parses the ban file each time it checks to see if an IP is banned. This should eliminate the "Couldn't open banfile!" warning messages.
* If you fire a missile, die, and respawn, you now get credit for the frag if it hits someone.
* Fixed bug where players who joined servers in the middle of a game would sometimes appear in-game on the scoreboard, when they were actually spectators.
* Fixed bug where holding down a button during intermission could sometimes rapidly toggle your "ready to go on" status.
* Fixed bug where bots could not open doors.
* The score in the bottom left now properly displays during Team LMS games.
* Fixed bug where when joining some teamgame maps, you would be spawned as an active player without a team.
* You can now spynext out of the eyes of your teammates in Team LMS when you are killed.
* You can no longer suicide during a duel using the "kill" command.
* Slightly adjusted the position of the "You have the blue flag!", etc. messages so they don't overlap the "You fragged <name>!" messages.
==== v0.96d ====
* Upgraded the ZDoom version to 2.0.63a! That means that you can now create custom actors with the DECORATE lump! REJOICE!
* Revamped the entire sector system in client/server games! Floors, plats, doors, etc. ought to sync up much better now. In addition, many new types of floors, plats, doors, etc. that didn't work before now do (such as perpetually moving floors).
* Made a number of small improvments to the "WAITING FOR PLAYERS" and "SPECTATING" displays.
* Added a new "Messages..." option in the menu of the server console! The window that comes up has options for timestampping, logging, and more! This is accessible through the "Settings" menu.
* Servers now minimize to the system tray! You can disable this if you'd like, by setting "sv_minimizetosystray" to "false".
* The server window caption now reflects sv_hostname, instead of always being "Skulltag v0.xxx Server". Now you should be able to distinguish between servers when alt+tabbing through them, and having them all pop up from the taskbar in Windows XP.
* Added new and improved Hectebus sprites! Thanks Agent Spork!
* Added the ability to configure which weapons you start with in LMS/TLMS! The weapons that you start with are now controlled by the variable "lmsallowedweapons", which can now be changed with the commands "lms_allowpistol false", "lms_allowshotgun true", etc.
* Added a nice new set of messages that display in the upper-portion of the screen whenever you frag someone, or are fragged in deathmatch games. Yet more stuff inspired by Quake 3! :) You can disable this in the "Display Options" menu if you wish to.
* Greatly improved the method of selecting maps when sv_randommaprotation is enabled! Now, maps are not repeated twice in a row, and there's much more randomization.
* Completed the "Server information" dialog box for servers.
* Added a new "Statistics" dialog box, selectable in the server menu! It shows you statistics for your server, such as the total data transferred, maximum number of players on the server at one time, etc.
* Updated the graphics on the SPREAD rune! It looks great now! Thanks, killingblair! :)
* Improved the team picking mechanism for whenever the server chooses a team for a player, and whenever a player selects to pick a random team.
* Improved the "Spectating" message that displays when you're spectating. Now, it displays more helpful messages, including your position in line, should be you be in line waiting to play!
* If everyone leaves a map when playing on a server, the map now restarts after 5 minutes.
* Bots can now use "$level_mapname" and "$level_levelname" in their chat strings to substiture the lump name of the map, and level name of the map respectively.
* Added a "Cycle with original order" option to the weapon menu. When enabled, this will pick the next/previous weapon in your weapon slot list when using the weapnext/weapprev commands, instead of using your weapon preference order.
* Added a nice little display that shows the current weapon selected when cycling through weapons with the weapnext and weapprev commands. It can be disabled by setting "cl_showweapnameoncycle" to false.
* Rewrote a good portion of the scoreboard code. Players are now grouped together better (ex. all spectators are drawn next to each other, all dead players are drawn next to each other, etc.)
* Added a new "sv_disallowbots" option. When set to "true", this will prevent bot pathing nodes from being created, and also disallow bots from being used. This allows the memory usage of servers to go down drastically.
* The "Frags" column in the server console now changes to "Kills" in cooperative, and "Points" in teamgame modes.
* LMS matches can now end in a DRAW GAME! Now, if the last two players left standing die in the same frame, the match ends in a draw game, instead of the loser being whoever's death code was executed first!
* Updated the Skulltag parts of the TNT and Plutonia map info lumps to match the default Doom 2 parts. (ARE YOU HAPPY NOW LIN? :P)
* Added the ability for maps to disable to creation of bot nodes by specifying "nobotnodes" in the MAPINFO lump. This is to help large levels load faster. (Oh yeah, this also means bots won't work on those levels).
* Servers now ignore launcher queries that occur within 10 seconds of each other.
* Servers now ignore launcher queries from IPs that have been banned from the server.
* Hectebus fireballs now leave scorch marks.
* Made a small change to the automatic team picker to avoid constantly having the same teams between maps.
* Added a "cap framerate" option to the "Display Options" menu.
* A more detailed error message now displays if the ban file could not be opened.
* You can now switch multiple weapons at a time when using the "weapnext" and "weapprev" commands.
* Text colors are no longer a shade brighter than they should be.
* Fixed bug where player's names would remain on the scoreboard window after disconnecting.
* Fixed bug that allowed a sped up computer hack to cause players to move and shoot many times faster.
* All players are now hidden from view for spectators in LMS/TLMS games. Spectators are also no longer allowed to spynext in LMS/TLMS games. This prevents spectators from giving away locations, and other valuable information about players still in the game.
* Fixed the "You lost your body. Bad dehacked work is likely to blame." bug that would happen periodically in multiplayer games.
* The "consecutive deaths without a frag" counter is now reset at the beginning of each duel/LMS match. As a result, you can no longer receive "You Fail It" or YSINE medals after dying once, twice, or any amount lower than the required number of deaths for those medals.
* Fixed bug where if you changed teams, your old body remained solid (you could bounce grenades off it, etc.)
* Fixed bug where some items would always face east in network games, even if they had a different angle.
* Fixed bug where players who joined servers in the middle of a game would sometimes appear in-game on the scoreboard, when they were actually spectators.
* Fixed a problem with the Team_GivePoints() ACS function. It now works properly.
* Spectators can no longer telefrag (however, this only had the potential to occur in single player games).
* Terrains that splash when you land on them (such as water) no longer create multiple splashes in multiplayer.
* Fixed D2DM7, so that you can no longer rocket jump "outside of the level".
* Then proper weapon now displays when spynexting your buddies when you are not a spectator.
* Made some tweaks to D2ST1, so now you're less likely to get snagged on posts.
* Rewrote a portion of the launcher query protocol to make it use less bandwidth.
* You no longer get kicked for cycling through connection types at the multiplayer menu.
* Fixed a problem where you couldn't toggle your "ready to go on" status during intermission in network games.
* Made a fix so that it should now be impossible to be kicked for userinfo flooding while connecting to a server.
* Fixed cooperative problem where the total number of monsters remaining could be negative, due to the total of monsters not being increased when a monster was revived by an arch-vile.
* The level end delay is now reset if you change maps using the "map" command.
* Platforms that aren't activated by a line now work properly.
* The appropriate bullet puff type is set before enemies fire the railgun. This fixes a bug where if the enemy fired the railgun after the BFG10K would shot, all bullet of blood puffs would be BFG10K explosions.
* "Timelimit hit." now displays on the client end when time expires in a multiplayer game.
* Hidden skins are no longer displayed when the "skins" console command is used.
* You can no longer join LMS games during the win sequence.
* Removed the "droprune" command (it didn't do anything).
* Spectators are no longer factored into deciding whether or not your lead state has changed in a deathmatch game (ie. You can't take the lead against a player who's spectating).
* The BFG10K shots now show up properly when "Bullet puff type" is set to "particles".
* Fixed a small problem where a backslash ("\") at the end of a chat string would not show up properly.
* Banning a player with two words in his name now works properly from the "Kick/ban player..." menu item.
* Bot pathing nodes are no longer created in client games. This should cut down on the memory usage.
* Your view is now reset if you're spy's through the eyes of someone who becomes a spectator.
* Players are now sorted by fragcount on the scoreboard in team LMS.
* If a player gets another frag within two seconds of receiving an "Incredible!" medal, he now receives another "Incredible!" medal, instead of an "Excellent!" medal.
* The "Server information" dialog box is now accessible under the "Server" menu, instead of the "File" menu.
==== v0.96c ====
* Skulltag now runs FASTER! Skulltag is now compiled with a different program, giving it quite a boost in speed!
* You can now set the "chatfrequency" property of custom bots in BOTINFO lumps.
* Added a new "mustwinallduels" property in campaigns, which defaults to true. When this is set to true, the player loses the level if he loses ONE duel against a series of bots!
* When defining new episodes, you can now set "botepisode"
* You can now set compatflags in campaigns.
* Added a new skin, "Slyor"! This skin is based on Klesk from Q3A, and is now used by the bot Slyor. Thanks RottKing!
* Added new abilities when defining a new episode in MAPINFO lumps. Now, you can specify whether or not an episode is a bot episode, and what graphic/text to display atop the botskill menu. More on this later.
* The saving of player's frags mechanism has been expanded and totally redone. In addition to storing frags, wins and points are saved now as well. Also, players frags, etc. are no longer saved when kicked from a server.
* Added placeholders for Daisy's death frames. Daisy no longer disappears upon dying.
* Added a new "GetFavoriteWeapon" botscript command. Like it says, it returns the favorite weapon of the bot.
* Added a "Currently showing <x> servers" display message in the internal server browser window.
* Made a fix to a section of the client code that should result in less slowdown.
* Bots can now have their chat strings in wads! Several new botscript functions have been added to support this: SayFromLump, SayFromChatLump, ChatSectionExistsInLump, and ChatSectionExistsInChatLump. You can also specify "chatlump" for each bot in BOTINFO.
* You can now continue to see what place you're in during LMS games on the scoreboard after you've been killed.
* Added a new warning message for whever you try to specify a script lump or chat lump for bots that exceeds 8 characters.
* The "invalid checksum" error now has a better error message for clients who get kicked because of it.
* Fixed bug that crashed servers whenever HudMessage was used within scripts. This prevented the D2ST1-3 from being played in multiplayer games.
* Fixed error in how deactivated actors are sent to clients who are connecting to a server. This prevented D2DM6 from being played in multiplayer games.
* Fixed the major slowdown problem with the bots on D2DM2.
* User info sent when a player is connecting to a server is no longer counted towards userinfo spam kick mechanism. This means that players who don't connect to servers quickly are no longer kicked. This hopefully fixes all of the player names left on the scoreboard problems, as well as an error causing the server to be full, when really it wasn't.
* Fixed problem where you could bounce grenades off some dead bodies in Last Man Standing.
* Fixed an exploit that allowed you to change visiblity to full brightness in single player, then connect to a server, retaining full visibility.
* Fixed bug where if a map was changed in a the middle of a Team LMS game, players couldn't rejoin the game because Skulltag still thought a match was going on.
* Fixed problem where after an intermission during some sort of team-based skirmish, bots would constantly respawn.
* When creating no bots in BOTINFO lumps, if no chat frequency is specified, it defaults to 50 (percent). Before, the chat frequency was not initialized, and would often be some completely random. This is why custom bots would rarely (if ever) say their roaming strings, killed strings, etc.
* Winning/losing in campaign maps other than basic deathmatch modes now works properly.
* Servers now spawn clients with their proper handicap on their first spawn.
* The true position and angle of polyobjects that have been either rotated or moved now appear accurately for clients connecting to a server.
* Fixed problems where the handicap would have strange effects if it was set over 200 or less than 0.
* Player's true starting health is now displayed properly on the scoreboard. Before, it could display as less than 1, which isn't possible.
* Fixed all problems with the internal server browser. It should work fine now.
* Frags now display appropriately in the "Frags" column of the scoreboard in Team LMS.
* "Ready to go on" icons now work properly during the intermission of LMS and Team LMS games.
* Fixed a frame of the SS Nazi skin that had a pink spot on it. Thanks RottKing!
* The Duel and Last Man Standing are now properly reset after a level ends. This fixes a bug where if you played a campaign duel map to completion, a second duel map wouldn't load up with the countdown.
* Fixed problem where in multiplayer, sometimes players could run, but not have their body animate properly.
* You can now spynext/spyprev in teamplay deathmatch, Team LMS, team instagib, and cooperative mode, like you're meant to be able to.
* The botscript command CalcSpread() now works appropriately in team-based games.
* Ambient sound triggering now works properly in multiplayer games.
* Fixed a problem where a player could join a server and have wins, even if that player hadn't played on the server (the wins of a previous player weren't cleared).
* The titles of the botskill menus ("DEATHMATCH", "SKULL TAG", etc.) are now properly centered.
* Changing your weapon pickup preference at the weapon setup menu no longer can result in getting kicked from the server in network games.
* Fixed bug where particle fountains that were dormant to the server would appear to be active for clients connecting to that server.
* Made a small change to the bots' roaming function to eliminate an infinite loop that occured in extremely small maps. You can now play with bots in canthide.wad. Ugh.
* Scrolling through autoaim choices on the player setup menu during a network game no longer results in you getting kicked.
* Fixed strange display problem in the server console where two lines would display on one merged line.
* Fixed server console display glitch that would happen in strings that had two or more color codes in a row (ex. "say \cg\cgHI!").
* The "Champion is <name> with <x> wins" string on the server console scoreboard no longer looks odd if the player has colors in his name.
* Scrolling sectors now work in network games.
* The appropriate railgun color now used in Team LMS games.
* Eliminated "You cannot change deathmatch/teamgame during a campaign." messages when trying to start a new game through menus after playing a campaign.
* Spectators are no longer respawned when a match starts in LMS/TLMS.
* Fixed the SINMAP and ABRICK3 textures that somehow got renamed.
* Fixed a problem where players telefragged by their own team members at the beginning of a round in Team LMS couldn't respawn.
* Made a change to reduce, if not eliminate the occurance of no items spawning on a level when connecting to a server.
* Fixed problems relating to the number of duels that have been played on a map.
* Fixed bug where bots would rapidly open and close doors.
* The "Kick player..." and "Kick/ban player..." menus now works properly on the server console.
* Fixed bug where picking up the random powerup would display the pickup message to everyone, not just the person picking it up.
* Decals placed on a map now spawn for clients in a network game.
* Fixed problem in CTF network games where if a player was carrying a flag, the spectated, it spawned two flags on the client end (and one would remain as a ghost if the flag was returned).
* Spawning a bot with an invalid script name no longer results in the game crashing.
* Specifying new start maps for new episodes with the MAPINFO lump now works properly.
* Fixed bug where setting a fraglimit could cause strange problems with Team LMS.
* Fixed a problem with the last frame of the invisibility sphere animation.
* Fixed problem with the SS Nazi's front firing animation.
* "Intellect" is now spelled properly in use with BOTINFO and botscript functions. Setting the "intelect" property in BOTINFO lumps however still works for compatability.
* Fixed bug where people leaving LMS games could produce bizarre results, such as restarting the countdown.
* Botskill icons and players' handicap now show up on the scoreboard in team-based modes.
* Fixed problem where actors who were not players did not have their water level status updated to clients.
* Light_Fade and Light_Glow now work properly in network games.
* Your player rank in LMS is now determined by your number of wins, instead of your fragcount.
* Fixed a problem with a few flats used in D2CTF8 that was causing them to show up as a slightly different color.
* Fixed a number of minor texture misalignments on D2DM8. Thanks Assmaster :P
* Fixed a number of patches for textures that weren't showing up properly in Doom Builder's texture selection window.
* Abaddon no longer fight with Cacolanterns, and Belphegor no longer fight with Hell Knights.
* Removed the "RBAN1" texture, since ST already has a texture that has this. If a map used it, and this breaks it, I can put it back.
* The "Nightmare!" graphic on the botskill menu now uses a different graphic lump than the gameskill menu. The lump name is "M_BNMARE".
* Color codes are no longer used in logfiles. Now, lines with colors in them shouldn't cause logfiles to look strange.
* You can now change variables with the campaign lock flag during a campaign when sv_cheats is enabled.
* Removed the campaign lock from the "botskill" var. You can now change botskill mid-campaign.
* Slyor now appears on D2DM7, instead of Torrent.
* Changed the fraglimit on D2DM7 to 25.
* sv_duelcountdowntime now defaults to 10, instead of 20.
* Handicap can now be set up to 200 in the player setup menu, due to you starting with 200% in LMS and TLMS games.
* Botskill is now clamped between 0 and 4. This should eliminate graphical errors on the scoreboard that would occur when set higher or lower than that range.
==== v0.96b ====
* THE BOTS ARE BACK! The bots are once again fully functional, and greatly improved! Enjoy! :)
* Players can now create their OWN CUSTOM BOTS, with CUSTOMIZEABLE AI! This is due to the fact that all the bots' logic is now scripted! More on this later.
* Bots now work in multiplayer games!
* Added two new deathmatch levels! D2DM4: Containment Facility, and D2DM8: Temple of Pain.
* Added a new skulltag level! D2ST3: Ring of Fire.
* Added two new CTF levels! D2CTF7: Den of Sanctity, and D2CTF8: Ghastly Abode.
* D2DM1 and D2DM2 have been completely redetailed! They look fantastic now!
* D2DM3 has been completely redone! It's much better now! :)
* Reimplemented, and completed revamped the CAMPAIGN system! (The campaign system controls the single player botmatches.) Now, users can create their OWN campaigns, using the CMPGNINF lump! More on this later.
* Added new Last Man Standing, and TEAM LMS mode! This works very similarly to Rocket Arena. Players battle each other until only one man is left standing, and then the match restarts.
* Added Team Instagib mode! It's essentially the teamplay deathmatch mode combined with instagib deathmatch!
* Added Instagib CTF mode! You can now play capture the flag games... instagib style!
* Added a new monster, the Hectebus! This monster is a level two Mancubus. Thanks TheDarkArchon for the sprites, and Espi for the fireballs!
* Added a new monster, the Abaddon! This monster is a level three Cacodemon. Thanks Tormentor667 for the sprites!
* Added a new SIMPLER method of creating CTF maps! Now, all you have to do is place your flags and starts, and you're done! This also creats a compatible CTF standard with other ports, such as ZDaemon. This also works with ONE FLAG CTF!
* Added Legacy style weapon preferences! Players can now set their weapon preferences in the weapon setup menu (accessible through the player setup menu), and change their switch weapon on pickup preference to "Never", "Only for higher ranked weapons", and "Always"!
* Added a graphical server console! It is now far easier for server admins to manage their servers. It's also prettier :)
* Servers can now ban players! Bans can now be set in the server console, as well as turned on/off with the sv_enforcebans cvar.
* Improved the spam chat kicking functionality. People now cannot get away with as much spamming of macros, etc.
* Added several new bots! ... but you'll just have to find them yourself! :)
* Improved how players join teams in teamplay deathmatch! Now, all players start as spectators, and when they hit space to join the game, select which team they want to join.
* The way players now join a team in teamplay deathmatch now applies to teamgame maps that do not have temporary starts (so now level designers aren't forced to make a team selection room).
* Rerecorded all the announcer sound effects, so hopefully they're even better! (NOTE: The old one has been left in as a seperate profile!)
* Added a new "Fisting!" medal, which is awarded for fragging an opponent with your fist!
* Added "You have the flag!", "Your team has the flag!", "The enemy has the flag!", and "White flag returned" announcer events for One Flag CTF.
* Implemented "ready to change maps" functionality at the intermission in network games! Players can now hit a button during intermission to incidcate that they're ready to change to the next map.
* When bots chat, they can now include player names in their chat string! This is done simply by placing codes such as "$player_killedby", "$player_random_notself", etc. in their chat strings. More on this later.
* Chubbs now has more frames of animation! In addition, some of his existing frames have been improved! Thanks Seth Gorden for coming back to us! :)
* Improved the hidden bot/skin system! Now, when you add a hidden bot or select a hidden skin, it is then selectable when choosing your skin at the player setup menu, or selecting a bot at the skirmish menu. Revealed bots and skins are also now saved into your config file, so they're available next time you load Skulltag!
* Added the "SS Nazi" skin! Now you can play Skulltag as a Wolfenstein character!
* Added the "Super Shotgun Guy" skin! Now you can play as one of Skulltag's new monster, the Super Shotgunner!
* Added a touched-up "Phobos" skin, based on the character in Q3A! Thanks RottKing!
* Added the "Strife Guy" skin, who is based on the guy from Strife! (duh)
* Added a new linespecial (153) called Team_GivePoints! This ENSURES that Domination can now be scripted with no problems!
* Added several new textures that can be helpful to teamgame map authors! Thanks exp(x)!
* The turbosphere is now complete, graphic-wise!
* The haste rune is now complete, graphic-wise!
* The high jump rune has now been significantly improved, graphic-wise!
* The server window now displays "FIGHT!" when duels and last man standing matches start.
* Now, when using "rcon", you can see the output on the server window on the client end!
* Massmouth is back! He's also sporting a new skin, and new chat lines! Thanks Cyb! :)
* Added "sv_randommaprotation", which when used with "sv_maprotation", randomly selects a map from the map rotation list for the next map.
* Teammates can now chat with each other by using say_team in teamplay deathmatch.
* Added "winlimit", which works similarly to fraglimit, duellimit, etc., but works with Last Man Standing games.
* Team scores are now reset to 0 if everyone on the server leaves.
* Added a new compatflag for using old intermission screens and music during intermission, as opposed to the new Skulltag ones.
* Added a new compatflag to disable stealth monsters.
* Your color is now saved while cycling between skins. If you switch to a skin that has a preset color, then switch back to a skin that doesn't have a preset color, your old color will be retained.
* Now, when you switch to a map using the "map" command that's in the map rotation list, the current position in the map rotation list is set to that spot in the list.
* The "Accuracy" and "Precision" medals now work again.
* Skulltag now keeps track of the amount of time each player has been in the current map, and it is displayed on the scoreboard.
* In cooperative mode, players are now sorted on the scoreboard based on their kill count.
* When Skulltag tries to bind to a port, if the port is not available, it simply finds an available port, and bind to it.
* The puff type display options now work in network games.
* Added support for skins with sounds that start with '*' in SKININFO.
* Added thing 9991, which performs the action attached to it whenever an actor is in the same sector.
* If a player has a changed colormap along with the turbosphere or haste rune, the colormap is now applied to the trails.
* Added improved the Belphegor's sprites. Thanks Nanami!
* Added tall versions of the Doom episode 3 and 4 skies! Thanks Seismos!
* Skulltag's invisible bridges now possess the "act like bridge" flag, allowing objects to rest on them. This also fixes the problem on D2CTF1 where flags could drop down below the bridges.
* The minigun has new on-ground graphics! Thanks Scuba!
* Added "don't restore frags" options for clients who don't want their fragcount to restored when they reconnect to a server.
* The fan flats in skulltag.wad now animate by default.
* Fixed problem where the client side player prediction would cause jerkiness when running up stairs. This means that games will now be much smoother!
* Fixed annoying problem in network games where you would bob up and down if you were standing on a ledge.
* Fixed all reported crashes.
* Players who spam user info changes (ex. running scripts that change your skin every few ticks) are now kicked from the server.
* Fixed problem where occasionally hitting the use key against objects (like you do to open doors) would not work right.
* The railgun attacks are now armor piercing, like they were meant to be.
* Fixed problem where you could set a negative handicap, thus allowing you to reach very high health levels.
* Fixed problem where monsters would continue to attack your invisible body if you went into spectator mode.
* The respawn invulnerability now protects against railgun shots in instagib.
* Fixed memory leakage caused by idle servers.
* Thing_Activate/Deactivate now work properly in multiplayer games (YOU'RE WELCOME SPUNKMAN!)
* Fixed STSKY5 so it now repeats vertically properly.
* Fixed bug where the game would freeze up if you tried to suicide during the win sequence of a duel.
* Fixed bug where you could activate the IDDT map cheat in single player, and then connect to a server with the cheat still active.
* Fixed problem where if you ran a server and tried to change a variable that's archived and part of the server info (such as compatflags) with the command line or a config file at startup, it would not set properly.
* Fixed problem where if a player's speed was changed through ACS over the network, his movement could appear to be all jerky.
* The "SetWeapon" ACS command now works properly in multiplayer.
* Fixed problem where if the server had their blood type display option set to "particles only", clients connected to the server would not see any blood sprites.
* Timelimit is now applied in team games.
* Removed the FWFALL1 and FWFALL2 textures. Hope no one was using them! They were the essentially the same as WFALL1.
* Did the same for the WFALLxx patches.
* The sound once again works on the polyobject doors on D2CTF4.
* Fixed the skies on many of the CTF maps so that they scroll, as originally intended.
* Fixed bug that prevented "Press space to see front/back" from showing up on the player setup menu in high resolutions.
* Fixed problem where players' orientations weren't correct after using a teleport without fog in network games.
* A_FireRailgunRight/Left now works correctly in multiplayer games.
* Fixed bug where you couldn't pass arguments that had spaces in them using rcon.
* Fixed bug where intermission animations would display in Doom 1 even when the Skulltag win/loss screen would display.
* Fixed bug where if you joined a game while spectating through someone else's eyes, you continued to spectate through their eyes.
* Fixed bug where the first player would always be the winner of a duel if a timelimit was set and time ran out.
* Fixed the wallrun problem when the "plasma bump bug" or oldschool modes were set.
* Fixed problem where if you tried to connect to a server that was full, you got a garbled error message.
* Spectators no longer make the "oof" noise when slamming into walls.
* Fixed problem where if you were spectating through someone's eyes, and they died, you wouldn't continue to spy through their eyes when they respawned.
* Fixed the IDCHOPPERS cheat. It now works properly.
* Removed the "no respawn" dmflag. It has been replaced by the new "last man standing" mode.
* For items to respawn in cooperative mode, the "alwaysapplydmflags" cvar no longer needs to be set to true.
* Slightly moved where the player who is in your crosshair's name is drawn so that it is not overlapped by "Waiting for players", "Spectating", etc.
* Wads placed in the \BOTS directory are now automatically loaded.
* Gamma has been changed from a human bot to being one of the robot bots. Cygnus is now who he used to be as a human.
* Spectators are now skipped when using the spynext and spyprev commands.
* Gave the "Skulltag" game mode its own cvar. Now, "teamgame" by itself is more generic.
* In team games, players are now sorted according to their frags/points on the scoreboard.
* When messages are off, you no longer hear the "beep" sound when someone talks.
* Running a server with -private now merely makes sv_updatemaster false.
* Changed the amount of time the server gives clients to send their checksum from 5 to 15 seconds. This will hopefully reduce instances of kicks due to "did not receive player's checksum".
* Cheats can now be used in any single player mode (including DM and teamgames) without required sv_cheats to be enabled.
* sv_updatemaster is no longer archived.
* Each level in Skulltag now uses a unique music lump.
* "connectiontype" now defaults to "cable".
* Greatly cleaned up skulltag.wad. It ought to be much less of a pain to navigate now :) (Thanks XWE!)
* Made some slight changes to the player setup menu to accomidate the "user info spam" functionality.
* All the CTF maps included in Skulltag now use the simple CTF map standard.
* The white flag now returns after 30 seconds in One Flag CTF mode, just like normal flags do.
* Weapon switching on pickup is now forced in oldschool mode.
* Oldschool now uses the old intermission screens and music, as opposed to the Skulltag ones.
* The scoreboard and all its messages now display from the display player's point instead of view, instead of the console player's.
* The Reflection rune now hurts the attacker with 75% of the damage done to the one with the rune, instead of 50%.
* Made some tweaks to D2DM1, including minor visual changes and the removal of some health.
* Changed D2DM2 so that you can no longer get up to the rocky waterfall area (and fixed missing textures that were previously viewable from up there).
* Bringing up the "join game" prompt while a spectator is now always activated by hitting space, instead of whatever key "+use" was bound to.
==== v0.95k ====
* Duels no longer restart when a spectator leaves the game.
* Fixed problem where dropped flags were often invisible to clients not using the cable connection type.
* Fixed problem where the duel countdown didn't show up on the client end after the duel limit is hit.
* Spectators can no longer suicide.
* Fixed glitched lift on D2CTF2.
* The settings sv_forcepassword and sv_forcejoinpassword are no longer archived (meaning you have to explicitly set them to TRUE if you want them to be on when you launch a server).
==== v0.95j ====
* The join queue now works in ALL gameplay modes; not just duel. So now, in packed servers, you can "wait in line" to play when all the server slots are taken. When a slot opens up, you will then automatically spawn in, instead of having to manually join the game.
* Spectators can now pass through teleports. No more being stuck in the team selection room while spectating!
* Added a Doom 64 guy skin. Thanks RottKing!
* The room now lights up when you fire the railgun like with other weapons.
* Added a missing announcer sound for the Perfect medal.
* Added "Wins" display alongside "Rank" and "Spread" while dueling.
* That annoying bug where a letter would rarely, randomly drop out while typing in a chat string should be fixed.
* The time freeze sphere is disabled in multiplayer for now.
* Fixed problem where the effect of the random powerup could be different on the client end from the server end.
* Fixed a bug where dropped weapons were giving twice as much ammo as they were supposed to.
* When a duel begins, any missiles fired during the warmup are now removed.
* Fixed problems relating to duellimit. It should work fine now.
* Fixed problem where you could have up to 350% armor with 150 max. armor bonuses.
* Fixed a small bug where the fragcount would display on the scoreboard under the deaths column in teamplay DM.
* Fixed some problems with the dynamic wad loading related to the MAPINFO lump.
* You can no longer get Excellent/Incredible/Domination/Total Domination medals by fragging your teammates with friendly fire on.
* Players who join a team and them spectate now lose their team affiliation.
* Improved the gameplay and visuals of d2ctf6.
* Improved the gameplay of D2ST2. The lifts have been sped up, and additional ammo and armor has been added.
* Improved the gameplay and visuals of D2ST1. It is now more clear which team the bases and goal areas belong to, and an alternate path into each base has been added.
==== v0.95i ====
* Added dynamic wad loading! Wads can now be loaded from inside Skulltag with the "load" command.
* Added checksum checks on wads! Now, the server makes sure that players aren't using any cheat wads!
* The ingame browser now automatically loads the appropriate wads when connecting to a server.
* Upgraded Skulltag to ZDoom version to 2.0.60.
* Added "Allow cheat skins" option. When off, players that use skins flagged as cheat skins will appear to have the default skin. Hissy, Doomcrate, Romero, and Daisy are considered cheat skins.
* Added Victory and Perfect medals! Victory is awarded when you win a duel, Perfect is awarded when you win a duel with the other player having zero or less frags.
* Added "You Skill Is Not Enough!" medal! This is awarded for dying 10 straight times without a frag.
* Implemented join passwords! Servers can now set it so that players must have a certain password to join the game. sv_forcejoinpassword and sv_joinpassword control this on the server end.
* Added the "duellimit" variable! Now, when this is set, the level will change after the number of duels equals the number you have "duellimit" set to.
* Added an option to scale the scoreboard! The scoreboard now automatically stops scaling when a lot of stuff is being displayed on it so that everything fits onto it!
* Filled in missing Daisy skin frames with dummy frames.
* Added "r_drawweapon", which controls whether or not to draw your current weapon. Can be useful if you'd like to not draw your weapon while taking a screenshot, for instance.
* Fixed major security hole where clients could rcon a server that didn't have a password set.
* Fixed reported crashes.
* Fixed bug where gibbed bodies would turn into normal corpses after the player respawned in network games.
* Fixed co-op bug where if people connected to a server where monsters were already dead, and had a DSL connection type or less, they would see blood and missiles would explode if they shot over a corpse.
* Fixed "double explosion" problem that would occasionally happen with missiles.
* Fixed problem where players could hear the chainsaw idle sound from other players even when they weren't using the chainsaw.
* Fixed problem where the railgun could shoot past "block everything" lines.
* Fixed bug in the ingame server browser where you could not scroll down when there were more than 8 servers in the list.
* Fixed bug where the face would sometimes not show up.
* Fixed bug where occasionally, players would get a "Server is full" message when a slot was still left.
* Fixed bug where there was an item on a lowered sector, new clients joining the game would see the item in the original, unlowered position.
* Fixed bug where if you did "weapnext" or "weapprev" while spectating, the game would crash.
* Removed the invisibility sphere from D2DM1.
* Railgun shots that strike team members no longer go toward earning Impressive and Most Impressive medals.
* Made it easier to read chat strings in the console.
* You can no longer kill yourself during intermission.
* Cvar "password" changed to "cl_password".
* Disabled the "kill" console command in oldschool mode.
* The "no exit" dmflag is now applied in oldschool mode. Also, if you try to hit the exit switch while "no exit" is on, the switch will simply not work instead of killing you (oldschool only).
* The behavior of the "allow instant respawn" compatability flag is now always applied in oldschool mode.
==== v0.95h ====
* Added the in-game server browser.
* Greatly revamped the DUEL gameplay mode! Now, players can wait in line and join once the current duel ends. Also, instead of the level changing when a duel ends, the loser is kicked into the spectators, and the next person in line joins him!
* Dramatically improved the player prediction. Movement is now much less jerky, especially on high ping servers!
* Skulltag now broadcasts server information, meaning that if a launcher (such as the in-game browser) listens properly, it can pick up servers on a LAN! (Translation: If you host a server on a LAN, and browser for local servers in the in-game server browser, it will show up!)
* Added sv_duelcountdowntime, which controls how long a duel counts down in seconds.
* Upgraded Skulltag to ZDoom version 2.0.57.
* Skulltag can now go between client mode and single player mode without having to restart.
* Now, if users launch a server with "-host #", "#" will become the maximum number of clients.
* Made a slight tweak so that plasma bumping on MAP01 behaves exactly like doom2.exe when the plasma bump compat flag is set. (Thanks cph!)
* Added dmst-duel.cfg and dmclassic-duel.cfg to the install package.
* Fixed problem where BFG9000 sprays were being done on the client end if you had connection type at 56k or DSL.
* Fixed all reported crashes.
* In co-op, game boes back to the initial episode map after getting to a finale of some sort.
* Fixed problem where scaled skins didn't appear to be scaled in multiplayer.
* Fixed overlapping text problem that occured when some messages were displayed in video modes where the width isn't a multiple of 320.
* Fixed problem where rejoining a teamplay DM server resulting in your saved number of frags being readded to the frag total.
* Icons now inhereit the render properties of their tracers. (ex. If you have an invisibility sphere, your icon will appear invisibile too).
* The quit and exit console commands can no longer be called with the ConsoleCommand ACS function.
* You frag total is no longer subtracted from the team frag total when you go into spectator mode.
* Summon cheats now work in multiplayer if sv_cheats is enabled.
* Sound is now played even when the window is not in focus.
==== v0.95g ====
* Upgraded Skulltag to ZDoom version 2.0.53.
* Made a massive fix to speed up item spawning on the server end. This results in much smoother, less laggy games. (Especially in levels with tons of objects. Co-op games should be MUCH better now.)
* Made large optimizations to how sectors work over the network. They are now smoother and less laggy!
* Applied "connection type" to ALL weapons. 56K users are simply told when a weapon is fired, and by who. DSL users are told that, and the actual XYZ, angle, and pitch of the shot, so they can recreate the shot on their end. Cable users get the information about each actual pellet or missile spawned by the weapon firing. The higher the connection type setting, the higher the precision, and the higher bandwidth used.
* Added sv_maxplayers, which limits the amount of active players in the game. People who join the game beyond this limit spawn as spectators.
* Added a trail effect for when players have the turbosphere or haste rune.
* Added field for the password that clients use to connect to passworded servers to the multiplayer menu.
* Added new compatibility flag that enables the original Doom sound curve.
* Add safety measures to the ConsoleCommand ACS function.
* Applied logic for all dmflags that I hadn't gotten around to doing.
* Added option to start as a spectator when connecting to servers. The option can be toggled via the multiplayer menu.
* Drain and reflection runes now work properly.
* Spread now works with all Heretic and Hexen weapons.
* Added "taunt" to the customize controls menu.
* Added con_textcolor, which allows disabling of color for text strings.
* Added chat flood protection. Now, players who spam servers with chat strings get kicked.
* TakeInventory called by server-side scripts now shows up properly on the client end.
* Improved spying through other people's eyes while in spectator mode.
* Added "plasma bump bug" compatibility flag. When this is enabled, plasma bumping on MAP01, BFG bumping on dwango5.wad MAP01, etc. work "properly".
* Objects spawned by server-side scripts through Thing_Projectile now work.
* Added blue/red leads, teams are tied announcer events for teamplay DM mode.
* Added HUD display for team scores during teamplay DM mode.
* Added limited support for Heretic/Hexen weapons over the net.
* Item respawning has been moved more towards the server end. This removes item respawn problems under certain conditions (ie. item respawn in cooperative).
* While spectating, players' whos eyes you spy through, now display the proper view and weapon bobbing.
* Added "disable taunts" compatability flag. This is important because before, the silent BFG effect was triggerable by taunting.
* Fixed major server crash where if the level remained unchanged for more than a day or so, and someone joined, it would crash.
* Desaturated sectors now appear that way on the client end.
* Fixed connection problems related to the level being loaded, without having gotten the player spawning packet(s) yet.
* Change music functions called by server-side scripts now work on the client end.
* Fixed problem where if a texture was changed to "-" during the course of a level, it would not show up correctly for connecting clients mid-level.
* Fixed problem where going into spectator mode while carrying an important object such as a flag or the terminator, would result in the object disappearing for good.
* Textures that have changed during the level are now updated to joining clients.
* Fixed problem where typing a chat string with a % sign would would result in a bunch of different characters instead of the actual % sign.
* Fixed bug where the joystick would not work in multiplayer games.
* Fixed bug where if you fired plasma against the wall, it didn't appear to come out at all on the client end.
* Fixed rcon problems related to the "map" command.
* Fixed problems with "floating missiles" when connecting to servers.
* Made fix to make the BFG firing sound play at the proper time on the client end.
* The HealThing function called by server-side scripts now works.
* Fixed problem where if the was packet loss on the server end, your missiles would appear to come out at the wrong pitch.
* Fixed problem where if you were spying through the eyes of another player during coop, spectator mode, etc., and they disconnected, Skulltag would crash.
* Players now grunt and have their view height shift when hitting the ground hard on the client end.
* Fixed bugs where weapons appeared to be cleared between levels in co-op, but that really isn't the case.
* Fixed bug where spectators did not show up on the scoreboard in teamgame mode.
* Icons now spawn directly over the player instead of at their feet (with framerate uncapped, medals in pervious versions would "float" up to the top of the player).
* Fixed memory leak related to sound on program exit.
* Voodoo dolls now work again.
* Fixed problem where enter scripts would only execute for one player.
* Fixed problem where sometimes "YOU NEED THE <RED, YELLOW, BLUE> KEY" messages sometimes did not appear on the client end.
* Fixed problem with obituary messages for custom wads where when players' had colored names, their color would persist to the end of the message, instead of reverting back to gold.
* Fixed problems where dropped dehacked pickups would appear to not disappear over the client end.
* Clients now receive dmflags, etc. updates if server updates them using "sv_nomonsters", etc. commands.
* Fixed bug where if the "no monsters" flag was set, and a co-op level was being played on, the monsters still spawned, and appeared to stand in place on the client end.
* Added unique spawnable codes for the dark imp fireball and cacolantern fireball.
* Fixed problem where picking up dehacked items on the client end would not make them disappear.
* Fixed problem where score ladder on D2ST2 occasinally could not be climbed.
* Flag return ticks are now reset after each level.
* Fixed problems relating to being permently frozen if you're in time freeze mode, and restart the level.
* Monster pain chance is now no longer factored into the client end.
* Fixed telefrag bug where you appeared to be dead on the client end, but were still alive.
* Normal player sounds are now played when cl_skins is false. Before, even though the player sprite was normal, the sounds associated with the skin would still play.
* Fixed problem where the silent pickups compatability flag wouldn't work if the silent BFG compatibility flag was enabled.
* Autoaim now always works in oldschool mode.
* Fixed a number of minor co-op bugs.
* Removed cl_noalpha. Turns out it just duplicated the effect of r_drawtrans.
* Regeneration and degeneration are no longer handled on the client end.
* Objects are now always infinitely tall in oldschool mode.
* Players in cooperatvie mode are now considered teammates. The teamdamage cvar now affects how much you can damage your teammates.
* Text lines are no longer broken up into two or more lines if they're too long to fit the screen in oldschool.
* The console is now available in oldschool mode.
* Servers can now enable sv_cheats, allowing cheats.
* Made r_drawtrans settings save to config file, instead of being set to the default each time Skulltag is loaded.
* Changed chatting in oldschool mode so it more closely resembles normal chatting.
* Changed grunt when pushing against a wall to being client-side (of course, other clients still hear the sound).
* Changed grunting when landing the ground to being client-side (of course, other clients still hear the sound).
* Split up the "Cable/DSL" connection type into two seperate types. Now, if both the server and client have at least a cable connection, SSG pellets will appear in exactly the right place, as opposed to their position being generated on the client end. (WARNING: This takes a LOT of bandwidth! Only do this if you're hardcore!)
* Slightly lowered the volume of the firing sound for the minigun.
* Railgun and BFG10K now produce decals.
* Missiles now spawn with the exact correctness of speed, position, and angle on the client end if both the server and client have at least a cable connection.
* Custom names are now allowed in oldschool mode (no more "Green", "Indigo", etc.).
==== v0.95f ====
* If the client cannot connect due to the version different, the server says which version it's using.
* Made some more optimizations to the player movement network code, so the same results are acheived with less bandwidth (translation: less lag).
* Added new fireball graphics for the cacolantern.
* Underwater movement is now far less jerky.
* Sounds triggered by server-side scripts now work.
* Fixed connection problem where a bunch of garbage would spew in the console, and you'd get a "Waiting for server..." message.
* Fixed crash on client end that would happen if the server told the client to print an invalid type of HUD message (never really should happen).
* Fixed "flashing red screen" problem.
* Chat prompt is now visible for people using "scale text in high res".
* Pistol was being fired both client-side and server-side. Now it is only fired server-side.
* The BFG10k shooting is now server-side (before, the gun would appear to fire on the client end, but other players wouldn't see the shot).
* The BFG10k shot and the BFG9000 shot had the same spawnable code for scripts. This has been changed (BFG10K shot is now 217).
* Fixed problem where GiveInventory called by server-side scripts would spawn a version of the item on the client side that could not be picked up.
* Fixed problem where drain and rage icons were mixed up on the status bar in fullscreen.
==== v0.95e ====
* Greatly reduced occurance of connection error occasionally experienced by clients.
==== v0.95d ====
* Added [https://bitbucket.org/Torr_Samaho/zandronum/src/7e43a0725ec1c453ba91a9a7767dfffb5aec4728/docs/Skulltag%20Version%20History.txt?at=default&fileviewer=file-view-default this file].
* Added "connection type" field to the player setup menu, and "sv_connectiontype" for servers, which determines how precise the data sent back and forth between the server and client is.
* Added cl_showcommands, which displays all commands coming to the player from the server.
* HUD messages called by scripts run on the server end now show up on the client end.
* Actor and player properties set by server side scripts are now sent to the clients.
* Now when switches or lines change a sector's light level, it is sent to the clients.
* Dormat objects now appear that way on the client end.
* Give inventory commands called by server scripts are now reflected on the client end.
* Added "<team> has won" to the teamgame intermission screen.
* Textures now set by server side scripts now show up on the client end.
* Line transparency set on the server side now shows up on the client end.
* Fixed two problems after level change: One where a player's names, skins, etc. would be applied to another player, and where players would bomb to the console with a "no player # start" error message.
* Fixed problems with "double vertical" and "double horiz and vert" detail modes, and all other reported crashes.
* Clients no longer play "blue leads, red flag taken," etc. messages when connecting to an active CTF/ST server.
* Fixed ANIMDEFS lump so switches in Hexen now change graphic when activated.
* Having cl_identifytarget on no longer activates lines activated by shooting when your crosshair is over that line.
* Flags crushed by sectors are now returned.
* If a flag is now slightly within a wall, ceiling, etc. it now spawns anyway. (Before, on d2ctf5, the blue flag would not return if the trap lift was up, making it gone permanently.)
* Fixed flag respawn problems and missing texture on d2ctf5.
* Fixed mancubus firing.
* Weapons are now cleared after intermission in DM, CTF, etc. games.
* Fixed problem where the railgun color was always blue until you changed it.
* Railgun shots that don't strike a player now actually reset your consecutive railgun hits total.
* Player's medals and points (in a teamgame) are now not cleared until the new level begins. Now you can see your score, and the medals you racked up on the level during intermission!
* Dropped flags that have not been returned now result in a "?" flagstatus on the HUD for that team onthe client end.
* Got rid of "You fragged <name>", "You were fragged by <name>" messages in oldschool.
* Defaulted the item respawn and spawn farthest dmflags to OFF when Skulltag is ran with -oldschool (that's altdeath).
* Players' current team is now reset after intermission.
* Color codes are now stripped out of the text in the server window.
* Changed spectator mode so that powerups are cleared once you enter spectator mode. (Before, if you had the doomsphere and would spectate, you appeared to still have the powerup (indefinitely).)
* Move up/down keys now work in spectator mode.
==== v0.95b ====
* Upgraded Skulltag to ZDoom v2.0.47q
* New CTF level! d2ctf6: Ruins of Blood
* Two new Skulltag levels! d2st1 and d2st2
* Spectator mode added! Players can now spectate on other games!
* New weapon added! The minigun.
* New monster! The Belphegor (third level hell knight).
* Added the ability to handicap yourself in DM/CTF.
* Co-op is now supported! Includes scoreboard changes.
* New duel deathmatch mode added! Designed for 1 on 1 deathmatch.
* Third episode of Skulltag now selectable through the menu.
* Nicer fadeout on medals.
* Added cl_icons and cl_medals, which are options to disable icons and medals.
* Also added cl_skins, for disabling skins.
* Skirmish menu now allows selecting of levels added from MAPINFO lumps.
* Added shootable versions of the invisible bridges. Useful for room over room with Transfer_Heights.
* Did basic Skulltag tweaks for Hexen support (That's right, since Skulltag is now based on ZDoom v2.0, it now works with Hexen!).
* More frames for the SSG guy.
* Dark Imps, Cacolanterns now have sprites.
* New fireball for the Dark Imp.
* Detail has been increased on d2dm1 and d2dm2.
* Added a display option to turn down the intensity of blood on the screen.
* Fraglimit is no longer factored into team games.
* Player can now taunt and jump at the same time.
* Changed method of calculating rank. Should be more accurate now.
* Dark Imps and Cacolanterns now fire faster projectiles.
* Changed how Incredible medals are awarded. It is now given if you get a frag within two seconds of getting an Excellent, instead of getting two frags within two seconds of getting an Excellent. They should be more common now.
* Changed the Doomsphere duration from 30 seconds to 25 seconds.
==== v0.94c ====
* Added new level! d2ctf5: Massmouth Mansion
* Skulltag now works with Doom 1.
* Added "You're tied for/You've taken/lost the lead" announcer events.
* Added megasphere, soulsphere, and "You win" announcer events
* Added new item: Massmouth statue
* Added new "sv_defaultdmflags" cvar, which when turned off, will NOT use the default dmflags for a DM, CTF, etc. level set by Skulltag.
* Added MOD for killing yourself with the BFG10K.
* Fixed +moveup and +movedown in client/server games
* Fixed the scoreboard so number of points left in team games displays
* Fixed problem where if you switched from a CTF level to a DM level, the "Welcome to CTF" sound would still play.
* Skulltag now updates the master server right away whenever you change the master server IP.
* Fixed problem where Skulltag couldn't load certain PWADS with custom textures (ex. gothic2).
* Fixed "Unknown item" problem with dropped pistols and BFG10Ks.
* Fixed sound bug in terminator mode.
* Fixed problem where sounds would become out of sync if the server or client didn't have the same skins or announcer wads loaded.
* Announcer wads placed in the /ANNOUNCER directory are now automatically loaded.
* Replaced the "-maxclients" command line parameter with the "sv_maxclients" cvar. It can be changed without restarting the server.
==== v0.94b ====
* Announcer suuport. You can select the announcer in the player setup menu.
* Two new levels:
** d2dm3: A 1v1 map with a steep learning curve. Not reccommended as part of your map rotation.
** d2dm6: All-around lots of fun!
* Linux version for running servers.
* Greatly increased stability on newtork games.
* Support for IDE (Internet Doom Explorer). Doom Connector support will be done within days.
* Map rotation. Works the same way as ZDaemon and csDoom's map rotation. addmap, clearmaplist, and maplist are all valid commands. Can also be toggled on and off with the cvar "sv_maprotation".
* MOTD support. Simply set the "sv_motd" cvar.
* New weapon! The BFG10K.
* Now supports playing with *MOST* textured wads (darkening e2, HR2, etc). Some still have a problem.
* The initial sprites for the Super Shotgun Guy.
* Updated music selections on some maps.
* Wadauthor and ZETH configuration files for making maps for Skulltag.
* Minor tweaks to the firing frames of the railgun.
* Doors now close all the way.
* The "You Fail It" medal, which you receive when you die 5 times without getting a single frag.
==== v0.93 ====
* A new level, d2dm5, is included.
* One flag CTF mode has been added. A placed yellow skull becomes the white flag.
* Custom bots can now be added. ... of course, since the bots don't do anything, I won't bother going into how this is done right now. However, if you're REALLY curious, look at the BOTINFO lump in skulltag.wad. You'll see the one custom bot that has been added to skulltag, "crackwhore". heh. She will be promptly removed in the next version :)
* Network code should now be significantly more stable.
* Skulltag can now be ran with -ctf or -onectf, which will setup a teamgame (-teamgame), and change the skull graphics into flags.
* Other wonderful, fabulous stuff!
==== v0.92 ====
''No changelog available.''
(Bugfixes, probably.)
==== v0.91 ====
''No changelog available.''
(Bugfixes, probably.)
==== v0.90 ====
''This is not an official changelog, it is based off of difference in the stmanual.doc file provided in this version.''
* Fix bot AI
* Fix railgun reload problems
* Fix only being able to type in new "ST" codes at the console.
* New medals:
** "Precision!": Given for making 10 consecutive hits with any weapon.
* New<sup>?</sup> gamemodes:
** Terminator: Variant of deathmatch where players try to kill the "terminator."
** Oldschool: Variant of deathmatch that simulates the doom2.exe style of deathmatch, right down to the silent BFG!
==== v0.81 ====
''No changelog available.''
(Bugfixes, probably.)
==== v0.80 ====
''This is not an official changelog, it is based off of difference in the stmanual.doc file provided in this version.''
* Add multiplayer<sup>?</sup>
* Add gamemodes<sup>?</sup>:
** Normal: Kill monsters, find keys. All that good stuff.
** Deathmatch: The standard mode of deathmatch we all know and love.
** Teamplay: Variant of deathmatch where players play in teams.
** Instagib: Variant of deathmatch where all players start off with only the railgun, and one shot kills your enemies.
** Survival: Variant of deathmatch where you lose a frag whenever you die (defense is important!)
** Scoremode: Variant of deathmatch where players are given different amount of points for their frags, depending on the difficulty of the kill. Points are also awarded for receiving medals.
** Teamgame: Divides all players up into two teams for games like Capture the Flag, Skull Tag, and Domination.
* New medal:
** "Total Domination!": Given for getting 25 consecutive frags without dying.
==== v0.71 ====
''This is not an official changelog, it is based off of difference in the stmanual.doc file provided in this version.''
* Fixed bot crashing
* Fixed status bar
* Fixed the "Skull Tag v0.6 beta" message that displays at the bottom
* Fixed having to do "skulltag -file st.wad" instead of just having to type "skulltag" at startup
==== v0.6 ====
* Initial release.
* New dmflags (dmflags2):
** Impaling damage: Causes the player to become impaled when landing on sharp objects.
** Drop weapons (DM/ST): Causes the player to drop their current weapon when killed.
** Allow runes (DM/ST): Allows runes to be spawned on the current level.
** Instant skull return (ST): Returns the skull to its origin instantly after being dropped by a player.
** Return sitting skulls (ST): Returns dropped skulls to their orgin after sitting on the ground for a certain period of time.
** Use team colors (ST): Forces player's color to be the player's team color.
** Allow team switch (ST): Allows player's to switch teams at will.
** Random teams (ST): Automatically places a player on a random team when he enters a game.
** Drop runes (DM/ST): Causes the player to drop his rune when killed.
** 200% health/armor max.: Prevents max. armor and health bonuses from giving you health or armor above 200%.
** Double ammo: Gives the player double the amount of ammo he normally receives from items.
** Clear frags (DM/ST): Resets frags at the beginning of each level.
** No respawn (DM/ST): Prevents the player from respawning when killed.
** Degeneration (DM/ST): Causes the player to slowly lose health when above 100%.
** Lose frag when killed (DM): Causes the fragged player to lose a frag.
** No BFG freeaiming: Causes the BFG to always fire straight.
** Barrels respawn (DM/ST): Allows barrels to respawn like normal items.
** Invulnerable on respawn (DM/ST): Grants temporary invulnerability to players who have just respawned.
* Medals:
** "Excellent!": Given for getting 2 frags in under 2 seconds.
** "Incredible!": Given for getting 2 "Excellent!"'s in under 2 seconds.
** "Impressive!": Given for making 2 consecutive hits with the railgun.
** "Most Impressive!": Given for making 4 consecutive hits with the railgun.
** "Accuracy!": Given for making 10 consecutive hits with any weapon.
** "Domination!" Given for getting 10 frags without dying.
** "Llama!" Given for killing someone while they're typing.
** NOTE: Some of these don't work yet.
** ANOTHER NOTE: There's more that I'm just not mentioning now :)
* New command line switches:
** -deathmatch2: Causes deathmatch to be loaded with a few more dmflags turned on, including respawn invulnerability, and losing a frag on death (note: I call this "survival deathmatch").
** -teamgame: Causes the game to be loaded in teamgame mode.
* New console commands:
** netgame/multiplayer: Enables fake multiplayer mode (no level reloaded when killed, etc).
** botchat: When set to 0, bots will not chat.
** botskill: General bot skill level (doesn't quite work yet :P)
** idkfa/idfa: Same as typing the codes in during the game, only they can now be bound to a key.
** pointlimit: Sets pointlimit for teamgame levels
** railcolor <0-9>: Sets your railgun trail color. (NOTE: I'll allow strings for this soon).
** teamcolor: Sets player's team color
** teamname: Sets player's team name
=== Sources ===
* '''Zandronum 1.0+:''' Zandronum Version History.txt
* '''Skulltag v0.94c to v0.98d:''' [https://bitbucket.org/Torr_Samaho/zandronum/src/7e43a0725ec1c453ba91a9a7767dfffb5aec4728/docs/Skulltag%20Version%20History.txt?at=default&fileviewer=file-view-default Skulltag Version History.txt]
* '''Skulltag v0.94b:''' README.txt in the zip file.
* '''Skulltag v0.93:''' [http://web.archive.org/web/20021202065533/http://www.doomworld.com/skulltag/ http://www.doomworld.com/skulltag/, 2002-12-02].
* '''Skulltag v0.71-v0.92:''' Comparing the stmanual.doc in the zip files against the one of the previous versions.
* '''Skulltag v0.6:''' The stmanual.doc in the zip file.