Releases: IgeNiaI/Q-Zandronum
Releases · IgeNiaI/Q-Zandronum
v1.4.0
Misc:
- Print STARTUP texts at the end of start console logs.
- You can no longer vote kick a player without specifying a reason.
- Bound action button names in bind menu are now uppercase.
- VideoModeMenu no longer shows options for letterbox resolutions.
- VideoModeMenu no longer prints multiple options for same resoltion.
- Added
randomclasssilent
ccmd that sets your class randomly without printing any message.
Bugfixes:
- Fixed Elevator Jump jitter in multiplayer.
- Fixed broken railgun sound when zooming in coop.
- Fixed FoV change interpolation when game is paused.
- Fixed game pause breaking action scripts button states.
Modding:
- Added a FreeformOptionMenu type to MENUDEF. With that, you can freely position your menu elements at any coordinates. For details, go to https://github.com/IgeNiaI/Q-Zandronum/wiki/MENUDEF-Changes
- Backported MENUDEF
AddListMenu
andAddOptionMenu
from gzdoom. - Added support for back button selected texture, using
menubackbutton_selection
in MAPINFO. - Added
ZA_LevelNames
,ZA_LevelTitles
andZA_LevelPreviews
OptionValue lists to bring more flexibility to map selection menus. - Added
SubmenuCentered
andCommandCentered
types to OptionMenu. - Added
upmenu
cmd that closes current menu window and goes back to previous. - Added
setskirmishlevel {mapname}
andsetcallvotemap {mapname}
commands that set skirmish and callvote map selection based on provided map name. This is useful when creating a map list menu in your mod. - Added compatflags2, zadmflags and zacompatflags to CMPGNINF.
- EpisodeMenu now accepts "playerclass" cvar when sending param -2.
- Added
RGF_NORANDOMPUFFZ
forA_RailAttack
A_RailAttack
puffs now spawn a little closer to the player, just likeA_FireBullets
v1.3.6
Misc:
- Linux servers now tic 35 times per second instead of once a second when no players joined the game.
- 3d models stop rotating when the game or demo playback is paused.
- Texture animations stop when the game is paused, except for hardware warp
- Game keeps rendering at desired fps when the game or demo playback is paused.
Bugfixes:
- Hopefully fixed Z axis mispredictions when players bump into each other.
- Fixed server sending weapon change update to owner when NETREP_SKIPOWNER is set.
- Fixed jittery view when watching a demo.
- Fixed view interpolation when spectating a player that teleported just now.
- Fixed duplicated oomph sound when failing to open a locked door in multiplayer.
v1.3.5
Gameplay:
- Singleplayer skirmish no longer waits for 5 seconds before starting the countdown
Misc:
- Enabled spectators only chat in all gamemodes, not just team based
Bugfixes:
- Fixed game crashing because of missing actor lights
- Fixed server notifying clients about incorrect PendingWeapon when giving multiple weapons at once in ACS
- Fixed
Player.CrouchScale 1.0
being considered always crouched
Modding:
- Increased maximum teams count from 4 to 16
- Added
APROP_AbsoluteSecondJump
,APROP_GroundSecondJump
andAPROP_User4Jump
to ACS
v1.3.4
Misc:
- Ring out death now properly displays the death message
Bugfixes:
- Fixed LMS enabling warmup mode after every round
- Fixed Second Jump velocity formula when moving diagonally
Modding:
- When a client joins, the server sends information about all items players carry
+NOMORPHLIMITATIONS
now also keeps player velocity and pitch- Added
+ABSOLUTESECONDJUMP
player flag that makes second jumps set velocity instead of adding to it
1.3.3
1.3.2
Gameplay:
- When changing the map, the game will wait for 5 seconds before starting the cooldown
Misc:
- Added level 13 for the
screenblocks
cvar, which turns off all HUD elements, even the console text and background. This is useful to make screenshots and record frag movies. - Removed the
You fragged #
andYou were fragged by #
console messages because there already are obituary messages. - Removed the
pos
command because there is aidmypos
cvar for that already.
Bugfixes:
- Fixed the server not notifying clients about
FastProjectile
disappearing in the sky. - Fixed ledge climbing setting velocity to
JumpZ
even if it was lower than that. - Fixed
+ELEVATORJUMP
not working for second jumps.
Modding:
- Backported
A_SetSize
from GZDoom. - Calling
A_SetSpeed
on server now sends an update to clients. - Rail attack trail actors inherit pitch from attack pitch.
- Reverted automatic options centering because it breaks more stuff than it fixes.
- Fixed 0 offset coordinates for weapon sprites not working.
1.3.1
Misc:
- Moved chat input out of the bottom left corner because it overlays other UI elements.
Bugfixes:
- Fixed singleplayer bots not playing jump sounds.
- Fixed deathmatch warmup not resetting map actors.
- Fixed double the amount of blood spills in multiplayer.
- Fixed jittery model interpolation.
- Fixed change level delay still being active if you
changemap
after the game ends. - Fixed the game showing incorrect player stats when spectating someone who killed another player.
- Fixed full path texture patches not loading.
- Fixed incorrect obituary messages in multiplayer games.
Modding:
- Removed the "press +strafe to double tap" feature.
- Added
+GROUNDSECONDJUMP
and+USER4JUMP
second jump flags. For details go to this page. - Backported
A_GiveToChildren
,A_TakeFromChildren
,A_GiveToSiblings
andA_TakeFromSiblings
from Zandronum 3.1. - Backported
RGF_NOSIGHT
andRGF_MISSILES
flags forA_RadiusGive
from Zandronum 3.1.
1.3.0
Gameplay:
- Improved clientside prediction when being pushed around by other players.
- Improved mutiplayer actor movement interpolation.
- Swimming and flying vertically now is controlled by
+moveup
and+movedown
buttons just like before. Addedcl_jumptoflyup
cvar to also swim and fly by pressing+jump
and+crouch
keys. - Made swimming in Quake movement closer to swimming in Quake 3.
- Monsters can now infight in invasion gamemode.
- Fixed projectile hitbox only working on upper half of the sprite. This is OFF by default and can be enabled via
sv_enableprojectilehitboxfix
. - Renamed
compat_no_accurate_crosshair
andcompat_disable_wall_friction
cvars tosv_accuratecrosshair
andsv_disablewallfriction
respectively. - Reworked the warmup system. To ready up, players should now press a button instead of sending a chat command. Also it now works in deathmatch and lms gamemodes.
- Added a
randomclass
cmd to select a random class once. - Added a
sv_elevatedspecialfix
cvar to fix cases when the player is standing on a ledge of an elevated sector with a special and the special doesn't trigger. - Added a
sv_headbob
cvar to configure head bobbing separately from weaponmovebob
. This is a server side cvar to avoid bobbing desyncs between server and client sides. - Added a
sv_ringouttics
cvar to grant the player a frag if his victim dies from environment in less thatsv_ringouttics
tics after taking damage from the player. - Added a
sv_terminatorfragaward
cvar to configure how much score to give to player who killed the terminator in terminator gamemode. - Added a
sv_respawntime
cvar to configure player respawn delay. - Added a
cl_packetdup
cvar to duplicate movement and weapon select commands. - Added a
reportlumps [playername]
server command that will ask players to report their loaded wads and pk3s to the server. The server will then compare it with wads it loaded and report if something is different.
Misc:
- Made mouse movements instant instead of interpolated from next tick.
- Added a
cl_fovchangespeed
cvar to configure how fast FOV changes on clients. - Weapon bob, sway and offset are now interpolated for smoother experience.
- FOV change is now interpolated for smoother experience.
- Added a
fov_change_cooldown_tics
cvar to limit FOV change in multiplayer games. - Added a
gl_true_fov
cvar to enable true horizontal fov in OpenGL renderer. - Added an option to duplicate movement commands to mitigate packet loss.
- The engine now tries to synchronize client tics with the server to avoid cases when a network command is received before the tic, essentially nullifying it.
- Reduced mouce input latency by backporting changes from Zandronum 3.1 and adding some improvements over it.
- The servers will ignore modified TITLEMAP in wads, so they can be optional.
- Using the "Join server" button in server UI will automatically set cl_password and cl_joinpassword.
- Weapon bob and sway now work simultaneously. You can control them via
movebob
andmovesway
cvars. - Replaced bool
crosshairscale
cvar with floatcrosshairscalef
that allows configuring crosshair scale as you wish. Also added it to menu. - Ported
wait 0
support from Zandronum 3.1. - Calling
maplist
cmd on client will ask the server about it's maplist and print it on client. - Renamed
vid_alwaysrender
tovid_activeinbackground
. - Backported new color definitions from Zandronum 3.1.
- Allowed Russian alphabet characters for console and chat inputs. The engine doesn't have a proper font by default, mods have to add one on their own.
Bugfixes:
- Ported the tickrate fix from Zandronum 3.1. Other players should no longer be jerky when spectating them, unless there are connection issues.
- Fixed
A_Stop
not working properly in multiplayer. - Fixed
A_StopSound
not working properly in multiplayer. - Fixed other player's sounds not playing sometimes.
- Fixed Named ExecuteWithResult map scripts not working on clients.
- Fixed Hexen Cleric's staff projectile not replicating properly in multiplayer.
- Fixed serverside player pitch replicated with a delay.
- Fixed puff target not set for clientside puffs.
- Fixed jerky movement on some moving floors.
- Fixed Quake movement not slowing down the player in shallow water.
- Fixed Doom movement playing multiple footsteps in shallow water.
- Fixed small desync when doing double tap dash from the ground in multiplayer.
- Fixed view bob being too high when velocity is capped.
- Fixed frozen player being able to fly up and down.
- Fixed game crashing when using a moving floor that changes texture upon reaching it's destination.
- Fixed rotated floor and ceiling textures not properly replicating in multiplayer.
- Fixed
+FLOORHUGGER
and+CEILINGHUGGER
flags not working if an actor doesn't move horizontally. - Fixed engine crashing when watching a qcde ffa demo.
- Fixed
compat_skulltagjumping
disabling jumping completely. - Fixed speed powerups formula in quake movement.
- Fixed players visually spawning under a 3d floor in multiplayer matches.
- Fixed many cases when sliding along a wall would stop the player despite
sv_disablewallfriction
being ON. - Fixed tiny damage falloff in
A_Explode
even whenfulldamagedistance
parameter is equal todistance
. - Fixed
FastProjectile
not awarding medals. - Fixed a small weapon sprite position discrepancy between using
offset(0,32)
and not using any offset. - Fixed not being able to take intentory items from clientside actors.
- Fixed patch textures becoming black in some cases.
- Fixed FastProjectile explode position on clients when hitting an elevated floor, ceiling or a 3d floor.
splashfactor
cvar now replicates to clients when changed on server.- Weapon tags are now shown for all weapon switches instead of only for "Next weapon" and "Prev weapon".
Modding:
- Added a way to reduce network latency effect on gameplay, mostly by unlagging projectile based weapons. The default Doom, Heretic, Hexen and Strife games are supported out of the box by simply turning
compat_predictfunctions
flag ON. However, it is not recommended to use that flag in mods as it can break the game. The mod developers should implement support for it first. For details go to this page. - Added a way to spawn actors when a certain action like jump, land or crouch slide is performed. For details go to this page.
- Backported GAMEMODE lump improvements from Zandronum 3.1 and 3.2. For details go to Zandronum wiki.
- CPM movement is now an actor flag called
CPMAIRCONTROL
instead ofPlayer.MvType 2
. - Sector gravity now works with 3d floors.
- Spawn, teleport and morph fogs now have their owner set as target.
- Added the
Actor enters sector
andActor leaves sector
support to 3d floors. - Added a
ClassMenu
player actor state to be displayed in class selection menu. - Added
pos
console command to show player's position. - Made wall climb friction configurable via a new
Player.WallClimbFriction
property. Keep in mind that wall friction uses different formulas in Doom and Quake movements, thus different WallClimbFriction values are required to achieve similar results. Default1.25
is designed for Doom movement. To achieve a similar friction in Quake you need to bump the value up to about4.0
. - Added wall running feature that allows running along a wall without falling down. The feature is called "Air Wall Running" to avoid confusion with wall running speed bug. For details go to this page.
- Added new movement values to SBARINFO. For details go to this page.
- Added a
IfProperty <property> [not] <value> [%]
SBARINFO function. - Improved Action Assignable ACS scripts behavior. For details go to this page.
- Added support for 0 items for
A_JumpIfInventory
andA_JumpIfInTargetInventory
. To check for 0 items, pass -1 as item amount parameter. - Added a
GetNetworkState()
ACS function that tells whether the script is executing in a singleplayer game, a multiplayer client or on a server. - Added a
SetPlayerWeaponZoomFactor(int playerNum, float zoom, int flags)
ACS that does the same as the decorateA_ZoomFactor
. - Added a
SetPlayerSkin(int playerNum, str skinName[, bool overrideWeaponSkin])
ACS command. - Added a
CheckSolidFooting(int tid, int threshold)
ACS function to tell if an actor is on ground, on another actor or in the air. The return values can be either0 aka CSF_INAIR
,1 aka CSF_SOLIDGROUND
or2 aka CSF_SOLIDACTORS
. - Replaced
XF_QROCKETJUMP
andFBF_QUAKETHRUST
flags withsv_quakethrust
cvar that will affect all thrusts. - Backported the
+HITOWNER
flag from GZDoom. - Backported the
+RTF_THRUSTZ
flag from GZDoom. - Added
WRF_ALLOWUSER1
,WRF_ALLOWUSER2
,WRF_ALLOWUSER3
,WRF_ALLOWUSER4
flags forA_WeaponReady
. - Added
+ELEVATORJUMP
movement flag. With this flag player's jump velocity will be increased by elevator's velocity. - Added
+MTHRUTEAMMATES
flag to allow projectiles pass thru teammates. - Added
+INVISIBLE_TO_TRACER
and+INVISIBLE_TO_MASTER
actor flags. - Added
+DONTMEDAL
flag to not grant medals from attacks by this weapon or projectile. - Added
+NOMORPHLIMITATIONS
actor flag to remove morph limitations, like not playing land sounds, or not switching weapons, or not being affected by speed powerup. - Added
RGF_TRANSFERTRANSLATION
flag forA_RailAttack
andA_CustomRailgun
. Using it transfers shooter translation to both rail particles and actors. - Added
gl_show_hitbox
cvar...
v1.2.1
vid_maxfps
now works for OpenGL renderer on Windows and Linux- Fixed players becoming invisible/dark and dead bodies sprites incorrect state when a new player joins
- Fixed different X/Y mouse sensitivity scale when mouse prescale is on
- Added more screen resolutions to settings
- Added proper support for 21:9 screen aspect ratio
- Updated OpenGL to newer version
- Fixed weapon bob not working in Quake movement
- Players will no longer be kicked due to "User info flood" when changing their FOV
- Fixed INVISIBLE_TO_TARGET not working for spectators
- Fixed NOEXPLODECEILING not working
- Fixed a crash when playing sound from ACS without an activator
v1.2.0
Gameplay:
- Wall Climbing and Wall Jumping no longer work on invisible walls (the
Block Everything
linedefs). Please useImpassable
flag if you want players to climb invisible walls. - Players can now climb a ledge when going upward and holding crouch key. The most possible scenario for this is when using a jumppad.
- Added a
start_duel
command for server administrators to force start a duel if both duelers don't start the duel themselves for too long. - Added a Source-like spectator that can freely move thru walls. It is enabled by default and can be configured using
cl_spectsource
variable. - Missiles will now go thru shootthru 3d floors. Previously only hitscan weapons could do that.
- Player's pitch will no longer reset after flight effect is over.
- Throwing Hexen Maulotaur will consider player's pitch
- Hexen Maulotaur will no longer be aggressive to everyone if his master died before Maulotaur spawned
Engine fixes:
- Fixed doors, elevators, pillars and other moving sectors synchronization in multiplayer.
- Fixed changing
compat_no_accurate_crosshair
not making any difference. - Fixed custom missiles not using pitch offset when crosshair accurate weapons are enabled (
compat_no_accurate_crosshair 0
). - Fixed a crash during game initialization.
- Fixed a crash when a rocket explodes.
- Fixed a crash that occurred in the player menu if a derived class was missing the skins of its parent class because it wasn't on the list of available player classes.
- Fixed rail attack angle offset when crosshair accuracy is enabled.
- Fixed landing footstep sound always play at default volume.
- Fixed wall climbing logic in Doom movement.
- Fixed missile spawn Z when crouching.
- Fixed player camera hugging the floor when moving up an elevator in multiplayer.
- Fixed missile translation, scale, fill color, transfer sprite and flags not replicating for newly joined players.
- Items that were created during the match will no longer respawn below 3D floors.
- Linux builds now use SDL sound by default.
- The game will use less resources when not focused in multiplayer (requires using
vid_alwaysrender 0
)
Option changes:
- Added two new options to compat flag menu to configure
compat_disable_wall_friction
andcompat_no_accurate_crosshair
flags. - Sprite billboard mode was changed to
X/Y
by default (gl_billboard_mode
from 0 to 1). - Lowered default announcer volume in half (
snd_announcervolume
from 1 to 0.5).
Movement Modding:
- Modders can now assign ACS script to basic actions like
jump
,fire
,moveleft
,moveright
and so on. The goal for this is to add a way for modders to implement custom movement mechanics without suffering from ping delay in multiplayer. Please go to #################################################################### for details. - All new player movement variables are now available in ACS. Please make sure to download
zdefs.acs
andzspecial.acs
from this release to make use of new it. Please go to ############################################# for details. - The
Player.ForwardMove
andPlayer.SideMove
properties are working again. Also these properties were extended to support crouch running and crouch walking. Default parameters are nowPlayer.ForwardMove 1,1,1,1
andPlayer.SideMove 1,1,1,1
, and values represent walking speed scale, running speed scale, crouch walking speed scale and crouch running speed scale respectively. - Added
Player.FootstepsEnabled 1,1,1,1
property to configure whether footsteps should be played when the player is walking, running, crouch walking or crouch running respectively. - Refactored double jump, wall jump and dash logic into a second jump concept. The
doublejump
,walljump
anddash
are allsecond jumps
and they share a lot of code. All second jumps are activated by pressing the jump key while in the air.- Added
Player.JumpXY
andPlayer.SecondJumpXY
to configure jump and second jump horizontal thrust. - Added
Player.SecondJumpDelay
to configure delay after first jump and between further second jumps. - Added
Player.SecondJumpAmount
to configure how many second jumps a player can do before touching the ground. By default it is equal to 0, thus players can't do second jumps at all. Increasing the value will basically give the player a double jump possibility. You can also set it to -1 for infinite second jumps. - The
+WALLJUMP
flag will remove double jump feature and instead only trigger a second jump if a player is near a wall. - Added
+WALLJUMPV2
flag that does the same as+WALLJUMP
, but will thrust the player to the opposite direction of the wall instead of based on player input direction. - If you want to implement a horizontal dash feature, make sure to configure
Player.SecondJumpXY
property and lower thePlayer.SecondJumpZ
value. - Added
+DOUBLETAPJUMP
flag that will disable second jump trigger using the jump key and instead trigger the second jump by double tapping movement keys. - Added
*rampjump
alias for rampjump sounds.
- Added
- Renamed
*doublejump
and*walljump
sound aliases to*secondjump
. - Removed
Player.WallFrictionEnabled
property and addedcompat_disable_wall_friction
flag. - Renamed
Player.MaxWallClimbTics
toPlayer.WallClimbMaxTics
. - The
Player.WallClimbMaxTics
andPlayer.SlideMaxTics
properties are now float to be more configurable. - Added
Player.WallClimbRegen
andPlayer.SlideRegen
float properties to configure wall climb and slide stamina regeneration. Wall climb stamina only regens when standing on ground, while crouch slide stamina regens as long as the player is not sliding. - Removed
Player.AirThrustZUp
andPlayer.AirThrustZDown
because it is better to implement it using assignable action scripts.
Weapons Modding:
- Added
sv_weaponstayrefill
flag to enable refilling ammo if the player already has the weapon andsv_weaponstay
is TRUE. - Added
Weapon.AmmoDmScale
property to configure how much ammo to give in deathmatch gamemode. - Added
Weapon.AmmoSpRefill
andWeapon.AmmoDmRefill
to configure how much ammo to give when the player's ammo is below Weapon.AmmoGive value. - Added
Weapon.SwaySpeed
property to configure how far and how fast a weapon will sway whencl_weaponsway
is enabled. - Added
+NOPRIMAUTOFIRE
and+NOALTAUTOFIRE
flags. They act the same as+NOAUTOFIRE
, but only affect primary or secondary fire respectively. - Added
+NOEXPLODECEILING
flag. When hitting the ceiling the projectile just stops instead of exploding. - Added
+FBF_QUAKETHRUST
flag to push players vertically inA_FireBullets()
. - Added
+SEEKERMISSILENOZ
flag. Works the same as+SEEKERMISSILE
, but the missile won't follow the target along Z axis.
General Modding:
- Backported the
bool local
argument for ACSPlaySound()
function from GZDoom. Using it will make the sound only play for players that watch the game from specified actor's eyes. - The PlaySound() and PlayActorSound() functions don't play sound for the player that called this function if it is executed on server side. That was done to make it possible to implement unlagged scripts and not play the sound twice. If you need to play the sound on activator's client, then either call this function on both server and client sides, or use the new new bool playclientside argument. It comes right after the backported bool local. Setting this argument to true will make the sound play for the activator player as well.
- Added a second parameter to the Player_SetTeam line special to enable/disable the broadcast message. By default, the message is still printed to the console. (Ported from Zandronum 3.1).
- Backported
+FPF_TRANSFERTRANSLATION
and+FPF_NOAUTOAIM
flags from GZDoom. - Added
+SXF_TRANSFERSPRITE
flag to transfer player's sprite to an item he spawned. - Added new SBARINFO commands: IfSpectator [not] [dead] and IfSpying [not] that execute a sub block if the local player is (not) a (dead) spectator, or (not) spying on another player respectively. Ported from 3.1 by Kaminsky
- The
A_SetScale
function now has thepointer
andusezero
parameters like in GZDoom. - The
A_SetAngle
function now has thepointer
parameter like in GZDoom. - The
A_SetPitch
function now has thepointer
parameter like in GZDoom. - The
A_ChangeVelocity
function now has thepointer
parameter like in GZDoom. - The
A_ScaleVelocity
function now has thepointer
parameter like in GZDoom. - The
A_Teleport
function now has thepointer
parameter like in GZDoom.
Other:
- Players will now have an
in menu
sprite above their head if they opened game menu. Also a similar icon is displayed in scoreboard.