Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions docs/_posts/2026-10-20-3840.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
layout: post
title: 3840 - Hotfix
permalink: changelog/3840
---

# Game version 3840 (October 20, 2026)

Greetings Commanders,

you are probably aware that recently a lot of games and replays were plagued by desyncs that had no apparent reason. We finally found the bug and can deploy the fix now. Because of a technical limitation we also roll out the rest of the engine patches that have been done in the meantime.

I am extremely grateful to Nomander, who hunted down the cause of the bug and successfully verified the fix with the help of JaggedAppliance!

Best Regards,
BlackYps

## Engine

- 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, [#176](https://github.com/FAForever/FA-Binary-Patches/pull/176)).

{% unit UEB4301 %}
Shield Assist
{% endunit %}
Fix shield repair ignoring resource stalls. A stalling builder now repairs shields at the same reduced rate as it builds ([#175](https://github.com/FAForever/FA-Binary-Patches/pull/175)).

- Fix two issues with repairing shields ([#175](https://github.com/FAForever/FA-Binary-Patches/pull/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 Replay Desyncs after a player died ([#172](https://github.com/FAForever/FA-Binary-Patches/pull/172)).
- Remove old desync-fix code ([#173](https://github.com/FAForever/FA-Binary-Patches/pull/173)).

- Fix one of the causes that broke the save/load feature. Saving and loading games *might* now work again ([#134](https://github.com/FAForever/FA-Binary-Patches/pull/134)).

- Fix aircraft never undocking from air staging platforms / carriers when stored health is above max health, for example because of the Seraphim Restoration Field ([#169](https://github.com/FAForever/FA-Binary-Patches/pull/169)).

- Fix camera snapping behind terrain in freecam. Watch the linked videos for a better explanation ([#170](https://github.com/FAForever/FA-Binary-Patches/pull/170)).

- Increase the fixed particle render-buffer pool from 400 to 4096 entries and the segment-buffer pool from 100 to 400 entries. The game can now render more particles simultaneously ([#165](https://github.com/FAForever/FA-Binary-Patches/pull/165)).

- Make particles impact at height 0 if they land outside of the map ([#154](https://github.com/FAForever/FA-Binary-Patches/pull/154)).

- Add toggle `ren_MinimapRanges` for rendering range rings in minimap. Saves up to 50fps when there are lots of units on the map ([#158](https://github.com/FAForever/FA-Binary-Patches/pull/158)).

## Contributors

With thanks to the following contributors:
- 4z0t
- Nomander
- ETFreeman
- Hdt80bro
- Mozd-122
- zhanghm18
70 changes: 70 additions & 0 deletions lua/ui/lobby/changelog/generated/2026-10-20-3840.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
--------------------------------------------------------------------------------------------------------------------------------------------
-- This file was autogenerated using changelog_markdown2lua.py --
-- Source: docs/_posts/2026-10-20-3840.md --
--------------------------------------------------------------------------------------------------------------------------------------------
Changelog = {
Version = 3840,
Title = "Hotfix",
Description = {
"# Game version 3840 (October 20, 2026)",
"",
"Greetings Commanders,",
"",
"you are probably aware that recently a lot of games and replays were plagued by desyncs that had no apparent reason. We finally found the",
"bug and can deploy the fix now. Because of a technical limitation we also roll out the rest of the engine patches that have been done in the",
"meantime.",
"",
"I am extremely grateful to Nomander, who hunted down the cause of the bug and successfully verified the fix with the help of",
"JaggedAppliance!",
"",
"Best Regards,\\",
"BlackYps",
"",
"## Engine",
"",
"- 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,",
" [#176](https://github.com/FAForever/FA-Binary-Patches/pull/176)).",
"",
"{% unit UEB4301 %} Shield Assist {% endunit %} Fix shield repair ignoring resource stalls. A stalling builder now repairs shields at the",
"same reduced rate as it builds ([#175](https://github.com/FAForever/FA-Binary-Patches/pull/175)).",
"",
"- Fix two issues with repairing shields ([#175](https://github.com/FAForever/FA-Binary-Patches/pull/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 Replay Desyncs after a player died ([#172](https://github.com/FAForever/FA-Binary-Patches/pull/172)).",
"",
"- Remove old desync-fix code ([#173](https://github.com/FAForever/FA-Binary-Patches/pull/173)).",
"",
"- Fix one of the causes that broke the save/load feature. Saving and loading games *might* now work again",
" ([#134](https://github.com/FAForever/FA-Binary-Patches/pull/134)).",
"",
"- Fix aircraft never undocking from air staging platforms / carriers when stored health is above max health, for example because of the",
" Seraphim Restoration Field ([#169](https://github.com/FAForever/FA-Binary-Patches/pull/169)).",
"",
"- Fix camera snapping behind terrain in freecam. Watch the linked videos for a better explanation",
" ([#170](https://github.com/FAForever/FA-Binary-Patches/pull/170)).",
"",
"- Increase the fixed particle render-buffer pool from 400 to 4096 entries and the segment-buffer pool from 100 to 400 entries. The game can",
" now render more particles simultaneously ([#165](https://github.com/FAForever/FA-Binary-Patches/pull/165)).",
"",
"- Make particles impact at height 0 if they land outside of the map ([#154](https://github.com/FAForever/FA-Binary-Patches/pull/154)).",
"",
"- Add toggle `ren_MinimapRanges` for rendering range rings in minimap. Saves up to 50fps when there are lots of units on the map",
" ([#158](https://github.com/FAForever/FA-Binary-Patches/pull/158)).",
"",
"## Contributors",
"",
"With thanks to the following contributors:",
"",
"- 4z0t",
"- Nomander",
"- ETFreeman",
"- Hdt80bro",
"- Mozd-122",
"- zhanghm18"
}
}
7 changes: 7 additions & 0 deletions lua/ui/lobby/changelog/generated/overview.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
---@type UIChangelogOverview
Overview = {
Changelogs = {
{
Version = 3840,
Name = "3840 - Hotfix",
Date = "2026-10-20",
URL = "http://faforever.github.io/fa/changelog/3840",
Path = "/lua/ui/lobby/changelog/generated/2026-10-20-3840.lua"
},
{
Version = 3839,
Name = "3839 - Hotfix",
Expand Down
6 changes: 3 additions & 3 deletions lua/version.lua
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ local Commit = 'unknown' -- The use of `'` instead of `"` is **intentional**

--#endregion

local Version = "3839"
---@alias PATCH "3839"
---@alias VERSION "1.5.3839"
local Version = "3840"
---@alias PATCH "3840"
---@alias VERSION "1.5.3840"
---@return PATCH # Game release
function GetVersion()
LOG(string.format('Supreme Commander: Forged Alliance Lua version %s at %s (%s)', Version, GameType, Commit))
Expand Down
2 changes: 1 addition & 1 deletion mod_info.lua
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
-- - https://github.com/FAForever/fa/blob/deploy/fafdevelop/lua/MODS.LUA

name = "Forged Alliance Forever"
version = 3839 -- needs to be an integer as it is parsed as a short (16 bit integer)
version = 3840 -- needs to be an integer as it is parsed as a short (16 bit integer)
_faf_modname='faf'
copyright = "Forged Alliance Forever Community"
description = "Forged Alliance Forever extends Forged Alliance, bringing new patches, game modes, units, ladder, and much more!"
Expand Down
Loading