Game version 3813 (29th of November, 2024)
The release was delayed by a week because we found a desync issue on the last minute. I want to thank everybody that contributed to the search and fixing of the issue. Pinpointing a desync is especially difficult but through the combined efforts of many people we managed to solve this exceptionally quickly. I am really glad to have such a good team! The desync issue was on FAF Develop for a few weeks. If you want to contribute you can play on FAF Develop and/or FAF Beta Balance occasionally and report back to the game team. Whether all is good or you encountered issues - all data points are worth their effort.
With kind regards,
BlackYps
Balance
- (#6356) Reduce the speed of hover flak on water to be the same as on land. This makes it less oppressive supporting hover raids and more exposed when supporting naval fleets.
- Aeon T2 mobile flak: water speed multiplier 1.35 -> 1 (water speed 3.65 -> 2.7)
- Seraphim T2 mobile flak: water speed multiplier 1.4 -> 1 (water speed 3.64 -> 2.6)
-
(#6410) Buff the cost of the Mercy to suit its new role of killing large numbers of low HP targets such as armies, T1 pgens, and engineers. The buildtime is reduced an extra amount compared to other costs since it is a kamikaze unit.
- Mass Cost: 300 -> 230
- Energy Cost: 6000 -> 4600
- Build Time: 2000 -> 1200
-
(#6375) Reduce blaze speed from 4.3 to 4.0 to make it easier to catch and reduce its powerful raiding capabilities.
-
(#6383) The Soul Ripper’s Iridium Rocket Packs gain the same area of effect radius as its primary weapons. Visually, these weapons appeared like they dealt damage in an area of effect, however, this was never the case. Due to being very inaccurate, this caused them to underperform against smaller units.
- Soul Ripper: Experimental Gunship (URA0401):
- Iridium Rocket Pack (x2):
- DamageRadius: 0 –> 3
- Damage: 190 –> 150
- DPS: 285 –> 225
- Iridium Rocket Pack (x2):
- Soul Ripper: Experimental Gunship (URA0401):
- (#6417) Reduce T2 Amphibious Tank vision by 2 to give them a weapon range disadvantage of 2 when behind enemy lines and lacking intel, similar to T2 land tanks. Riptide is an exception, as it already has a short 18 vision/weapon range.
- Blaze: Vision radius 24 -> 22
- Yenzyne: Vision radius 20 -> 18
- Wagner: Vision radius 22 -> 20
-
(#6423) The Pulsar receives various tweaks in anticipation of its future introduction into the game. Additionally, the Pulsar’s files have been updated to remove the last remnants of its former name. Initially, the unit was called Othismash.
- Pulsar: T3 Mobile EMP Missile Launcher (SRL0310):
- Categories added:
PRODUCTDL
SNIPEMODE
- Pulsar EMP Missile Barrage:
- DamageRadius: 0 –> 1 (same as its EMP weapon)
- TurretPitchRange: 15 –> 40 (required against nearby units and units on top of mountains)
- TurretPitchSpeed: 20 –> 50 (improves the responsiveness of the turret)
- Introduce a taller firing arc to allow the Pulsar to shoot over obstacles more easily
- Categories added:
- Pulsar: T3 Mobile EMP Missile Launcher (SRL0310):
- (#6427) Add strong tracking capabilities (like the Seraphim SAM) to the AA of the Cybran and Seraphim carriers so that they do not miss their shots.
- Cybran carrier had an especially poor hit rate at the edge of its range because its weak tracking disabled its ability to lead targets.
-
(#6440) Unify the MuzzleVelocity stat of the Aeon Cruiser’s missile launchers. The Infinity Class is equipped with two copies of Zealot AA Missile launchers. These two weapons function identically except for their
MuzzleVelocity
stat, where one weapon has a higher value than the other. This is misleading because the models look the same, and the unit databases imply that both have aMuzzleVelocity
of40
. In terms of gameplay, there is virtually no difference.- Infinity Class: T2 Cruiser (UAS0202):
- Zealot AA Missile (right battery):
- MuzzleVelocity: 40 –> 35
- Zealot AA Missile (left battery):
- MuzzleVelocity: 30 –> 35
- Zealot AA Missile (right battery):
- Infinity Class: T2 Cruiser (UAS0202):
- (#6466) Fix Ythotha being able to walk backwards.
MaxSpeedReverse
: 2.5 -> 0
-
(#6469) Unlike other Tech 2 units, the Fire Beetle only takes up one clamp on transports, the same as Tech 1 units. To ensure that it does not slow transports down excessively, the Fire Beetle’s
TransportSpeedReduction
stat is reduced to match that of Tech 1 units.- Fire Beetle: T2 Mobile Bomb (XRL0302):
- TransportSpeedReduction: 0.3 –> 0.15
- Fire Beetle: T2 Mobile Bomb (XRL0302):
-
(#6476) When the Nano-Repair upgrade was introduced to the Cybran ACU, the
MuzzleSalvoSize
of its torpedo upgrade was nerfed to prevent the combination from being too oppressive. Unfortunately, this change resulted in the torpedo upgrade being weak even against lower quantities of torpedo defenses, since a single anti-torpedo projectile can negate 500 damage. To alleviate this issue, the torpedo upgrade now launches3
instead of2
torpedoes, but at a slightly lower DPS. Additionally, as with most other Cybran torpedoes, their damage is now dealt in multiple pulses.- Cybran Armored Command Unit (URL0001):
- Nanite Torpedo Launcher
- Damage: 500 –> 60 (DoTPulses: 5)
- MuzzleSalvoSize: 2 –> 3
- DPS: 250 –> 225
- Nanite Torpedo Launcher
- Cybran Armored Command Unit (URL0001):
- (#6530) Remove ASF’s armor against Ahwassa bomb, as it is no longer necessary with the new delayed explosion.
- Air superiority fighters: Damage taken from Ahwassa bomb 10% -> 100%
Features
-
(#6341) Improve the formatting of the additional unit details displayed when
Show Armament Detail in Build Menu
is enabled in the settings.-
For example, the Harbinger is now correctly displayed as having a speed of
2.95
instead of3.0
. -
Additionally, trailing zeroes are removed where possible.
-
-
(#6341) Include more information about unit abilities in the additional unit details displayed when
Show Armament Detail in Build Menu
is enabled in the settings.-
Display the ‘Scry’ ability of the Eye of Rhianne and the ‘Vision’ ability of the Soothsayer.
- The radius, activation cost and upkeep of the Eye of Rhianne’s ‘Scry’ ability are now shown.
- The maximum vision radius of the Soothsayer’s ‘Vision’ ability is now shown.
-
Display the
ShieldRechargeTime
of personal shields and shield domes. This stat defines the time it takes for shields to recharge after being fully depleted. -
Display whether a unit can prioritize ACUs via the ‘Snipemode’ feature.
-
-
(#6424) Calculate DPS totals in the additional unit details displayed when
Show Armament Detail in Build Menu
is enabled in the settings. This is useful for summarizing or comparing the stats of units with multiple instances of the same weapon, or multiple weapons of a similar type. If the unit only possesses one valid weapon, the total is not calculated.- For example, the Ythotha (Seraphim Experimental Assault Bot), which has multiple weapons, is now displayed as possessing a combined total of
3794
direct fire DPS. This is displayed in an additional field in the UI, the stats of the individual weapons of the unit remain accessible in the same locations as before.
- For example, the Ythotha (Seraphim Experimental Assault Bot), which has multiple weapons, is now displayed as possessing a combined total of
-
(#6424) Do not display the Mole’s Target Tracker in the additional unit details displayed when
Show Armament Detail in Build Menu
is enabled. -
(#6523) Remove unnecessary UI elements from the additional unit details displayed when
Show Armament Detail in Build Menu
is enabled and the selected unit does not have a specialarmorType
. -
(#6428) Implement a Dual Yaw turret controller so that Loyalist can fully aim its secondary.
Previously, the Loyalist was unable to aim its secondary weapon in all directions because the secondary weapon could not rotate the torso independently. With this change, a weapon can have a secondary yaw bone to aim with by defining
TurretBoneDualYaw
in its blueprint. The secondary yaw’s angle, range, and speed can be set withTurretDualYaw
,TurretDualYawRange
, andTurretDualYawSpeed
, but they also default to the primary yaw’s angle, range, and speed if not specified. - (#6465) Improve the visual representation of multiple projectiles by increasing their
StrategicIconSize
.- Usha-Ah: Seraphim T3 Sniper Bot: Increase the
StrategicIconSize
of its secondary firing mode’s projectile from1
to4
. - Othuum: T3 Siege Tank and Yenzyne: T2 Hover Tank: Increase the
StrategicIconSize
of their Thau Cannon’s projectile from1
to2
. - Percival: T3 Armored Assault Bot: Increase the
StrategicIconSize
of its cannon’s projectile from2
to3
.
- Usha-Ah: Seraphim T3 Sniper Bot: Increase the
-
(#6479) Rework the in-game matchmaker lobby from the ground up
From a user perspective there should be essentially no changes. A new connection matrix is introduced that can help players to understand what source (a player) is connected to what source (another player). The diagonal represents what sources (other players) the local client is connected to. When you receive a message from a peer then it blinks the corresponding box in the matrix.
There are further features ready such as a map preview that can help you prepare for the match ahead. That is not shown however until we have better tooling in place to gauge its impact.
From a developers perspective the matchmaker lobby is now maintainable. You can now start the matchmaker lobby locally through your development environment. This allows you to run the matchmaker lobby as if you would find a match in the client. The matchmaker lobby is build from the ground up with maintainability in mind. It now supports a hot reload-like functionality for the interface. This allows you to change the interface on the go, without having to relaunch the game.
All taken together this is still very much a work in progress and we would love to hear the feedback of the community. We welcome you on Discord in the dev-talk channel.
-
(#6499, https://github.com/FAForever/FA-Binary-Patches/pull/94) Intorduce feature to generalize mechanic to switch footprints
With thanks to an assembly patch the footprint changes that were previously unique to the Cybran Tech 2 Destroyer can now be applied to any unit. For more details, see the pull request on GitHub.
Interested in how assembly patches work? Reach out to the game team. You can find us easiest via the official Discord server.
- (#6533, https://github.com/FAForever/FA-Binary-Patches/pull/96) Add support to assign hotkeys to secondary mouse buttons
Their technical names are ‘X Button 1’ and ‘X Button 2’. These are the buttons that are commonly found on the left or right side of a mouse.
-
(#6534) Select/go to commander hotkeys will now search for commanders in transports if it doesn’t find any on the ground
-
(#6557) Silos without engineering suites will not cancel missile construction when issued a hard-stop order. Silos will pause construction instead.
-
(https://github.com/FAForever/FA-Binary-Patches/pull/88) Allow templates with mass extractors to snap to mass spots
Bug fixes
- (#6281) Fix two errors during blueprint loading when a unit has no Categories table in its blueprint.
ExtractCloakMeshBlueprint
-related error.- Automatic category assignment for the “Weak” weapon categories.
-
(#6343) Remove the
INSIGNIFICANTUNIT
category from the HARMS, to enable them to be transferred to other players again. This also fixes the bug which caused HARMS to get destroyed when their original owner died in a full share game. Additionally, removing the category also allows HARMS to benefit from veterancy again. They will now gain increased hit points and regen from veterancy, just like other units. -
(#6369) AI player teammates should now be able to complete campaign objectives such as the opening Supcom mission’s objective to build 3 mexes.
-
(#6389) Improve tech 2 static artillery’s ability to shoot up cliffs.
-
(#6395) Hitbox improvements for a wide range of amphibious and naval units to ensure that torpedoes and beam weapons can hit them reliably.
-
(#6396, #6538) Fix recall failing on 1 “no” vote less than needed, dead players having their previous recall votes still in effect, and multiple bugs with the voting UI (mainly previous votes showing up again for new recalls).
-
(#6416) Fix Salvation’s reload time not increasing from 2.5 to 2.6 when missing T1 power generator adjacency and only having T3 power generators.
-
(#6418) Fix ACU explosions dealing too much damage to TMD structures.
-
(#6419) Fix engineer stations without a
GuardScanRadius
defaulting to 300 radius for their build range overlay. They now display their full build range in the radius for better compatibility with the reclaim tower mods, even thoughGuardScanRadius
defaults to 25. -
(#6426) Fix the “Active game mods for blueprint loading” log message.
-
(#6429) Fix the aim of the GC’s claws being disrupted by the walking animation.
-
(#6430) Fix an
OnImpact
error caused by CZAR’s depth charges. -
(#6432) Fix units failing to transfer after defeat if the player that is being transferred to is defeated during the transfer process.
-
(#6433) Fix Aeon destroyer’s depth charge’s indirect fire range ring not appearing.
-
(#6436, #6480, #6552) Prevent the logging of an unecessary warning when certain units make landfall.
-
(#6438) Fix
TerrainUtils.GetTerrainSlopeAngles
returning roll on the -Z axis instead of the +Z axis. Previously, this required the roll to be negated when used to orient objects such as units with the terrain. Now roll no longer needs to be negated. -
(#6439) Fix
table.empty
andtable.getsize
not using their asm implementation due to reimports. -
(#6445) Fix overcharge dealing half damage to static and ACU shields.
-
(#6445) Shields now block damage from knocking down/setting fire to trees.
-
(#6445) Fix normal damage being applied before anti-shield damage, which didn’t let the normal damage overkill under a shield.
-
(#6446) Fix the “assist to upgrade” and “assist to unpause” game options conflicting and causing upgrading units to unpause during lag spikes.
-
(#6447) Fix
repr
causing an “attempt to call upval ‘match’ (a nil value)” error when used in the blueprint loading scripts. -
(#6456) Fix engineers not rotating towards the optimal rolloff point in factories with “build finished” animations such as the UEF and Cybran air factories.
- (#6457) Fix weapon projectiles dealing damage over time over a shorter duration than given by the
DoTTime
stat.DoTTime
for FAF units is adjusted to the old actual DoT duration, so balance is not changed.- Unit databases will now show the actual damage over time duration.
-
(#6467) Fix a crash during blueprint loading if a unit blueprint has an enhancements table but not an intel table.
-
(#6471) Fix Seraphim walls not orientating towards the terrain
-
(#6494) Fix a crash when the
EnableDiskWatch
command line argument is enabled. -
(#6499, https://github.com/FAForever/FA-Binary-Patches/pull/94, https://github.com/FAForever/FA-Binary-Patches/pull/107) Fix hard crash when exiting the game when a Salem is on land
The Cybran Tech 2 Destroyer (Salem) has the special ability to move from water onto land. There was a bug in a special, alternative implementation introduced by FAForever. Together with an assembly patch this bug is now fixed.
Interested in how assembly patches work? Reach out to the game team. You can find us easiest via the official Discord server.
-
(#6504) Improve the selection boxes of various air units. Alleviate the issue of terrain partially obstructing the selection boxes of most transports when they are grounded. Slightly improve the visuals of the Vulthoo’s (Seraphim T2 Gunship’s) selection box.
- (#6507) Fix depth charges not applying the ProjectilesToDeflect blueprint field
As a result, all depth charges would also deflect up to 3 projectiles. Mostly applies to torpedo defenses.
-
(#6514) Fix extremely large amounts of energy storage preventing structures from re-enabling themselves after an energy stall due to requiring 0.1% of storage to be full. Now there is an upper limit of 10k on the energy requirement, which is reached at 100k storage.
- (#6536) Fix the tracking radius for unit weapons being floored to the nearest tenth, which made units not track targets that are near the outside of their range.
- Mobile unit weapons: 1.0x of weapon range -> 1.05x
- Anti-air weapons: 1.10x -> 1.15x
- Bomber weapons: 1.2x -> 1.25x
- Structure weapons: 1x -> 1x (unchanged)
-
(https://github.com/FAForever/FA-Binary-Patches/pull/92, https://github.com/FAForever/FA-Binary-Patches/pull/103) Missile silos now keep loading properly when stalling resources
Previously, silos would basically stop loading at all, even if you stalled resources just a little. Now they will load proportionally slower, like all other construction does too.
Other changes
-
(#6237) Convert a markdown-based changelog file into a Lua-based changelog file
-
(#6237) Create a Github Workflow to convert markdown changelog files into Lua changelog files
-
(#6308) Falling satellite wrecks do not trigger nuke explosions anymore. This prevents a rarely used, but possible exploit.
-
(#6406) Automatically eject people from a lobby when there is a missmatch in the game version
Players often mention how it is annoying that games desync as a game release happens. This happens even more frequently on the FAF Develop and FAF Beta Balance game types. With this change we introduce a guard to prevent players from joining a lobby when their game version does not match the game version of the host. If there is a missmatch, the host is informed in the chat and is encouraged to re-create the lobby.
-
(#6431) Make CZAR depth charges give underwater vision on impact alongside the normal vision they give.
- (#5061, #6438, #6527, #6525, #6528) Add metamethods and utility functions for Vectors and Quaternions to simplify and clean up the code involving operations with them.
- This removes the file
/lua/shared/quaternions.lua
, which was added in #4768 (Mar 4, 2023), so mods that use that file will have to be updated. - The metamethods (defined globally in
/lua/system/utils.lua
) include:- Vector/Vector2 addition/subtraction/negation
- Vector/Vector2 * Scalar multiplication
- Quaternion/Vector * Vector/Quaternion multiplication
- Vector * Vector multiplication (cross product)
- Since these are metamethods, they work on all instances of Vector/Vector2/Quaternion, without having to import anything.
- The utility functions (have to be imported from
/lua/utilities.lua
) include:- Faster Lua versions of VDist2, VDist2Sq, VDot
QuatFromRotation
: Creates a quaternion from an orientation axis and rotation angle.QuatFromXZDirection
: Returns the orientation quaternion given an XZ directionTranslateInXZDirection
: Translates the XZ coordinates of a position by a length in a given quaternion orientation.RotateVectorByQuat
: Rotates a vector representing a 3D point by a quaternion rotation.
- This removes the file
-
(#6450) Improve beam blueprint annotations with thorough descriptions of beam parameters.
-
(#6451) Annotate emitter blueprint parameters with extensive descriptions.
-
(#6463) Remove the ‘Kill all your units’ hotkey and related functionality
The existence of the hotkey makes it appear legitimate while it is typically against the rules.
-
(#6474) Implement command line launch of the auto lobby for LAN games. This allows rapidly testing multiplayer in a local environment. Further details on the command line switches used and an example script for launching multiple instances are in the linked pull request.
-
(#6477) Add the function
DrawBone(entity, bone, length)
toSimUtils.lua
. -
(#6485) The new, better way of calculating the water absorption is now available for all terrain shaders. The only requirement is that the light multiplier is set to more than 2.1. Decals now use PBR light calculations if the terrain shader uses it, making them more consistent with the ground they are on.
-
(#6495, #6562) Refactor the map utilities module
Chunks up some larger functions into smaller functions to allow them to be re-used in other modules.
-
(#6498, #6502, #6503, #6514, #6516, #6517, #6518, #6506, #6513) Refactor the Enhancements section in the ACU/SACU scripts
It replaces the long if/else chain with a more modular design that is easier to maintain and hook. Each enhancement has its own dedicated function, named with the format
ProcessEnhancement[EnhancementName]
. The CreateEnhancement function now calls the appropriate enhancement function automatically by that name format. -
(#6526) Default the depth of recursive printing/logging to 3 tables deep
The new default applies to all the
repr
-like functions. This only changes the developers experience. - (https://github.com/FAForever/FA-Binary-Patches/pull/82, https://github.com/FAForever/FA-Binary-Patches/pull/85, https://github.com/FAForever/FA-Binary-Patches/pull/87, https://github.com/FAForever/FA-Binary-Patches/pull/89, https://github.com/FAForever/FA-Binary-Patches/pull/90, https://github.com/FAForever/FA-Binary-Patches/pull/95, https://github.com/FAForever/FA-Binary-Patches/pull/98) Various optimizations and improvements in the engine
Contributors
With thanks to the following people who contributed through coding:
- Jip
- clyfordv
- Nomander
- Basilisk3
- relent0r
- 4z0t
- Rowey
- Balthazar
- Zjonn
- BlackYps
With thanks to the following people who contributed through binary patches:
- 4z0t
- RutreD