Skip to content

Releases: IgeNiaI/Q-Zandronum

v1.4.0

18 Apr 22:33
Compare
Choose a tag to compare

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 and AddOptionMenu from gzdoom.
  • Added support for back button selected texture, using menubackbutton_selection in MAPINFO.
  • Added ZA_LevelNames, ZA_LevelTitles and ZA_LevelPreviews OptionValue lists to bring more flexibility to map selection menus.
  • Added SubmenuCentered and CommandCentered types to OptionMenu.
  • Added upmenu cmd that closes current menu window and goes back to previous.
  • Added setskirmishlevel {mapname} and setcallvotemap {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 for A_RailAttack
  • A_RailAttack puffs now spawn a little closer to the player, just like A_FireBullets

v1.3.6

17 Mar 16:49
Compare
Choose a tag to compare

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

24 Feb 18:57
Compare
Choose a tag to compare

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 and APROP_User4Jump to ACS

v1.3.4

03 Feb 19:47
Compare
Choose a tag to compare

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

22 Jan 23:09
Compare
Choose a tag to compare

Misc:

  • The game now ignores windows dpi scaling option

Bugfixes:

  • Fixed multiplayer clients initialising rng with same seed on every map change

1.3.2

14 Jan 18:54
Compare
Choose a tag to compare

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 # and You were fragged by # console messages because there already are obituary messages.
  • Removed the pos command because there is a idmypos 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

13 Dec 02:16
Compare
Choose a tag to compare

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 and A_TakeFromSiblings from Zandronum 3.1.
  • Backported RGF_NOSIGHT and RGF_MISSILES flags for A_RadiusGive from Zandronum 3.1.

1.3.0

02 Dec 20:56
Compare
Choose a tag to compare

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. Added cl_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 and compat_disable_wall_friction cvars to sv_accuratecrosshair and sv_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 weapon movebob. 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 that sv_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 and movesway cvars.
  • Replaced bool crosshairscale cvar with float crosshairscalef 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 to vid_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 when fulldamagedistance parameter is equal to distance.
  • 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 of Player.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 and Actor 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. Default 1.25 is designed for Doom movement. To achieve a similar friction in Quake you need to bump the value up to about 4.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 and A_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 decorate A_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 either 0 aka CSF_INAIR, 1 aka CSF_SOLIDGROUND or 2 aka CSF_SOLIDACTORS.
  • Replaced XF_QROCKETJUMP and FBF_QUAKETHRUST flags with sv_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 for A_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 for A_RailAttack and A_CustomRailgun. Using it transfers shooter translation to both rail particles and actors.
  • Added gl_show_hitbox cvar...
Read more

v1.2.1

02 Apr 17:34
Compare
Choose a tag to compare
  • 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

01 Mar 17:44
Compare
Choose a tag to compare

Gameplay:

  • Wall Climbing and Wall Jumping no longer work on invisible walls (the Block Everything linedefs). Please use Impassable 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 and compat_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 and zspecial.acs from this release to make use of new it. Please go to ############################################# for details.
  • The Player.ForwardMove and Player.SideMove properties are working again. Also these properties were extended to support crouch running and crouch walking. Default parameters are now Player.ForwardMove 1,1,1,1 and Player.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 and dash are all second 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 and Player.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 the Player.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.
  • Renamed *doublejump and *walljump sound aliases to *secondjump.
  • Removed Player.WallFrictionEnabled property and added compat_disable_wall_friction flag.
  • Renamed Player.MaxWallClimbTics to Player.WallClimbMaxTics.
  • The Player.WallClimbMaxTics and Player.SlideMaxTics properties are now float to be more configurable.
  • Added Player.WallClimbRegen and Player.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 and Player.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 and sv_weaponstay is TRUE.
  • Added Weapon.AmmoDmScale property to configure how much ammo to give in deathmatch gamemode.
  • Added Weapon.AmmoSpRefill and Weapon.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 when cl_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 in A_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 ACS PlaySound() 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 the pointer and usezero parameters like in GZDoom.
  • The A_SetAngle function now has the pointer parameter like in GZDoom.
  • The A_SetPitch function now has the pointer parameter like in GZDoom.
  • The A_ChangeVelocity function now has the pointer parameter like in GZDoom.
  • The A_ScaleVelocity function now has the pointer parameter like in GZDoom.
  • The A_Teleport function now has the pointer 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.