This is the changelog for the **next stable release**. The [[changelog for the development branch|Changelog (bleed)]] can be found separately. Additionally, changes from earlier releases can be found on the [historical changelogs](https://github.com/OpenRA/OpenRA/wiki/Historical-Changelogs) page. **Release 20250330** ------------------------- * Fixed harvester resource patch selection. [[#21785](https://github.com/OpenRA/OpenRA/pull/21785 "Harvesters prefer ore near to the refinery.")] * Fixed rallypoints not showing full target lines. [[#21791](https://github.com/OpenRA/OpenRA/pull/21791 "Fix rallypoints not showing full target lines")] * Fixed resource calculations in the map editor. [[#21820](https://github.com/OpenRA/OpenRA/pull/21820 "Fix resource calculation")] * Fixed UI alignment of lobby Team options. [[#21787](https://github.com/OpenRA/OpenRA/pull/21787 "Fix alignment")] * Fixed a crash that seldom can occur when capturing is stopped early. [[#21800](https://github.com/OpenRA/OpenRA/issues/21800 "Fix a potential crash when cancelling capture")] * Fixed server list and lobby not translating bot names. [[#21815](https://github.com/OpenRA/OpenRA/pull/21815 "Use Fluent bot names in server list"), [#21828](https://github.com/OpenRA/OpenRA/pull/21828 "Fix custom bot names being untranslated in lobby"), [#21830](https://github.com/OpenRA/OpenRA/pull/21830)] * Fixed a crash when burning trees on the Tiberian Dawn Jungle tileset. [[#21792](https://github.com/OpenRA/OpenRA/pull/21792 "Fix tree husks on jungle tileset")] * Fixed color remap glitches in Dune 2000 infantry crushed animation. [[#21809](https://github.com/OpenRA/OpenRA/pull/21809 "Fix green glitch in crush anim in d2k mod")] * Fixed weapon splash damage in Dune 2000 not matching the original game. [[#21810](https://github.com/OpenRA/OpenRA/pull/21810 "Fix wrong Spread on some Warheads")] * Fixed initial camera position in Dune 2000 menu background. [[#21819](https://github.com/OpenRA/OpenRA/pull/21819 "Fix camera being in an incorrect position of first frame")] * Fixed tile 1141 in the Dune 2000 Arrakis tileset. [[#21801](https://github.com/OpenRA/OpenRA/pull/21801 "Fix wrong frame reference on 1141 tile in arrakis tileset")] * Fixed `FlashPostProcessEffect` Red and Blue color channels being mixed up. [[#21807](https://github.com/OpenRA/OpenRA/pull/21807 "Fix FlashPostProcessEffect channel order.")] * Fixed Raspberry Pi GLSL bug. [[#21813](https://github.com/OpenRA/OpenRA/pull/21813 "Work around Raspberry Pi GLSL bug")] * Added additional performance improvements. [[#21798](https://github.com/OpenRA/OpenRA/pull/21798 "Add missing dispose calls"), [#21831](https://github.com/OpenRA/OpenRA/pull/21831 "Increase perf for parsing remote maps")] **Release 20250303** ------------------------- **General improvements** * Added custom map pool support for dedicated servers. [[#21179](https://github.com/OpenRA/OpenRA/pull/21179 "Add custom map pool support for dedicated servers")] * Added a button that resets lobby options to their default settings. [[#21205](https://github.com/OpenRA/OpenRA/pull/21205 "Add a button to reset lobby options to default.")] * Added persistent skirmish lobby options. [[#21206](https://github.com/OpenRA/OpenRA/pull/21206 "Persist skirmish settings between sessions"), [#21535](https://github.com/OpenRA/OpenRA/pull/21535 "Lock starting units in Fort Lonestar & Oil Spill"), [#21756](https://github.com/OpenRA/OpenRA/pull/21756 "Sanitize saved skirmish factions.")] * Added support for installing game assets from the Steam release of The Ultimate Collection. [[#21355](https://github.com/OpenRA/OpenRA/pull/21355 "Add installer metadata for the new Steam release of C&C TUC.")] * Fixed The First Decade DVD asset installation. [[#21520](https://github.com/OpenRA/OpenRA/pull/21520 "Fix TFD asset installation.")] * Added sorting to army and earnings graphs. [[#21410](https://github.com/OpenRA/OpenRA/pull/21410 "added sorting of names to earnings graph #21410")] * Added full remapping of player relationship colors instead of just health bars for better accessibility. [[#20699](https://github.com/OpenRA/OpenRA/pull/20699 "Apply player relationship colors to all player colors")] * Added several quality-of-life changes to the map editor. [[#20226](https://github.com/OpenRA/OpenRA/pull/20226 "Editor UI refactor with draggable selection box"), [#21315](https://github.com/OpenRA/OpenRA/pull/21315 "Editor: add Resource counter and measurement info into Area Selection tab"), [#21318](https://github.com/OpenRA/OpenRA/pull/21318 "Fix editor area/actor deselection bugs"), [#21255](https://github.com/OpenRA/OpenRA/pull/21255 "ActorMoveBrush for Editor"), [#21317](https://github.com/OpenRA/OpenRA/pull/21317 "Editor mirror tiles layer"), [#21446](https://github.com/OpenRA/OpenRA/pull/21446 "Fix map editor copy-paste for isometric maps."), [#21447](https://github.com/OpenRA/OpenRA/pull/21447 "Improve performance of copy-paste in map editor."), [#21541](https://github.com/OpenRA/OpenRA/pull/21541 "Fix sizing of exported ts/ra/d2k glyphs-3x.png and cnc chrome-3x.png"), [#21542](https://github.com/OpenRA/OpenRA/pull/21542 "Fix AddMarkerLayerOverlay update rule"), [#21529](https://github.com/OpenRA/OpenRA/pull/21529 "Make map editor brush rendering self-contained"), [#21274](https://github.com/OpenRA/OpenRA/pull/21274 "Editor: ActorEditLogic: support for dynamic generation of items in dropdown"), [#21642](https://github.com/OpenRA/OpenRA/pull/21642 "Refactor editor clipboard logic as blitting logic"), [#21677](https://github.com/OpenRA/OpenRA/pull/21677 "Add delete button to the map editor")] * Added a `Play Map` button to the map editor menu. [[#20120](https://github.com/OpenRA/OpenRA/pull/20120 "Add Play Map button to map editor"), [#20101](https://github.com/OpenRA/OpenRA/pull/20101 "Prevent game from starting via checkboxes with unavailable map"), [#21573](https://github.com/OpenRA/OpenRA/pull/21573 "Fix OrderManager being deleted in map editor"), [#21580](https://github.com/OpenRA/OpenRA/pull/21580)] * Added crushing to ground-based husks. [[#20338](https://github.com/OpenRA/OpenRA/pull/20338 "Give husks the ability to crush")] * Added fetching of player name from itch.io. [[#21285](https://github.com/OpenRA/OpenRA/pull/21285 "Fetch the player name from itch.io")] * Added automatic ordering of blocking units to move away when trying to deploy an MCV. [[#21016](https://github.com/OpenRA/OpenRA/pull/21016 "Automatically order units away when trying to deploy transform")] * Added a number of performance improvements. [[#20140](https://github.com/OpenRA/OpenRA/pull/20140 "Fly, use rotating buffer over list to store last 5 positions"), [#20965](https://github.com/OpenRA/OpenRA/pull/20965 "Immutable MiniYaml"), [#21028](https://github.com/OpenRA/OpenRA/pull/21028 "Cache uniform locations"), [#21038](https://github.com/OpenRA/OpenRA/pull/21038 "Simplify matrix utils"), [#21065](https://github.com/OpenRA/OpenRA/pull/21065 "Bytes -> Hex conversion update"), [#21019](https://github.com/OpenRA/OpenRA/pull/21019 "Add IndexBuffer and update SpriteRenderer and TerrainSpriteLayer to use it"), [#21022](https://github.com/OpenRA/OpenRA/pull/21022 "Improve lookups of nodes by key in MiniYaml"), [#21059](https://github.com/OpenRA/OpenRA/pull/21059 "Unhardcode vertices"), [#21146](https://github.com/OpenRA/OpenRA/pull/21146 "Introduce integer vertex attributes"), [#21149](https://github.com/OpenRA/OpenRA/pull/21149 "Fix shader type conversion."), [#21165](https://github.com/OpenRA/OpenRA/pull/21165 "Fix Locomotor.CanMoveFreelyInto when using ignoreSelf."), [#21164](https://github.com/OpenRA/OpenRA/pull/21164 "Add domain checks to HierarchicalPathFinder"), [#21495](https://github.com/OpenRA/OpenRA/pull/21495 "HPF handles searches from unreachable source cells into cut off areas."), [#21186](https://github.com/OpenRA/OpenRA/pull/21186 "Use spans to improve performance in StreamExts."), [#21178](https://github.com/OpenRA/OpenRA/pull/21178 "Make Rectangle a readonly struct."), [#21299](https://github.com/OpenRA/OpenRA/pull/21299 "Provide names and pools when creating MiniYaml."), [#21311](https://github.com/OpenRA/OpenRA/pull/21311 "Use HashSets instead of .Distinct"), [#21261](https://github.com/OpenRA/OpenRA/pull/21261 "Store ICrushable traits as actor field."), [#21328](https://github.com/OpenRA/OpenRA/pull/21328 "Prevent Blocked Crates from Crashing the Game"), [#21343](https://github.com/OpenRA/OpenRA/pull/21343 "Remove unused RenderSprite trait fields"), [#21358](https://github.com/OpenRA/OpenRA/pull/21358 "Make Color use uint for ARGB."), [#21361](https://github.com/OpenRA/OpenRA/pull/21361 "Speed up Util.FastCopyIntoChannel"), [#21359](https://github.com/OpenRA/OpenRA/pull/21359 "Fetch actors directly in DropPodsPower."), [#21357](https://github.com/OpenRA/OpenRA/pull/21357 "Improve performance of R8Loader."), [#21363](https://github.com/OpenRA/OpenRA/pull/21363 "Improve sheet packing."), [#21360](https://github.com/OpenRA/OpenRA/pull/21360 "Improve BotModule performance."), [#21369](https://github.com/OpenRA/OpenRA/pull/21369 "Improve sheet packing in Dune 2000."), [#21371](https://github.com/OpenRA/OpenRA/pull/21371 "Fix ActorIndex when dealing with multiple trait instances."), [#21383](https://github.com/OpenRA/OpenRA/pull/21383 "Trim memory usage of various collections."), [#21408](https://github.com/OpenRA/OpenRA/pull/21408 "Do not keep map pakages loaded on Game start to reduce memory impact"), [#21448](https://github.com/OpenRA/OpenRA/pull/21448 "Avoid keeping ActorInitializers in memory."), [#21391](https://github.com/OpenRA/OpenRA/pull/21391 "Introduce MoveCooldownHelper to prevent lag spikes from failed pathfinding"), [#21478](https://github.com/OpenRA/OpenRA/pull/21478 "Improve performance of path-debug command."), [#21476](https://github.com/OpenRA/OpenRA/pull/21476 "Remove unused previous state in AI StateMachine"), [#21473](https://github.com/OpenRA/OpenRA/pull/21473 "Reduce lag spikes from SquadManagerBotModule."), [#21477](https://github.com/OpenRA/OpenRA/pull/21477 "Cache teams in observer logic"), [#21469](https://github.com/OpenRA/OpenRA/pull/21469 "Fix PortableChrono not working"), [#21474](https://github.com/OpenRA/OpenRA/pull/21474 "Improve performance of AIUtils.FindQueues"), [#21356](https://github.com/OpenRA/OpenRA/pull/21356 "Implement Stream.Read(Span) overloads."), [#21519](https://github.com/OpenRA/OpenRA/pull/21519 "Improve generality of SpriteCache AdjustFrame."), [#21471](https://github.com/OpenRA/OpenRA/pull/21471 "Reduce lag spikes from HarvesterBotModule."), [#21546](https://github.com/OpenRA/OpenRA/pull/21546 "Allow sheet buffers to be reused in SheetBuilder."), [#21543](https://github.com/OpenRA/OpenRA/pull/21543 "Fix moves being reported as blocked when already at the destination."), [#21557](https://github.com/OpenRA/OpenRA/pull/21557 "Use a smaller sheet in CursorManager."), [#21578](https://github.com/OpenRA/OpenRA/pull/21578 "Change constructOrderCache to an array."), [#21368](https://github.com/OpenRA/OpenRA/pull/21368 "Trim empty space around edges of Shp(TD) frames"), [#21409](https://github.com/OpenRA/OpenRA/pull/21409 "Dispose sound sources"), [#21579](https://github.com/OpenRA/OpenRA/pull/21579 "Change ActorIndex to work in terms of TraitInfo, instead of Trait."), [#21556](https://github.com/OpenRA/OpenRA/pull/21556 "Provide buffer size in ShpRemasteredSprite."), [#21558](https://github.com/OpenRA/OpenRA/pull/21558 "Avoid some allocations in MiniYaml.Merge."), [#21600](https://github.com/OpenRA/OpenRA/pull/21600 "Remove key handling from ContainerWidget #21600"), [#21606](https://github.com/OpenRA/OpenRA/pull/21606 "Don't create an unnecessary HPF layer"), [#21613](https://github.com/OpenRA/OpenRA/pull/21613 "Improve performance of FrozenActorLayer.Tick"), [#21612](https://github.com/OpenRA/OpenRA/pull/21612 "In RemoveCellsFromPlayerShroud, don't call RemoveSource unless required."), [#21645](https://github.com/OpenRA/OpenRA/pull/21645 "Restore threaded renderer on Windows in windowed mode."), [#21726](https://github.com/OpenRA/OpenRA/pull/21726 "Fix sheet sequence dump"), [#21673](https://github.com/OpenRA/OpenRA/pull/21673 "Revert Restore threaded renderer on Windows in windowed mode.")] * Fixed unit creation/duplication crates glitching into other actors. [[#20849](https://github.com/OpenRA/OpenRA/pull/20849 "Fix crate spawned actors not crushing crushable actors and spawning inside other actors."), [#21735](https://github.com/OpenRA/OpenRA/pull/21735 "Fix bot harvesters crashing")] * Fixed a crash that occurred when creating a new server during map updates. [[#19990](https://github.com/OpenRA/OpenRA/pull/19990)] * Fixed crashes when creating a game save in a match against bots. [[#21736](https://github.com/OpenRA/OpenRA/pull/21736 "Match the squad check inside .CenterPosition"), [#21742](https://github.com/OpenRA/OpenRA/pull/21742 "Fix a bad comparison against Target.Invalid")] * Fixed nudging being unavailable in waypoint mode and missing target line. [[#20493](https://github.com/OpenRA/OpenRA/pull/20493 " Allow queueing up scatter and move Nudge to an activity")] * Fixed units in transports detecting cloaked units. [[#21128](https://github.com/OpenRA/OpenRA/pull/21128 "DetectCloaked: actor should be in world")] * Fixed developer command `/all` resetting shroud. [[#21185](https://github.com/OpenRA/OpenRA/pull/21185 "Use Array.IndexOf to speed up Shroud.Tick.")] * Fixed some remastered installation directories not being detected on Windows. [[#21140](https://github.com/OpenRA/OpenRA/pull/21140 "Installers: Fix Steam library manifest parsing.")] * Fixed game start notification playing slightly before game start. [[#21207](https://github.com/OpenRA/OpenRA/pull/21207 "Improve delay between load complete and game starting")] * Fixed FPS counter being erratic in the first seconds of the game starting. [[#21209](https://github.com/OpenRA/OpenRA/pull/21209 "FPS counter adjustments")] * Fixed a crash with Discord integration. [[#21327](https://github.com/OpenRA/OpenRA/pull/21327 "Fix NREs in DiscordService.")] * Fixed empty yaml comments crashing the game. [[#21239](https://github.com/OpenRA/OpenRA/pull/21239 "Fix handling of empty indented MiniYAML comments.")] * Fixed a rare crash when a landed aircraft is ordered to land on impassable cells. [[#21346](https://github.com/OpenRA/OpenRA/pull/21346 "Land activity: fix bug which causes crash in Aircraft.AddInflunce()")] * Fixed parallel production queues not pausing production, when all production traits are paused. [[#21296](https://github.com/OpenRA/OpenRA/pull/21296 "ParallelProductionQueue: pause production, when all Production traits are paused")] * Fixed renamed actors not being able to be deleted in the map editor. [[#21354](https://github.com/OpenRA/OpenRA/pull/21354 "Fix map editor not removing an actor properly.")] * Fixed the screen continuing to scroll when chat is opened. [[#21405](https://github.com/OpenRA/OpenRA/pull/21405 "Fix Scroll bug when chat is opened (the same issue was for menu)")] * Fixed games showing in server list with deselected filters. [[#21421](https://github.com/OpenRA/OpenRA/pull/21421 "Fix games showing in server list with deselected filters")] * Fixed a graphical error that caused assets to become invisible when adding a new player. [[#21488](https://github.com/OpenRA/OpenRA/pull/21488 "Fix graphical error when adding multiplayer spawn points in the map editor")] * Fixed spamming the skirmish button starting multiple sessions. [[#21498](https://github.com/OpenRA/OpenRA/pull/21498 "Fixed single-player menu staying open for too long")] * Fixed load-game menu staying open for too long. [[#21554](https://github.com/OpenRA/OpenRA/pull/21554 "Fixed load-game menu staying open for too long")] * Fixed AI placing rally points in unpathable locations. [[#21475](https://github.com/OpenRA/OpenRA/pull/21475 "AI uses better rally point placement"), [#21665](https://github.com/OpenRA/OpenRA/pull/21665 "Fix BaseBuilderBotModule.LocomotorsForProducibles.")] * Fixed unit from crates or starting position getting stuck. [[#21521](https://github.com/OpenRA/OpenRA/pull/21521 "Ensure starting units or units granted by a crate are not isolated."), [#21537](https://github.com/OpenRA/OpenRA/pull/21537 "Allow SpawnStartingUnits to have an immovable BaseActor")] * Fixed incompatible ZIP extra data crashing map updater. [[#21492](https://github.com/OpenRA/OpenRA/pull/21492 "Fix map update with incompatible ZIP extra data")] * Fixed logs not being written out when the Utility crashes. [[#21517](https://github.com/OpenRA/OpenRA/pull/21517 "Flush logs when crashing.")] * Fixed a rare crash when selected units died. [[#21564](https://github.com/OpenRA/OpenRA/pull/21569 "InvalidOperationException: Attempted to get trait from destroyed object at RallyPointOrderTargeter")] * Fixed the word-wrap of the credits text. [[#21589](https://github.com/OpenRA/OpenRA/pull/21589 "Fix CreditsLogic to word-wrap the text.")] * Fixed missile having no facing set before first game tick. [[#21278](https://github.com/OpenRA/OpenRA/pull/21278 "Fix missile having no facing set before first game tick")] * Fixed production palette having some click-through UI. [[#21593](https://github.com/OpenRA/OpenRA/pull/21593 "Fix being able to click through some areas of the chrome")] * Fixed NAT log omitting the error message. [[#21611](https://github.com/OpenRA/OpenRA/pull/21611 "Improve NAT logging #21611")] * Fixed weather overlay viewport size for spectators. [[#21620](https://github.com/OpenRA/OpenRA/pull/21620 "Fix weather overlay viewport size for spectators.")] * Fixed UI sprites sometimes scaling not smoothly. [[#21634](https://github.com/OpenRA/OpenRA/pull/21634 "Determine pixel-to-texel ratio for each sprite individually.")] * Improved Battlefield News dropdown. [[#21672](https://github.com/OpenRA/OpenRA/pull/21672 "Reduce the size of battlefield news when messages are short")] * Improved AI pathfinding and target selection logic. [[#20227](https://github.com/OpenRA/OpenRA/pull/20227 "Add helper methods to locate actors that can be reached via a path."), [#20228](https://github.com/OpenRA/OpenRA/pull/20228 "Improve AI squad pathing and regrouping behavior."), [#21071](https://github.com/OpenRA/OpenRA/pull/21071 "Fix units considering terrain when entering other actors"), [#21348](https://github.com/OpenRA/OpenRA/pull/21348 "Fix force rally point not setting building as primary")] * Increased the sound source pool size to the maximum. [[#21174](https://github.com/OpenRA/OpenRA/pull/21174 "Increase sound source pool size to the maximum")] **Red Alert** * Added `Allies-13` mission. [[#19862](https://github.com/OpenRA/OpenRA/pull/19862 "Add Allies13")] * Added Aftermath mission `Negotiations`. [[#20975](https://github.com/OpenRA/OpenRA/pull/20975 "Add Negotiations mission (Red Alert, scg47ea)")] * Added a proper chrono vortex effect when a Construction Yard is chronoshifted. [[#21148](https://github.com/OpenRA/OpenRA/pull/21148 "Render Chrono Vortex using a shader effect")] * Added a flash after medic or mechanic repairs a unit. [[#21269](https://github.com/OpenRA/OpenRA/pull/21269 "implements flashing on healing units")] * Added offsets to smudge smoke and fires. 🔥 [[#21272](https://github.com/OpenRA/OpenRA/pull/21272 "Add support for custom smudge smoke offset and add flame spawns to RA/TD - continued"), [#21292](https://github.com/OpenRA/OpenRA/pull/21292 " Fix smudges incorrectly generating on slopes")] * Added mine layer operations to Turtle AI. [[#20574](https://github.com/OpenRA/OpenRA/pull/20574 "Add MinelayerBotModule"), [#20993](https://github.com/OpenRA/OpenRA/pull/20993 "Moved mine layer bot module to commons and polish"), [#21053](https://github.com/OpenRA/OpenRA/pull/21053 "Fix some basic bug in AI"), [#21310](https://github.com/OpenRA/OpenRA/pull/21310 "Add Turtle condition to RA bots' mine laying")] * Added a 2-3 minute delay until AI builds radar domes to allow it to focus on production. [[#20981](https://github.com/OpenRA/OpenRA/pull/20981 "Delay AI's radar dome by 2-3 minutes")] * Added new multiplayer-only map `Shuriken Island`. [[#20923](https://github.com/OpenRA/OpenRA/pull/20923 "Add Shuriken Island to the RA official map pool")] * Added easy difficulty to `Intervention` and polished up the mission. [[#21398](https://github.com/OpenRA/OpenRA/pull/21398 "Add polish to Intervention")] * Added navy orders to `Soviet-06a` and polished up the mission. [[#21399](https://github.com/OpenRA/OpenRA/pull/21399 "Add navy orders, fixes to Soviet 06a"), [#21763](https://github.com/OpenRA/OpenRA/pull/21763 "Fix soviet-06 harvester production crash")] * Added navy orders to `Soviet-06b` and polished up the mission. [[#21243](https://github.com/OpenRA/OpenRA/pull/21243 "Add navy orders, fixes to Soviet 06b")] * Added bombers to `Production Disruption` and polished up the mission. [[#21400](https://github.com/OpenRA/OpenRA/pull/21400 "Add bombers, fixes to Production Disruption")] * Adjusted difficulty of `Allies-06a` and polished up the mission. [[#21401](https://github.com/OpenRA/OpenRA/pull/21401 "Adjust difficulty, add speeches to allies-06a")] * Fixed mission `Allies-08b` objective referring to the wrong direction. [[#21724](https://github.com/OpenRA/OpenRA/pull/21724 "Fix some campaign Fluent keys")] * Fixed desert bridges being unrepairable from the north. [[#21731](https://github.com/OpenRA/OpenRA/pull/21731 "Fix unrepairable desert bridge")] * Fixed missing barbed wire in certain missions. [[#21482](https://github.com/OpenRA/OpenRA/pull/21482 "Restore missions' barbed wire"), [#21522](https://github.com/OpenRA/OpenRA/pull/21522 "Fix editor crash from added mission fencing")] * Fixed disabled command bar buttons being click through. [[#21534](https://github.com/OpenRA/OpenRA/pull/21534 "Fix click through for disabled command bar buttons")] * Fixed crashes in `Soviet-08a`, `Soviet-11a` and `Soviet-11b`. [[#21251](https://github.com/OpenRA/OpenRA/pull/21251 "Rename the Radar Dome in Soviets08a to avoid a crash"), [#21246](https://github.com/OpenRA/OpenRA/pull/21246 "Add IsDead/aircraft checks to Soviet 11")] * Fixed `Allies-02` having pillbox disabled. [[#21249](https://github.com/OpenRA/OpenRA/pull/21249 "Add Pillbox, early dog attack to allies-02")] * Fixed `Allies-05` missing shooting sounds while Tanya is freed. [[#21334](https://github.com/OpenRA/OpenRA/pull/21334 "Restore allies-05 prison self-targeting")] * Fixed game save / load notifications not playing on missions `Monster-tank-madness` and `Mousetrap`. [[#21725](https://github.com/OpenRA/OpenRA/pull/21725 "Restore StartGameNotification in missions")] * Fixed up wording of mission briefings, objectives and notifications. [[#21570](https://github.com/OpenRA/OpenRA/pull/21570 "Missions rules.yaml wording/typo fixes")] * Fixed a crash in "Soviet Soldier Volkov & Chitzkoi", and polished the mission overall. [[#21347](https://github.com/OpenRA/OpenRA/pull/21347 "Add crash fix, minor polish to volkov-n-chitzkoi")] * Fixed technicians not being able to fire from a pillbox. [[#20538](https://github.com/OpenRA/OpenRA/pull/20538 "Add the ability for technician and rocket soldier to fire from a pillbox")] * Fixed rocket soldiers not being able to fire at aircraft from a pillbox. [[#20538](https://github.com/OpenRA/OpenRA/pull/20538 "Add the ability for technician and rocket soldier to fire from a pillbox")] * Fixed map import utility command mixing up barbed and wooden fences. [[#21373](https://github.com/OpenRA/OpenRA/pull/21373 "Fix RA+CnC map import of BARB/FENC")] * Removed the ability to hide units and structures behind Iron Curtain. [[#20832](https://github.com/OpenRA/OpenRA/pull/20832 "Increase Iron Curtain's footprint #20832"), [#21561](https://github.com/OpenRA/OpenRA/pull/21561 "Remove IRON offset from RA1 map imports")] * Removed map `Haos Ridges`. [[#20923](https://github.com/OpenRA/OpenRA/pull/20923 "Add Shuriken Island to the RA official map pool")] * Removed an incorrect difficulty definition from `Evacuation` and adjusted the AI bomber attack patterns. [[#21244](https://github.com/OpenRA/OpenRA/pull/21244 "Change bombers, remove Hard from Evacuation")] * Improved Naval AI. [[#21018](https://github.com/OpenRA/OpenRA/pull/21018 "Better Naval AI")] * Polished spy disguise targeting. [[#21277](https://github.com/OpenRA/OpenRA/pull/21277 "Don't allow to unspy a spy")] * Balance Changes: adapt to community BI 4.3 rules [[#21544](https://github.com/OpenRA/OpenRA/pull/21544 "RA balance update")] - Thief health 8000 (up from 5000), speed 72 (up from 68) - Grenadier cost 150 (down from 160) - Tanya cost 1800 (up from 1500) - Iron Curtain cost 2000 (up from 1500) - Tesla coil power consumption 80 (down from 100) - Ranger health 18000 (up from 15000) - Light tank health 23000 (down from 26000) - Heavy tank speed 64 (up from 60) - Demo truck wood damage 40 then 55 (up from 25 then 50) - Mobile Gap Generator creates shroud 7c0 (up from 6c0) - V2 Rocket Launcher reload delay 215 (down from 240) - Infantry detection 1c512 (up from 1c0) - Flame Tower detects cloak 5 cells (down from 6) - Rocket soldier anti-air tracking 9c0 (down from 11c0) - Yak min range 2c512 (down from 3c0) - Sub Pen power 20 (down from 30) - Shipyard power 20 (down from 30) - Naval transport cost 500 (down from 700), speed 115 (down from 128), health 40000 (up from 35000) **Tiberian Dawn** * Added offsets to smudge smoke and fires. 🔥 [[#21272](https://github.com/OpenRA/OpenRA/pull/21272 "Add support for custom smudge smoke offset and add flame spawns to RA/TD - continued"), [#21292](https://github.com/OpenRA/OpenRA/pull/21292 " Fix smudges incorrectly generating on slopes")] * Added an in-game database describing buildings and units. [[#21553](https://github.com/OpenRA/OpenRA/pull/21553), [#21615](https://github.com/OpenRA/OpenRA/pull/21615 "Polishing up mission UI"), [#21631](https://github.com/OpenRA/OpenRA/pull/21631 "Overhaul TD encyclopedia UI")] * Fixed the cargo plane not landing at the top of the airstrip. [[#21107](https://github.com/OpenRA/OpenRA/pull/21107 "Add more airdrop options")] * Fixed infantry in landing craft exiting in a different order than they appear. [[#21362](https://github.com/OpenRA/OpenRA/pull/21362 "Correct landing craft passenger subcells")] * Fixed map import utility command mixing up barbed and wooden fences. [[#21373](https://github.com/OpenRA/OpenRA/pull/21373 "Fix RA+CnC map import of BARB/FENC")] * Fixed up wording of mission briefings, objectives and notifications. [[#21570](https://github.com/OpenRA/OpenRA/pull/21570 "Missions rules.yaml wording/typo fixes")] * Fixed mission `nod-06c` secondary capture objective not working. [[#21699](https://github.com/OpenRA/OpenRA/pull/21699 "Correct nod-06c capture objective")] * Polished missions `gdi05b` and `gdi05c`; the GDI will now fail if its base is destroyed before being discovered. [[#21247](https://github.com/OpenRA/OpenRA/pull/21247 "Add base failure, Nod defense to gdi05b & gdi05c")] * Polished in-game info menus. [[#21168](https://github.com/OpenRA/OpenRA/pull/21168 "Fix margins of TD ingame menu panels.")] **Dune 2000** * Added support for higher colour depth R16 sprites in D2k (instead of R8). [[#21240](https://github.com/OpenRA/OpenRA/pull/21240 "Use higher colour depth R16 sprites in D2k."), [#21258](https://github.com/OpenRA/OpenRA/pull/21258 "Replace D2k 8-bit custom tiles with 16-bit equivalents"), [#21372](https://github.com/OpenRA/OpenRA/pull/21372 "Replace BLOXMAS.R8 with R16 eqivalent"), [#21462](https://github.com/OpenRA/OpenRA/pull/21462 "Make MiniYaml inherits and removal more flexible"), [#21508](https://github.com/OpenRA/OpenRA/pull/21508 "Fix mod content installers.")] * Added a delay to the CHOAM space frigate before and after unloading cargo. [[#21107](https://github.com/OpenRA/OpenRA/pull/21107 "Add more airdrop options")] * Added temporary cloaking to the Saboteur. [[#20824](https://github.com/OpenRA/OpenRA/pull/20824 "Added manual Saboteur cloaking"), [#21001](https://github.com/OpenRA/OpenRA/pull/21001 "Remove a bogus CanDeploy check from order resolving for charge deploys"), [#21661](https://github.com/OpenRA/OpenRA/pull/21661 "Add deploy while moving to Saboteur")] * Added unique player join/leave and lobby option change sounds. [[#21265](https://github.com/OpenRA/OpenRA/pull/21265 "Add unique beacon and join/leave/change sounds in lobby"), [#21566](https://github.com/OpenRA/OpenRA/pull/21566 "Add sounds on joining and leaving skirmish menu")] * Added a 6 minute delay before the Shai Hulud spawns. 3.3 minutes for singleplayer. [[#21227](https://github.com/OpenRA/OpenRA/pull/21227 "Add initial delay for ActorSpawnManager")] * Added husks for Sonic tank, Missile tank, Deviator. Use a brighter overlay. Added shrapnels to tank explosions. [[#21307](https://github.com/OpenRA/OpenRA/pull/21307)] * Added new cliff tiles. [[#21221](https://github.com/OpenRA/OpenRA/pull/21221 "D2k map pool update - november 2023")] * Added new map `Worm Graveyard` which features repairable passages. [[#21221](https://github.com/OpenRA/OpenRA/pull/21221 "D2k map pool update - november 2023")] * Changed the beacon sound. [[#21265](https://github.com/OpenRA/OpenRA/pull/21265 "Add unique beacon and join/leave/change sounds in lobby")] * Changed spice bloom to act more like the original. [[#21431](https://github.com/OpenRA/OpenRA/pull/21431 "Spice bloom refactor")] * Fixed Harvesters displaying pickup indicators on the shellmap. [[#21722](https://github.com/OpenRA/OpenRA/pull/21722 "D2k shellmap: Hide pickup indicators")] * Fixed smoke still rendering when a unit was picked up by carryall. [[#21131](https://github.com/OpenRA/OpenRA/pull/21131 "Those trait should work only when in world as well")] * Fixed Devastator weapon missing area of effect. [[#21222](https://github.com/OpenRA/OpenRA/pull/21222 "Fix Devastator AoE")] * Fixed an oversight in the script of `Harkonnen 09a`. [[#21177](https://github.com/OpenRA/OpenRA/pull/21177 "Fix set of buildings of AtreidesSmall2Base in harkonnen09a.lua")] * Fixed `Harkonnen 02a` and `Harkonnen 02b` missing primary objectives. [[#21245](https://github.com/OpenRA/OpenRA/pull/21245 "Fix D2k objectives, alerts in Ha2, Or4, At5")] * Fixed Outpost owner tooltip being visible for Dune 2000 missions `Ordos 04` and `Harkonnen 05`. [[#21723](https://github.com/OpenRA/OpenRA/pull/21723 "Hide owner row for D2k special mission Outposts")] * Fixed spice blooms triggering harvester under attack notification. [[#21242](https://github.com/OpenRA/OpenRA/pull/21242 "Add ExludeDamageTypes to HarvesterAttackNotifier"), [#21504](https://github.com/OpenRA/OpenRA/pull/21504 "Fix typo in HarvesterAttackNotifier")] * Fixed Trike muzzle offsets and fixed a bug where Trikes sometimes stalled when on attack move. [[#21267](https://github.com/OpenRA/OpenRA/pull/21267 "Fix trike muzzle sequence")] * Fixed engineer being unable to repair ally husks. [[#21436](https://github.com/OpenRA/OpenRA/pull/21436 "Fix engineer cannot infiltrate ally vehicle in D2k")] * Fixed disabled command bar buttons being click-through. [[#21534](https://github.com/OpenRA/OpenRA/pull/21534 "Fix click through for disabled command bar buttons")] * Fixed up wording of mission briefings, objectives and notifications. [[#21570](https://github.com/OpenRA/OpenRA/pull/21570 "Missions rules.yaml wording/typo fixes")] * Polished up objectives in `Ordos 04` and `Atreides 05`. [[#21245](https://github.com/OpenRA/OpenRA/pull/21245 "Fix D2k objectives, alerts in Ha2, Or4, At5")] * Updated maps `Red Chasm`, `Death Depths` and `The Duell` for equal distance to spice fields for each player and equal spice amounts for each player, along with minor balance adjustments. [[#21221](https://github.com/OpenRA/OpenRA/pull/21221 "D2k map pool update - november 2023")] * Polished effects & palettes. [[#21210](https://github.com/OpenRA/OpenRA/pull/21210 "Simplify and polish D2k effects/palettes.")] * Polished the AI behaviour. [[#21226](https://github.com/OpenRA/OpenRA/pull/21226 "Minor adjustments for D2k AI")] * Removed map `Cliff maze`. [[#21221](https://github.com/OpenRA/OpenRA/pull/21221 "D2k map pool update - november 2023")] **Engine and Modding** * Added support for using `InstantlyRepairs` via the Lua API. [[#20980](https://github.com/OpenRA/OpenRA/pull/20980 "Add InstantlyRepairsProperties")] * Added support for custom sounds for player leave, join and option change. [[#20050](https://github.com/OpenRA/OpenRA/pull/20050 "Added lobby sounds for leave, join and option change")] * Added support for more lobby options in single-player missions menu. [[#20934](https://github.com/OpenRA/OpenRA/pull/20934 "Allow mission use lobby options"), [#21169](https://github.com/OpenRA/OpenRA/pull/21169 "Fix a collection of mission browser layout issues"), [#21465](https://github.com/OpenRA/OpenRA/pull/21465 "Fixed a crash on empty mission options"), [#21710](https://github.com/OpenRA/OpenRA/pull/21710 "Re-add a mini lobby options menu to missionbrowser")] * Added order name argument to `INotifyOrderIssued` interface. [[#21516](https://github.com/OpenRA/OpenRA/pull/21516 "Pass order name to OrderEffects")] * Added more code style and quality rules. [[#20957](https://github.com/OpenRA/OpenRA/pull/20957 "Enable Culture Code Quality Rules"), [#21000](https://github.com/OpenRA/OpenRA/pull/21000 "Enforce more code style rules"), [#20996](https://github.com/OpenRA/OpenRA/pull/20996 "Enable Code Quality rule CA1851"), [#21013](https://github.com/OpenRA/OpenRA/pull/21013 "Enable Roslynator"), [#21176](https://github.com/OpenRA/OpenRA/pull/21176 "Enable more Roslynator rules"), [#21175](https://github.com/OpenRA/OpenRA/pull/21175 "Fix a collection of issues reported by analyzers of VS2022 #21175"), [#21192](https://github.com/OpenRA/OpenRA/pull/21192 "Enable more Roslynator rules #21192"), [#21211](https://github.com/OpenRA/OpenRA/pull/21211 "Style fixes (.NET 8 SDK)"), [#21199](https://github.com/OpenRA/OpenRA/pull/21199 "Enforce code style rule IDE0055"), [#21216](https://github.com/OpenRA/OpenRA/pull/21216 "Add new code style rules (.NET 8)"), [#21217](https://github.com/OpenRA/OpenRA/pull/21217 "Change CA2211 from suggestion (analyser default level) to silent."), [#21202](https://github.com/OpenRA/OpenRA/pull/21202 "Enable more Roslynator rules"), [#21643](https://github.com/OpenRA/OpenRA/pull/21643 "Style fixes (.NET 9 SDK)")] * Added a Fluent-based translation system (Part 3). [[#20883](https://github.com/OpenRA/OpenRA/pull/20883 "More chrome string translation preparations"), [#20725](https://github.com/OpenRA/OpenRA/pull/20725 "Extract (transient) text notifications"), [#21385](https://github.com/OpenRA/OpenRA/pull/21385 "Extract strings from support power name and description"), [#21387](https://github.com/OpenRA/OpenRA/pull/21387 "Fix support power name not really being optional"), [#21389](https://github.com/OpenRA/OpenRA/pull/21389 "CheckTranslationReference lint pass learns additional checks"), [#21386](https://github.com/OpenRA/OpenRA/pull/21386 "Extract strings from resource renderer"), [#21419](https://github.com/OpenRA/OpenRA/pull/21419), [#21428](https://github.com/OpenRA/OpenRA/pull/21428 "Fix TSVeinRenderer not having tooltip translated"), [#21481](https://github.com/OpenRA/OpenRA/pull/21481 "Fix Survival01 mission objective text"), [#21483](https://github.com/OpenRA/OpenRA/pull/21483 "Fix untranslated speakers"), [#21484](https://github.com/OpenRA/OpenRA/pull/21484 "Expose factions to localisation"), [#21496](https://github.com/OpenRA/OpenRA/pull/21496 "Fix untranslated factions in GameInfoStats"), [#21490](https://github.com/OpenRA/OpenRA/pull/21490 "Teach CheckTranslationReference about translations in Lua scripts"), [#21503](https://github.com/OpenRA/OpenRA/pull/21503 "Prevent community mods from warning on unused translations in the common assets"), [#21525](https://github.com/OpenRA/OpenRA/pull/21525 "Allow localized messages on warheads"), [#21489](https://github.com/OpenRA/OpenRA/pull/21489 "Expose bot names to localization"), [#21551](https://github.com/OpenRA/OpenRA/pull/21551 "Fix spelling errors and add naming consistency to translation keys"), [#21552](https://github.com/OpenRA/OpenRA/pull/21552), [#21602](https://github.com/OpenRA/OpenRA/pull/21602 "Rename Fluent-related code to be more precise."), [#21601](https://github.com/OpenRA/OpenRA/pull/21601 "Expose mod.yaml content to localisation."), [#21588](https://github.com/OpenRA/OpenRA/pull/21588 "Expose hotkeys to localisation."), [#21621](https://github.com/OpenRA/OpenRA/pull/21621 "Fix lua failing to translate strings with arguments"), [#21584](https://github.com/OpenRA/OpenRA/pull/21584 "Fix defense spelling"), [#21547](https://github.com/OpenRA/OpenRA/pull/21547 "English language copy editing + fact checking"), [#21622](https://github.com/OpenRA/OpenRA/pull/21622 "Rework Fluent file path and yaml references."), [#21639](https://github.com/OpenRA/OpenRA/pull/21639 "Fix RA mod content"), [#21708](https://github.com/OpenRA/OpenRA/pull/21708 "Fix ordos-04 to use internal bot names."), [#21750](https://github.com/OpenRA/OpenRA/pull/21750 "Adjust to a 4 space standard"), [#21751](https://github.com/OpenRA/OpenRA/pull/21751 "Remove punctuation from vs abreviation"), [#21675](https://github.com/OpenRA/OpenRA/pull/21675 "Fixup new lines of units descriptions and encyclopedias"), [21659](https://github.com/OpenRA/OpenRA/pull/21659 "Translation Key Fixes Round 2"), [#21678](https://github.com/OpenRA/OpenRA/pull/21678 "Minor Addition to Translation Key Fixes Round 2"), [#21775](https://github.com/OpenRA/OpenRA/pull/21775 "Removing unnecessary punctuation from descriptions"), [#21778](https://github.com/OpenRA/OpenRA/pull/21778 "Additional punctuation fixup")] * Added translation support for YAML defined chrome UI. [[#21134](https://github.com/OpenRA/OpenRA/pull/21134 "Extract chrome strings"), [#21171](https://github.com/OpenRA/OpenRA/pull/21171 "Fix lobby faction tooltip rendering."), [#21300](https://github.com/OpenRA/OpenRA/pull/21300 "Fix uses of LabelWidget.Text and ButtonWidget.Text to use GetText instead."), [#21309](https://github.com/OpenRA/OpenRA/pull/21309 "Adjust widget sizes to ensure they accommodate the English translation text"), [#21324](https://github.com/OpenRA/OpenRA/pull/21324, "Add [FieldLoader.Require] to TooltipInfoBase.Name"), [#21321](https://github.com/OpenRA/OpenRA/pull/21321 "Manually review chrome translation keys and do some deduplication"), [#21607](https://github.com/OpenRA/OpenRA/pull/21607 "Automated yaml fixup"), [#21609](https://github.com/OpenRA/OpenRA/pull/21609 "Extract translations from modcontent chrome")] * Added stricter checks for sprite sequence `Facings`. [[#21135](https://github.com/OpenRA/OpenRA/pull/21135 "Enforce stricter checks on sequence Facings.")] * Added support for loading sprites with pre-multiplied alpha. [[#21160](https://github.com/OpenRA/OpenRA/pull/21160 "Support loading sprites with pre-multiplied alpha.")] * Added support for changing the `ZOffset` of the actor preview of `ActorPreviewPlaceBuildingPreview`. [[#21159](https://github.com/OpenRA/OpenRA/pull/21159 "Allow changing ZOffset of renderables in ActorPreviewPlaceBuildingPreview #21159")] * Added support for indexed PNG bit depths 1, 2 and 4. [[#21138](https://github.com/OpenRA/OpenRA/pull/21138 " Support more indexed PNGs and compress PNGs")] * Added the Nod mobile stealth generator to TS. [[#21049](https://github.com/OpenRA/OpenRA/pull/21049 "Add the Nod mobile stealth generator")] * Added `RegionProximityCapturable` for custom ProximityCapture footprints. [[#21123](https://github.com/OpenRA/OpenRA/pull/21123 "Add celltrigger support to ProximityCapturable")] * Added file name, line number and frames to the error message on invalid sequence configurations. [[#21390](https://github.com/OpenRA/OpenRA/pull/21390 "Add a more helpful crash on missing frames")] * Added `VersionLabelLogic`. [[#21603](https://github.com/OpenRA/OpenRA/pull/21603 "Extract version label chrome logic to a dedicated class")] * Added an error when quick install can't connect to content mirrors. [[#21460](https://github.com/OpenRA/OpenRA/pull/21460 "Download failure error.")] * Added `LoadLocalPlayerProfileLogic` making main menu profile optional. [[#21604](https://github.com/OpenRA/OpenRA/pull/21604 "Extract player profile loading chrome logic to a dedicated class")] * Renamed `*_RIGHT` to `*_WIDTH` and `*_BOTTOM` to `*_HEIGHT` in integer expressions for widgets. [[#21608](https://github.com/OpenRA/OpenRA/pull/21608 "Rename *_RIGHT to *_WIDTH and *_BOTTOM to *_HEIGHT in integer expressions for widgets")] * Changed help commands order to alphabetical. [[#21499](https://github.com/OpenRA/OpenRA/pull/21499 "Order help commands by name")] * Made the `Bullet` projectile extendable. [[#20931](https://github.com/OpenRA/OpenRA/pull/20931 "Make Bullet projectile extensible")] * Made Mod Content optional and added ability to define custom file systems. [[#21598](https://github.com/OpenRA/OpenRA/pull/21598 "Replace hardcoded mod.yaml Packages list with a mod-defined filesystem loader"), [#21623](https://github.com/OpenRA/OpenRA/pull/21623 "Rework mod content installation."), [#21627](https://github.com/OpenRA/OpenRA/pull/21627 "Fix Makefile \"version\" rule."), [#21629](https://github.com/OpenRA/OpenRA/pull/21629 "Replace modcontent"), [#21651](https://github.com/OpenRA/OpenRA/pull/21651 "Fix D2k \"missing\" music and movies")] * Fixed `ProximityExternalCondition` not updating actors that changed owner after activation. [[#20511](https://github.com/OpenRA/OpenRA/pull/20511 "Fix ProximityExternalCondition ignoring the owner change event")] * Fixed `DropPodsPower` pinging the minimap without deploying. [[#20806](https://github.com/OpenRA/OpenRA/pull/20806 "Fix Drop Pods")] * Fixed `Bullet` projectile incorrectly bouncing off force fired targets. [[#21061](https://github.com/OpenRA/OpenRA/pull/21061 "Bullet now explodes on impact when hitting target")] * Fixed `TerrainPositions` for targets not being serialized. [[#21021](https://github.com/OpenRA/OpenRA/pull/21021 "Fix terrain positions for targets not being serialized for Orders")] * Fixed `TakeOffOnCreation` still blocking unit production. [[#20825](https://github.com/OpenRA/OpenRA/pull/20825 "Fix TakeOffOnCreation"), [#21076](https://github.com/OpenRA/OpenRA/pull/21076 "Fix crashing when transports are loaded via lua and related regressions"), [#21366](https://github.com/OpenRA/OpenRA/pull/21366 "Spawn aircraft occupying land or at cruise altitude")] * Fixed the possibility of reload delays becoming 0 with modifiers. [[#21074](https://github.com/OpenRA/OpenRA/pull/21074 "Remove the possibility of ReloadDelay becoming 0 with modifiers")] * Fixed actors not tilting on slopes in map editor. [[#21271](https://github.com/OpenRA/OpenRA/pull/21271 "Adds tilting on slopes to suitable actor previews"), [#21572](https://github.com/OpenRA/OpenRA/pull/21572 "Fix DynamicFacingInit not being dynamic")] * Fixed missing map files preventing map saving in the map editor. [[#21345](https://github.com/OpenRA/OpenRA/pull/21345 "Fix missing map files preventing map saves")] * Fixed `ActorSpawnManager` using the same spawn point for all actors that are spawned in one go. [[#21437](https://github.com/OpenRA/OpenRA/pull/21437 "Fix actorSpawnManager use only one spawnpoint for all actors.")] * Fixed a crash in `Encyclopedia` in combination with multiple `Tooltip`. [[#21538](https://github.com/OpenRA/OpenRA/pull/21538 " Fix tooltips in the Encyclopedia.")] * Fixed the amount of terrain types being limited to 32. [[#21568](https://github.com/OpenRA/OpenRA/pull/21568 "Allow more than 32 terrain types")] * Fixed parallel queues not pausing production for more than one of the same queued item. [[#21480](https://github.com/OpenRA/OpenRA/pull/21480 "Fix parallel queues not pausing production for more than one of same item queued")] * Fixed `ProductionTabsWidget` not detecting `ProductionQueue` getting enabled/disabled during its lifetime. [[#21162](https://github.com/OpenRA/OpenRA/pull/21162 "Fix ProductionTabsWidget not detecting ProductionQueue getting enabled/disabled during its lifetime")] * Fixed not all OpenGL errors getting reported. [[#21014](https://github.com/OpenRA/OpenRA/pull/21014 "Report all OpenGL errors")] * Fixed `LockOnInaccuracy` field being ignored on missiles. [[#21040](https://github.com/OpenRA/OpenRA/pull/21040 "Fix the inaccuracy used when lock on in Missile.")] * Fixed AI sometimes pausing `UnitBuilderBotModule` when it chooses to build a unit with a `UnitDelay` defined. [[#20892](https://github.com/OpenRA/OpenRA/pull/20892 "Fix bug that AI production pause when there are too many units in UnitDelays")] * Fixed `EjectOnDeath` not cancelling actor queued activities. [[#21084](https://github.com/OpenRA/OpenRA/pull/21084 "Callback in Passenger during UnloadCargo before re-adding it to the world")] * Fixed building placement position being incorrect on high altitude isometric maps. [[#20835](https://github.com/OpenRA/OpenRA/pull/20835 "Improve CandidateMouseoverCells logic")] * Fixed `Armament` not allowing `BurstDelays` of value 0. [#20675](https://github.com/OpenRA/OpenRA/pull/20675 "Fix Armament not working properly with value 0 in BurstDelays"), [#21214](https://github.com/OpenRA/OpenRA/pull/21214 "Fix pillbox not uncloaking upon firing")] * Fixed ProductionBar not showing full bar when units without value are produced. [[#21088](https://github.com/OpenRA/OpenRA/pull/21088 "Fix ProductionBar visually glitching for units without value")] * Fixed light source being unused in `ModelWidget`. [[#21117](https://github.com/OpenRA/OpenRA/pull/21117 "Several minor fixes to ModelWidget")] * Fixed `AutoCrusher` trying to crush hidden actors. [[#21115](https://github.com/OpenRA/OpenRA/pull/21115 "Make AutoCrusher aware of Cloak and Disguise"), [#21121](https://github.com/OpenRA/OpenRA/pull/21121 "Fix AutoCrusher not working.")] * Fixed `LeavesTrails` not turning off when the unit enters a transport or carryall. [[#21131](https://github.com/OpenRA/OpenRA/pull/21131 "Those trait should work only when in world as well"), [#21141](https://github.com/OpenRA/OpenRA/pull/21141 "Fix LeavesTrails add effect at where actor removed.")] * Fixed `InitialActor` property on `Carryall` not being initialised correctly. [[#21228](https://github.com/OpenRA/OpenRA/pull/21228 "Fix InitialActor in Carryall not initialized correctly")] * Fixed a crash when several pickup orders for a carryall are queued at the same actor. [[#21425](https://github.com/OpenRA/OpenRA/pull/21425 "Fix crash caused by queuing multiple pick up orders for a single unit.")] * Fixed muzzle position not being altered by `Hovers`. [[#21252](https://github.com/OpenRA/OpenRA/pull/21252 "adds Hovers WorldVisualOffset to muzzle calculations"), [#21298](https://github.com/OpenRA/OpenRA/pull/21298 "Fix Hovers desync caused by changing 'WorldVisualOffset' in renderer.")] * Fixed `WithIdleOverlay` not working with facings. [[#19757](https://github.com/OpenRA/OpenRA/pull/21412 "WithIdleOverlay does not work with facings")] * Fixed `Aircraft` which aren't `Rearmable` stalling over targets. [[#21451](https://github.com/OpenRA/OpenRA/pull/21451 "Fix aircraft that don't rearm stalling over invalid targets"), [#21455](https://github.com/OpenRA/OpenRA/pull/21455 "Fix aircraft stalling for invalid targets"), [#21479](https://github.com/OpenRA/OpenRA/pull/21479 "Fix a crash caused by invalid target in FlyAttack")] * Fixed `AutoTarget` not validating all attack bases. [[#21452](https://github.com/OpenRA/OpenRA/pull/21452 "Fix autotarget not checking all attack traits for targets")] * Fixed a crash in `EjectOnDeath` and causing overlaps despite free sub cells. [[#20515](https://github.com/OpenRA/OpenRA/pull/20515 "Fix EjectOnDeath checks"), [#21507](https://github.com/OpenRA/OpenRA/pull/21507 "Fixed a desync in Cargo.CurrentAdjacentCells"), [#21514](https://github.com/OpenRA/OpenRA/pull/21514 "Remove caching of CurrentAdjacentCells in Cargo")] * Fixed ready buildings being un-selectable via hotkeys when you need to scroll to them in production palette. [[#21453](https://github.com/OpenRA/OpenRA/pull/21453 "Allow hotkeying ready buildings not visible in production palette")] * Fixed orders being checked only for the first `InstantlyRepairs` trait. [[#21445](https://github.com/OpenRA/OpenRA/pull/21445 "Make InstantlyRepairs check types for the order issued")] * Fixed broken condition support for `InstantlyRepairable`. [[#21670](https://github.com/OpenRA/OpenRA/pull/21670 "Fix broken condition support for InstantlyRepairable")] * Fixed sequences crashing when they have both `Reverses: true` and `Alpha:` defined. [[#21619](https://github.com/OpenRA/OpenRA/pull/21619 "Fix crash when a sequences defines both Alpha and Reverses.")] * Fixed crushing not working properly on slopes. [[#21491](https://github.com/OpenRA/OpenRA/pull/21491 "Fix movement on ramps when moving to a subcell")] * Fixed carryalls picking up the shadow 👻. [[#21646](https://github.com/OpenRA/OpenRA/pull/21646 "Fix Animation shadow to account for height.")] * Removed the need for `PlaceholderModelSequence` in mod config. [[#21066](https://github.com/OpenRA/OpenRA/pull/21066 "Turn ModelRenderer and VoxelCache into traits")] * Removed default facing from `ReinforceWithTransport`. [[#21089](https://github.com/OpenRA/OpenRA/pull/21089 "ReinforceWithTransport: no hardcoded land facing")] * Removed voxel viewer from common asset browser. [[#21118](https://github.com/OpenRA/OpenRA/pull/21118 "Move Voxel assets browser preview definitions from common to ts")] * Removed buggy `Draggable` from `BackgroundWidget`. [[#21594](https://github.com/OpenRA/OpenRA/pull/21594 "Remove drag support from BackgroundWidget")] * Removed `PARENT_TOP` and `PARENT_LEFT` from widgets. [[#21605](https://github.com/OpenRA/OpenRA/pull/21605 "Remove PARENT_TOP and PARENT_LEFT from integer expressions for widgets")] * Improved TS map importer to better handle malformed maps. [[#21150](https://github.com/OpenRA/OpenRA/pull/21150 "ImportGen2Map: Fix imports of malformed maps Fixes #21126")] * Improved PNG filesize on save. [[#21225](https://github.com/OpenRA/OpenRA/pull/21225 "Task #20918 (Improve PNG filesize on save)")] * Trait changes: * Added `GrantChargedConditionOnToggle` trait. [[#20824](https://github.com/OpenRA/OpenRA/pull/20824 "Added manual Saboteur cloaking"), [#21001](https://github.com/OpenRA/OpenRA/pull/21001 "Remove a bogus CanDeploy check from order resolving for charge deploys"), [#21090](https://github.com/OpenRA/OpenRA/pull/21090 "GrantConditionOnDeployWithCharge requires no IMove")] * Added `FireWarheads` trait that detonates warheads periodically. [[#20808](https://github.com/OpenRA/OpenRA/pull/20808 "Add TS mobile EMP"), [#21096](https://github.com/OpenRA/OpenRA/pull/21096 "Small FireWarheads tweaks")] * Added `Locomotor` property for `Husk` trait. [[#20338](https://github.com/OpenRA/OpenRA/pull/20338 "Give husks the ability to crush")] * Added `AutoCarryCondition` to `AutoCarryall`. [[#20398](https://github.com/OpenRA/OpenRA/pull/20398 "AutoCarryall can receive manual order and auto action can be turn on/off by condition")] * Added `ProductionMinCashRequirement` to `UnitBuilderBotModule` and `BaseBuilderBotModule`. [[#20133](https://github.com/OpenRA/OpenRA/pull/20133 "Improve UnitBuilderBotModule and BaseBuilderBotModule multi-queue performance")] * Added `AssignRallyPointsInterval` to `BaseBuilderBotModule`. [[#21475](https://github.com/OpenRA/OpenRA/pull/21475 "AI uses better rally point placement")] * Added `AircraftTargetTypes` to `SquadManagerBotModule`. [[#21053](https://github.com/OpenRA/OpenRA/pull/21053 "Fix some basic bug in AI")] * Added `Offset` field to `WithVoxelBody`. [[#20808](https://github.com/OpenRA/OpenRA/pull/20808 "Add TS mobile EMP")] * Added `Offset` field to `WithDamageOverlayInfo`. [[#21116](https://github.com/OpenRA/OpenRA/pull/21116 "Add an Offset field to WithDamageOverlayInfo")] * Added `VoxelCache` and `ModelRenderer` traits. [[#21066](https://github.com/OpenRA/OpenRA/pull/21066 "Turn ModelRenderer and VoxelCache into traits")] * Added `TargetTerrainWithoutForceFire` to attack traits. [[#21124](https://github.com/OpenRA/OpenRA/pull/21124 "Allow actors to target terrain without force-fire")] * Added `FilenamePattern` to `DefaultSpriteSequence` and `TilesetFilenamesPattern` to `TilesetSpecificSpriteSequence` and `ClassicTilesetSpecificSpriteSequence`. [[#21136](https://github.com/OpenRA/OpenRA/pull/21136 "Add FilenamePattern support to sequences.")] * Added `InitialDelay` property to `ActorSpawnManager`. [[#21227](https://github.com/OpenRA/OpenRA/pull/21227 "Add initial delay for ActorSpawnManager")] * Added `ExludeDamageTypes` property to `HarvesterAttackNotifier`. [[#21242](https://github.com/OpenRA/OpenRA/pull/21242 "Add ExludeDamageTypes to HarvesterAttackNotifier")] * Added `RemoveOrders` property to `RejectsOrders` trait. [[#21233](https://github.com/OpenRA/OpenRA/pull/21233 "Add ability to remove all orders when RejectOrders is activated")] * Added `FlashTargetsInRadius` warhead. [[#21269](https://github.com/OpenRA/OpenRA/pull/21269 "implements flashing on healing units")] * Added properties `IsDecoration` and `Armament` to trait `WithAttackOverlay`. [[#21411](https://github.com/OpenRA/OpenRA/pull/21411 "Some necessary functions & fix for AttackOverlay")] * Added `WithSwitchableOverlay` trait. [[#21413](https://github.com/OpenRA/OpenRA/pull/21413 "Add WithSwitchableOverlay for Firestrom Generator")] * Added support for specifying arbitrary 2D polygons for mouse interaction. [[#21574](https://github.com/OpenRA/OpenRA/pull/21574 "Interactable: allow specifying arbitrary 2D polygon for mouse interaction")] * Added `MaxSmokeOffsetDistance` to `SmudgeLayer`. [[#21272](https://github.com/OpenRA/OpenRA/pull/21272 "Add support for custom smudge smoke offset and add flame spawns to RA/TD - continued"), [#21292](https://github.com/OpenRA/OpenRA/pull/21292 " Fix smudges incorrectly generating on slopes")] * Added `PayUpFront` to `ProductionQueue`. [[#21295](https://github.com/OpenRA/OpenRA/pull/21295 "Enable paying up front in Production queue"), [#21458](https://github.com/OpenRA/OpenRA/pull/21458 "Fix multiqueue")] * Added `UpdateFactionOnOwnerChange` flag to `Production` trait. [[#21219](https://github.com/OpenRA/OpenRA/pull/21219 "Update Production's Faction when its owner changes")] * Added `WaitTickBeforeProduce`, `WaitTickAfterProduce` and `LandOffset` to trait `ProductionAirdrop`. [[#21107](https://github.com/OpenRA/OpenRA/pull/21107 "Add more airdrop options")] * Added `EffectPaletteIsPlayerPalette` property to `SpawnActorPower` trait. [[#21563](https://github.com/OpenRA/OpenRA/pull/21633 "Support using player palettes as effect palette for SpawnActorPower")] * Changed default value of `BlockedCursor` property of `SpawnActorPower` and `GrantExternalConditionPower` traits. [[#21402](https://github.com/OpenRA/OpenRA/pull/21402 "Avoid redundant and hard-coded support power cursors")] * Moved `ValidRelations` from `Capturable` to `Captures`. [[#20261](https://github.com/OpenRA/OpenRA/pull/20261)] * Made `Cargo` trait conditional. [[#20534](https://github.com/OpenRA/OpenRA/pull/20534 "Made both Cargo and Carryall conditional")] * Made `Carryall` trait conditional. [[#20534](https://github.com/OpenRA/OpenRA/pull/20534 "Made both Cargo and Carryall conditional")] * Made `AutoCarryall` trait conditional. [[#20534](https://github.com/OpenRA/OpenRA/pull/20534 "Made both Cargo and Carryall conditional")] * Made `AutoCrusher` trait conditional. [[#21115](https://github.com/OpenRA/OpenRA/pull/21115 "Make AutoCrusher aware of Cloak and Disguise")] * Docking refactor. [[#20636](https://github.com/OpenRA/OpenRA/pull/20636 "Abstract docking from Refinery & Harvester"), [#20659](https://github.com/OpenRA/OpenRA/pull/20659 "Add TransformsIntoDockClient"), [#21380](https://github.com/OpenRA/OpenRA/pull/21380 "Minelayer: remove unnecessary requirement on Rearmable"), [#21072](https://github.com/OpenRA/OpenRA/pull/21072 "TS Service Depot: allow sell unit when repairing."), [#21565](https://github.com/OpenRA/OpenRA/pull/21565 "Last docking PR for release"), [#21662](https://github.com/OpenRA/OpenRA/pull/21662 "Fix harvesters refusing to allow queuing up docking orders when invalid")] * Added `DockHost` trait that allows the unit to dock to `Refinery`. * Added `DockClientManager` trait that allows `Harvester` to dock. * Added `GrantConditionOnClientDock` and `GrantConditionOnHostDock` traits. * Added `TransformsIntoDockClient` to allow transforming actors to interact with docks. * Replaced palette modifiers with custom fragment shaders. [[#21142](https://github.com/OpenRA/OpenRA/pull/21142 "Replace palette modifiers with custom fragment shaders"), [#21153](https://github.com/OpenRA/OpenRA/pull/21153 "Fix IRenderPostProcessPass texture unit binding. #21153"), [#21237](https://github.com/OpenRA/OpenRA/pull/21237 "Introduce Renderer.SwapWorldBuffer and Renderer.CloneWorldBuffer."), [#21331](https://github.com/OpenRA/OpenRA/pull/21331 "Renderer: Dispose worldBuffer only when it was initialized.")] * `MenuPaletteEffect` → `MenuPostProcessEffect`. * `ChronoshiftPaletteEffect` → `ChronoshiftPostProcessEffect`. * `FlashPaletteEffect` → `FlashPostProcessEffect`. * `GlobalLightingPaletteEffect` → `TintPostProcessEffect`. * Warhead property `FlashPaletteEffect` → `FlashEffect`. * Removed d2k palettes `D2kFogPalette` and `PaletteFromScaledPalette`. [[#21210](https://github.com/OpenRA/OpenRA/pull/21210 "Simplify and polish D2k effects/palettes.")] * Changed resource storage traits. [[#20761](https://github.com/OpenRA/OpenRA/pull/20761 "Extract StoresResources from Harvester")] * `StoresResources` → `StoresPlayerResources`. * New `StoresResources` takes `Capacity` from `Harvester`. * `WithHarvesterPipsDecoration` → `WithStoresResourcesPipsDecoration` * Added color shift palettes. [[#21238](https://github.com/OpenRA/OpenRA/pull/21238 "Move ColorShift traits into the main repo.")] * Added `ColorPickerColorShift` * Added `FixedColorShift` * Added `FixedPlayerColorShift` * Added `PlayerColorShift` * Added vertex effects to `Cloak`. [[#21215](https://github.com/OpenRA/OpenRA/pull/21215 "Replace Cloak palette effects with vertex effects")] * Added `CloakStyle` property with 4 options: `None`, `Alpha`, `Color`, `Palette`. * Added `CloakedAlpha` property. * Added `CloakedColor` property. * `Palette` property was renamed to `CloakedPalette` and is null by default. * Made `WeatherOverlay` conditional. [[#21182](https://github.com/OpenRA/OpenRA/pull/21182 "Allow WeatherOverlay fade in/out when enabled/disabled")] * Added property `FadeOutTicks` * Added property `FadeInTicks` * Added property `InitialParticlePercentage` * Made `Hovers` work on all actors. [[#21338](https://github.com/OpenRA/OpenRA/pull/21338 "Hovers: remove dependency on IMove trait")] * Renamed `Explodes` to `FireWarheadsOnDeath` and `ThrowsShrapnel` to `FireProjectilesOnDeath`. [[#21303](https://github.com/OpenRA/OpenRA/pull/21303 "Rename Explodes to FireWarheadOnDeath and ThrowsShrapnel to FireProjectilesOnDeath")] **Lua API** * Check for Halloween :jack_o_lantern: has been replaced by a check against any date. [[#21125](https://github.com/OpenRA/OpenRA/pull/21125)] **Packaging** * Deprecated OpenGL 2.1 [[#21143](https://github.com/OpenRA/OpenRA/pull/21143 "Remove legacy OpenGL support."), [#21145](https://github.com/OpenRA/OpenRA/pull/21145 "Fix shader type conversion.")] * Updated Linguini to 0.8.1 [[#21099](https://github.com/OpenRA/OpenRA/pull/21099 "Update Linguini to 0.6"), [#21510](https://github.com/OpenRA/OpenRA/pull/21510 "Update Linguini to 0.8.1")] * Updated DiscordRichPresence to 1.2.1.24 [[#21100](https://github.com/OpenRA/OpenRA/pull/21100 "Update DiscordRichPresence to version 1.2.1.24")] * Updated Pfim to 0.11.3. [[#21559](https://github.com/OpenRA/OpenRA/pull/21559 "Update Pfim to 0.11.3.")] * Updated SDL to 2.32.0. [[#21644](https://github.com/OpenRA/OpenRA/pull/21644 "Update SDL to 2.30.9 (OpenRA-SDL2-CS 1.0.41)"), [#21743](https://github.com/OpenRA/OpenRA/pull/21743 "Update SDL to 2.32.0")] * Updated `DependancyModel` to 6.0.2. [[#21657](https://github.com/OpenRA/OpenRA/pull/21657 "Fix unrelated CVE warnings")] * Updated `NuGet.CommandLine` to 6.12.1. [[#21664](https://github.com/OpenRA/OpenRA/pull/21664 "Fix \"Package 'NuGet.CommandLine' 4.4.1 has a known moderate severity vulnerability\" #21664")] * Added a backwards compatible AppStream developer name. [[#21406](https://github.com/OpenRA/OpenRA/pull/21406 "AppStream Metadata: Add developer name")] * Automatically enable "Game Mode" on Apple Silicon. [[#21524](https://github.com/OpenRA/OpenRA/pull/21524 "Enable `Game Mode` on macOS >= 14.")] * Improved AppImage compatibility with modern Linux distros that don't include `libfuse2`. [[#21635](https://github.com/OpenRA/OpenRA/pull/21635 "use appimagetool with non-glibc linux support"), [#21648](https://github.com/OpenRA/OpenRA/pull/21648 "Install missing linux utilities")] * Fixed linux distributions messing up the support folder location. [[#21583](https://github.com/OpenRA/OpenRA/pull/21583 "Fixed wrong support folder when using .NET 8 on Unix"), [#21585](https://github.com/OpenRA/OpenRA/pull/21585 "Fixed wrong support folder when using .NET 8 on other Unix variants")] **Documentation** * Added marking of deprecated Lua methods. [[#21110](https://github.com/OpenRA/OpenRA/pull/21110 "Added missing deprecation notices to Lua docs")] * Fixed EmmyLua export to align with upstream Lua Language Server changes. [[#21109](https://github.com/OpenRA/OpenRA/pull/21109)] * Improved Lua type documentation and bindings. [[#21501](https://github.com/OpenRA/OpenRA/pull/21501 "Improve Lua type documentation and bindings."), [#21740](https://github.com/OpenRA/OpenRA/pull/21740 "Add Lua documentation details")] * Fixed lua API lying that actors occupy space or have a facing. [[#21684](https://github.com/OpenRA/OpenRA/pull/21684 "Don't bind bogus Location or Facing lua properties for actors without Location or Facing")] * Automated updates for our [documentation website](https://docs.openra.net/en/release/). [[#21130](https://github.com/OpenRA/OpenRA/pull/21130 "Automate documentation website updates"), [#21224](https://github.com/OpenRA/OpenRA/pull/21224 "Fix documentation workflow automation"). [#21232](https://github.com/OpenRA/OpenRA/pull/21232 "Fix documentation workflow always trying to commit"), [#21254](https://github.com/OpenRA/OpenRA/pull/21254 "Fix documentation workflow always trying to commit #2")] **Utility** * Added a command to extract strings from rules for localisation. [[#21204](https://github.com/OpenRA/OpenRA/pull/21204 "Add a utility command for extracting translation from rules and localise unit names / descriptions / encyclopedia"), [#21241](https://github.com/OpenRA/OpenRA/pull/21241 "Add Translation to TooltipDescription")] * Added a utility command to update, unpack, repack `.oramap` files. [[#21138](https://github.com/OpenRA/OpenRA/pull/21138 "Support more indexed PNGs and compress PNGs."), [#21231](https://github.com/OpenRA/OpenRA/pull/21231 "Fix a compiler warning in MapCommand.cs")] * Added a lint test that checks for matching actor and Lua script names. [[#21251](https://github.com/OpenRA/OpenRA/pull/21251 "Rename the Radar Dome in Soviets08a to avoid a crash")] * Fixed subcell units being incorrectly imported from Gen1 maps. [[#21397](https://github.com/OpenRA/OpenRA/pull/21397 "Fix subcells imported from Gen1 maps")] * Fixed a crash in `--png`. [[#21582](https://github.com/OpenRA/OpenRA/pull/21582)]