Upcoming changes

This is the preliminary changelog for the next game patch. You can find the planned dates for the next releases on GitHub. Some of the new features are still subject to change and may be modified again or removed entirely.

This changelog is autogenerated from the actual deployed changes and always up to date.

You can test these changes by hosting a game in the fafdevelop game mode.

Balance

  • Disable intel of most air units while they are falling to the ground after being killed. Scouts keep their vision while falling but have their other intel disabled (#7190).
Non-Seraphim cruisers

Give non-Seraphim cruisers a small amount of splash so that they can threaten ASF and gunships that are heavily clumped using distribute orders. The amount is kept minimal so that torpedo bombers are not heavily affected by the change. (#7193)

  • Non-Seraphim cruisers:
    • AA weapon’s damage radius: 0 → 0.3
Shield Assist

Fix shield repair ignoring resource stalls. A stalling builder now repairs shields at the same reduced rate as it builds (#7337, FA-Binary-Patches#175).

Features

  • Add blueprint values to adjust shield assist costs (#6937).
    • RegenPerBuildRate: How much HP/s is restored per unit of buildpower assisting the shield. Overrides RegenAssistMult.
    • AssistCostEnergyPerBuildRate and AssistCostMassPerBuildRate: The resource cost per second per unit of buildpower assisting the shield.

      Both values must be present to have an effect, otherwise it defaults to the repair cost of the shield structure (75% of its build cost).

      If both the HP and the shield of a unit are damaged, the assist cost and effects are split equally between the HP repair cost and shield assist costs.

    These values should be assigned in either the Defense.Shield or Enhancements[EnhancementName] tables of the unit blueprint.

    Please keep in mind that shield assist only works for units with the SHIELD category, and only if they’re not upgrading or building.

  • In fullshare, make self-destruct with a selection that includes ACUs only destroy the ACUs (#7132).

  • Add a new temporary template hotkey that can save a selection of structures and then recall it as a build mode when used with an engineer selection, or as a cheat-only spawn mode when used with no selection (#7185, #7333).

  • Show the vision that scouts provide after they die while they fall to the ground (#7190).

  • Give external factories their respective factory’s UI selection sound (#7207).

  • Add “restart session” button to the quit game dialog for skirmish missions (#7226).

  • Make the “Restart the current session” hotkey also restart replays (#7276).

  • Scale the economy overlay with the UI scale option (#7287).

  • Add a “Distribute Assisters” command that assists all selected mobile shields, scouts, and stealth generators onto other units in the selection, and then selects those other units. Can be used by hotkey or right clicking the assist order button (#7226).

  • Automatically pause the game on the first desync (ignoring desyncs on the first beat), so that desynced players can leave without affecting the match further (#7299).

  • Add a game option to control whether tactical missile and nuke launch commands ignore the units under the cursor: always (the previous behavior), unless holding control, only when holding control, or never. Targeting units directly allows hitting units with a raised hitbox such as the Megalith, gives consistent impact points (for example when aiming at a T2 mass extractor next to storages), and lets queued launches follow the target’s position after each reload (#7331).

Bug fixes

  • Re-apply the fix for factories not immediately starting to build queued units after the factory finishes upgrading, or when a currently building land or navy unit is cancelled. It was suspected of causing desyncs, but that does not seem to be the case (#6912).

  • Add missing tooltips for the following game options (#7044):
    • Invert middle mouse button
    • Reclaim batching threshold
    • Painting duration when observing
    • Assist to upgrade radars
    • Default to repeat build
    • Show player names
  • Fix a very badly named key for the “show player names” option. Unfortunately this requires players who were using it to re-enable the option (#7044).

  • Fix blueprints.lua erroring when adding a new blueprint during a blueprint reload (#7190).

  • When using MergeLabel to merge weapon blueprints, merge into all weapon blueprints that have that label instead of merging into only one blueprint under the assumption that labels must be unique (#7191).

  • Fix the economy bar’s resource warning backgrounds: the mass background now turns yellow before red when overflowing, and the energy background now lights up when stalling (#7209).

  • Fix error when worldview with render shapes is destroyed (#7210).

  • Fix units playing their ambient movement sound when changing layers without moving, such as the loud sound when a Fatboy is spawned (#7211).

  • Fix seabed units such as the Fatboy and Wagner not playing their water movement sound when they start moving underwater (#7211).

  • Fix assisting to upgrade T2 radars not checking for any adjacent pgens to be built first (#7212).

  • Fix displayed abilities for Aeon torpedo bomber and Aeon and Cybran hydrocarbon power plants (#7225).

  • Fix error with shields that have a mix of guards with and without orders queued after the assist order (#7227).

  • Fix error when using interrupt pathfinding on immobile engineers (#7228).

  • Fix MaxHealth buffs (used by regen aura) not setting health to a lower new max health value (#7230).
    • Fixes aircraft getting stuck in air staging after losing the regen aura buff.
    • Fixes units taking less damage than expected for 1 shot after losing the regen aura buff.
    • Fixes units instantly refilling to the boosted max HP when regaining the regen aura buff.
  • Fix DiskGetFileInfo crashing to desktop with non-string parameters (#7258). This would rarely cause a crash when joining a lobby right as a host launches the game.

  • Added missing platoon builder for Seraphim AI in FA campaign (#7279)

  • Fix uncommon error with fire beetle script where SetEnabled is called on a destroyed weapon game object (#7283).

  • Fix error when issuing an assist order to a mobile shield/deceiver with a destroyed unit in the selection (#7284). This should fix mobile shields sometimes stopping in range of enemies while assisting another unit, instead of continuing to move.

  • Fix error in /sim/recall.lua when switching armies in non-team games (#7285).

  • Add backwards compatibility for the naval formation changes in Nomads (#7289).

  • Disable the default score board sending chat messages when gifting units or resources, as that has been replaced by the chat rework (#7293).

  • Fix being unable to reach the score screen after ending a paused game. The game is now automatically resumed when it ends (#7296).

  • Fix pressing the external factory button on unbuilt Fatboys and Czars selecting the engineers building them (#7302).

  • Fix issues with the fire beetle (#7307):
    • Fix fire beetles sometimes running in circles when issued an attack command.
    • Fix fire beetles not attacking when patrolling or attack-moving.
    • Fix damage effect not being affected by changes to the weapon’s damage table, such as damage and damage radius modifiers.
      • Visuals are now scaled with damage radius modifiers.
    • Fix the explosion range’s indirect-fire (yellow) range ring not showing. The direct-fire (red) range ring is the detonation range when attacking something.
    • Update weapon names and information in UI to make it more clear what they do.
  • Remove the SONAR category from the UEF Spy Plane as it has no sonar (#7310).

  • Add missing water vision radius to the Ythotha (#7313).

  • Fix the UEF ACU’s gun, OverCharge and AutoOverCharge firing from the tip of the original barrel after the Zephyr Amplifier is built, instead of from the longer upgraded barrel (#7315).

  • Fix crashes and desyncs that could happen while drawings or other shapes are shown in the world, with the frequency depending on the user’s machine. The majority of these crashes/desyncs have occurred after patch 3822 where the painting feature was introduced. Specifically this fixes an engine patch writing outside its memory and corrupting Lua tables (#7336, FA-Binary-Patches#176).

  • Fix two issues with repairing shields (#7337, FA-Binary-Patches#175):
    • Fix shield repair ignoring resource stalls. A stalling builder now repairs shields at the same reduced rate as it builds.
    • Fix disabled shields being repaired when their owner is repaired.
  • Fix the mass cost that units store for an enhancement in progress (WorkItemBuildCostMass) being its energy cost. This only affects mods that read it (#7340).

Graphics

  • Give the Seraphim ACU’s Refracting Chronotron Amplifier its own model, so it is no longer visually identical to the engineering upgrades (#7197).

  • Double the resolution of the shield dome mesh and clean up the shader code (#7263).

AI

  • Created a new file with helper functions for formation commands that orient the formations correctly by angle on each node. (#7267)

  • Refactored platoon and ScenarioFramework to use the new formation commands. (#7267)

  • Attack platoons in campaign now orient formations correctly, so units move through path nodes faster. (#7267)

Performance

  • Use per-unit order functions in SimUtils DisableAI (#7293).

Other changes

  • (#6550) Add argument to choose game exe file to use in launch script.

  • Add functions for UI mods to add or remove context-based templates on the fly (#7004).

  • Add SHIFT binding options for “Pause Unit” and “Toggle Repeat Build” (#7170).

  • Annotate various sim unit, UI, and sim sync functionality (#7208).

  • Add module reloading for the economy bar (economy.lua) (#7209).

  • Fix FAF intellisense plugin not detecting hook paths with non-word characters, and fix new diagnostics showing up from hooked content (#7213).

  • Clean up code style and fix annotations in ACUUnit.lua (#7215).

  • All custom String_ functions are moved to the default string library. Same pattern as the extended table. (#7250)
  • Annotate formations.lua (#7259).

  • Annotate WldUiProvider class (#7268).

  • Improve a large amount of annotations (#7270).

  • Refactor and annotate the BaseManager class and other files and functions used by the campaign platoons. (#7271)

  • Unified objective logic under a new class (#7273)
  • Improved ObjectiveGroup (#7273)

  • Document debugging process for replays and desyncs (#7274).

  • Cached results of categories set operations to reduce object de/allocations and improved sim-speed performance. (#7280)
  • Fix annotations in Shape.lua and for __pow (#7293).

  • Update annotations for OnBeat, GetConstructEconomyModel, SelectedUnit, and weapon damage attribute-changing functions (#7293).

  • Log number of mods set when setting selected mods (#7293).

  • Annotate basic Scenario data types (#7295).

  • Fixes annotations of table.find (#7309)
  • Added table.findCustom function (#7309)
  • Added table.has function (#7309)

  • Added single unit variant to all relevant IssueCommand sim functions (#7311)
  • Improved documentation of IssueCommand sim functions (#7311)

  • Add a benchmark for indexing nil that compares different implicit nil check usages of the behavior (#7319).

  • Fix documentation of the table pre-allocation syntax (#7320).

  • Refactor the Ahwassa strategic bomb to use the damage over time mechanics instead of a hand-rolled damage thread, with no change in damage values, radii or timing (#7323).
  • Add a new DoTDelayFirstPulse weapon blueprint flag for projectile weapons: the impact deals only InitialDamage and all DoTPulses are dealt over DoTTime (#7323).

  • Annotate the __fenv global. It allows overriding the result of getfenv (#7332).

  • Replace coroutine.yield with WaitTicks, to improve clarity and save 1 table lookup (#7334)