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
  • (#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
  • (#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 a MuzzleVelocity of 40. 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
  • (#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
  • (#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 launches 3 instead of 2 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
  • (#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 of 3.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.
  • (#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 special armorType.

  • (#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 with TurretDualYaw, TurretDualYawRange, and TurretDualYawSpeed, 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 from 1 to 4.
    • Othuum: T3 Siege Tank and Yenzyne: T2 Hover Tank: Increase the StrategicIconSize of their Thau Cannon’s projectile from 1 to 2.
    • Percival: T3 Armored Assault Bot: Increase the StrategicIconSize of its cannon’s projectile from 2 to 3.
  • (#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 though GuardScanRadius 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 and table.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 direction
      • TranslateInXZDirection: 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.
  • (#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) to SimUtils.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