Development Branch
General improvements
Fixed map-player bots not working on dedicated servers. [#19418 ]
Fixed suicides counting as kill in the game score. [#19625 ]
Fixed player color in the introduction panel not getting applied. [#19631 ]
Fixed custom map previews failing to load on the multiplayer server list. [#19322 ]
Fixed aircraft not dropping targets when all valid weapons are out of ammo. [#18511 ]
Fixed weather particle physics. [#19596 ]
Fixed crashes related to special unicode character and Lua scripting. [#19160 ]
Fixed a rare crash if a unit is killed while collecting a level-up crate. [#19305 ]
Fixed Move jumpy-ness and occasional facing mismatch. [#19220 , #19349 ]
Fixed possible endless loop in replay recorder while opening save file. [#19209 ]
Fixed a crash when using legacy GL. [#19369 ]
Fixed that server could freeze under certain circumstances. [#19429 ]
Fixed inconsistencies with text fields yielding keyboard focus when pressing esc
. [#19484 ]
Fixed LockHandicap
having no effect. [#19462 ]
Fixed sound bug. [#19660 ]
Fixed icons on KDE environments. [#19553 ]
Fixed multiplayer servers lingering on the public game list after they have shut down. [#19627 ]
Fixed renderer initialization failing on OSX Catalina 10.15.7. [#19675 , #19698 ]
Fixed kill statistics including walls and non-player actors. [#19773 ]
Fixed the default production scaling with multiple production buildings not providing a linear production speed-up. [#19791 ]
Fixed a crash when exits of dead buildings were determined. [#19709 ]
Fixed end game chat not yielding keyboard focus. [#19722 ]
Fixed Launch.Map
not accepting map names. [#19602 ]
Fixed launch scripts not running from other working directories. [#19799 ]
Added a random faction indicator in the in-game player list. [#18980 ]
Added a "structure sold" notification when selling buildings. [#19043 ]
Added configurable hotkeys for team chat (Enter
) and general chat (Shift
+ Enter
). [#19460 ]
Added option to hide UI feedback messages from the in-game chat. [#18905 ] [#19794 ]
Added a panel displaying the lobby options to the ingame menu. [#19461 ]
Added transient notifications to the bottom left of the screen. [#19458 ]
Improved tooltip display for long map names in the server list, lobby and map chooser. [#19544 , #19543 ]
Improved the error message displayed when fetching the battlefield news fails. [#19776 ]
Polished the spectator UI for mission replays and multiplayer missions. [#19635 ]
Changed harvesters to only search for refineries when needing to unload. [#18586 ]
Changed force setting a rallypoint to changing the closest production building to Primary. [#19493 ]
Changed the default game name to player's game
. [#19626 ]
Removed unnecessary chrome yaml declarations. [#18436 ]
Removed global fallback to software cursors on error in favor of per-cursor fallback. [#19387 , #19590 ]
Removed superfluous tooltips from dummy actors. [#19440 ]
Removed hacks around checking sync while disposing the shellmap. [#19714 , #19741 ]
Defenses can now target during their construction animation. [#19731 ]
Performance improvements. [#17837 , #18792 , #18806 , #19056 , #19066 , #19095 , #19166 , #19173 , #19210 , #19223 , #19242 , #19264 , #19300 , #19269 , #19342 , #18670 , #19425 , #19443 , #19521 , #19558 , #19524 , #19546 , #19581 , #19560 , #19598 , #19525 , #19603 , #19606 , #19682 , #19691 , #19729 , #19749 , #19736 , #19786 ]
Overhauled MapPreview rule loading. [#19317 ]
Overhauled player color logic. [#19335 ], [#19474 , #19497 ]
Unified debug slash command names. [#19414 ], [#19597 ]
Added templates for up to five ingame menu tabs. [#19490 ]
Disabled chat for the first 5s (configurable) after joining a server. [#19486 ], [#19754 ]
Reworded lobby option tooltips to consider both disabled and enabled states. [#19754 ]
Red Alert
Fixed paratroopers showing two shadows. [#19315 ]
Fixed ore mines overlapping the artwork of Service Depots. [#19137 ]
Fixed haystacks being selectable. [#19499 ]
Fixed sonar pulse being deployable on land. [#17982 ]
Fixed Phase Transports not uncloaking while unloading [#19659 ]
Fixed a typo in the briefing of the first ant mission. [#19702 ]
Fixed issues on the Europe map. [#19742 ]
Added missions Allies 05b, 05c and 10a. [#19119 , #19155 , #19336 ]
Added missions Soviet 10, 11a and 11b. [#19158 , #19165 , #19191 ]
Added Counterstrike mission Fall of Greece 2: Evacuation
. [#19179 ]
Added Counterstrike mission Siberian Conflict 3: Wasteland
. [#18997 ]
Added Ant campaign mission 03. [#19042 ]
Added Aftermath mission In the Nick of Time
. [#19081 ]
Added naval unit rewards for crates collected in the water. [#19266 ]
Added twinkle effects to the gems. [#18711 ]
Adjusted Ant campaign mission 01 'Hard' difficulty to be less nightmarish. [#19472 ]
Polished barrel explosions. [#19127 , #19549 ]
Polished several miscellaneous aspects in some missions. [#19120 , #19169 , #19273 , #19292 , #19350 , #19392 , #19531 , #19738 ]
Polished mission difficulty dropdowns. [#19426 ]
Changed Technicians to have their own selection class. [#19251 ]
Changed unit speeds to account for movement code fix. [#19348 ]
Lowered selection priority of Thief. [#19301 ]
Balance changes [#19792 ]
Longbow anti-ground reload delay 34 (up from 30), burst delay 10 (up from 7)
Longbow anti-ground reload delay 34 (up from 30), burst delay 10 (up from 7)
Radar Dome cost 1500 (down from 1800)
Ranger speed 160 (down from 170), vision 7c0 (down from 8c0)
Tanya cost 1500 (up from 1200)
Dog chew time 20 (down from 45)
Dog jump 3c0 (up from 2c0)
Iron Curtain duration is 400 ticks (down from 500)
SAM missile max range 11c0 (up from 9c0)
Husks are restored with 15% health (down from 25%)
Demo truck health 2800 (down from 5000), speed 75 (down from 85)
Mine health 5000 (down from 10000)
Parabombs come from a single badger (down from 3), with health 40000 (up from 30000) and 10 bombs (up from 5)
Each bomb has range 6c0 (up from 3c0), fall speed 50 (up from 40), spread 1000 (up from 768), damage vs none 40 (up from 30) and vs wood 60 (up from 30)
Tiberian Dawn
Fixed civilian field terrain overlapping the artwork of Repair Facilities. [#19137 ]
Fixed and improved several smaller issues in various missions. [#19139 , #19412 ]
Fixed visceroids collecting crates. [#19395 ]
Added missions GDI 05c and 08b. [#19355 , #19353 ]
Polished mission difficulty dropdowns. [#19426 ]
Polished unit voice lines. [#19067 , #19746 , #19779 ]
Changed unit speeds to account for movement code fix. [#19371 ]
Changed the in-game chat to be styled with faction colors. [#19488 , #19501 , #19503 ]
Removed the unused multi-directional landing craft. [#19153 ]
Removed 'Civilian killed' EVA notification. [#19285 ]
Balance changes [#19778 ]
Orca: Health changed from 9000 to 10000; AA missile speed increased from 298 to 341.
Apache: AA damage vs Light armor increased from 50% to 55%; reload count increased from 1 to 2, and reload delay increased from 40 to 70.
Artillery: Damage vs Wood armor decreased from 120% to 100%
Stealth Tank: CloakDelay decreased from 90 to 85.
Guard Tower: Power consumption increased from 10 to 20.
Advanced Guard Tower: Burst increased from 1 to 2; BurstDelays set to 8; ReloadDelay increased from 15 to 30
Hand of Nod: Backup exit added.
Dune 2000
Fixed a crash if a Carryall is killed at the same instant it is unloading. [#19587 ]
Fixed a script error in Harkonnen 08. [#19344 ]
Fixed visual glitches on several buildings. [#19409 , #19439 ]
Fixed the impact sound of the Devastator's warhead. [#19411 ]
Fixed the cloak crate animation not being played. [#19550 ]
Fixed wrong animation frames on 'Hide Map' crate effect. [#19552 ]
Fixed handicap modifiers changing terrain damage to buildings. [#19695 ]
Fixed a crash when building placements are moved out of the map. [#19732 ]
Changed "Battlefield Control" label for system messages to "Mentat". [#18044 ]
Vehicles under 50% health now move at 75% speed. [#19468 ], [#19720 ]
Production overlay for multiple Heavy and Light Factories will only display on the primary building. [#19507 ]
Map Editor
Fixed invalid tiles being saved to disk. [#18927 ]
Fixed owners not updating properly. [#19766 ]
Added an unbuildable area overlay to the editor. [#18434 , #19469 ]
Added an error message when saving a map that exceeds the maximum player limit. [#18781 ]
Copy/paste will no longer clear brush each paste. [#19508 , #19624 ]
Engine and Modding
Added a loader for MEG V3 files. [#18443 ]
Added a loader for Microsoft ADPCM WAV files. [#19125 ]
Added a loader for MP3 files. [#19431 ]
Added a loader for OGG files. [#19495 ]
Added sprite loaders for C&C Remastered Collection. [#18543 ]
Added engine support for RGBA remap hue/saturation colour shifts. [#19367 ]
Added a loader for WSA files. [#17984 , #19498 ]
Added a lint check for trait placement on hardcoded actor names. [#19239 ]
Added a lint check for invalid tile definitions. [#18927 ]
Added a lint check for invalid mouse cursor definitions. [#17933 , #19351 , #19388 ]
Added terrain orientation support for Mobile. [#19569 ]
Added multi-sheet/palette rendering to TerrainSpriteLayer. [#18982 ]
Added alpha support to TerrainSpriteLayer. [#19172 ]
Added support for displaying voxels in the asset browser. [#17803 ]
Added support for custom settings panels. [#18948 ]
Added support to detect game installations by uninstaller location. [#18916 ]
Added Cursor
override for buttons and new ButtonCursor
, DefaultCursor
, WorldSelectCursor
, WorldDefaultCursor
chrome metric properties. [#18458 ]
Added alpha support to sequences. [#19122 ]
Added support to RgbaColorRenderer for BlendMode to be changed. [#18565 ]
Added a Fluent based translation system. [#18965 , #19573 ]
Added a hidden Game.EnableDiscordService
setting to disable the Discord client integration. [#19343 , #19537 ]
Added EngineRootPath csproj property to simplify SDK inheritance. [#19413 ]
Added ValidRelationships checks to BlocksProjectiles and Gate. [#18796 ]
Added linting for the Dune 2K building placement preview. [#19437 ]
Added support for mod defined flash images. [#19444 ]
Added disabled HitShape rendering to the "Show Combat Geometry" debug rendering. [#19467 ]
Added support for specifying the type and amount of resources destroyed by DestroyResourceWarhead
. [#18795 ]
Added support for TS-style tinted target flashes. [#19479 ]
Added support for mod defined application titles. [#19533 ]
Added support for having the Discord Rich Presence button link to a website. [#19676 , #19719 ]
Added support for twinkle effects on resources. [#18711 ]
Added logging for exceptions when the server list query fails. [#19628 ]
Added support for gapless looping music. [#19629 ]
Added an EngineCreditsFile
overwrite option to mod.yaml
. [#19739 ]
Fixed odd sprite size "frame hopping". [#19610 ]
Fixed bogus SpriteFrameType
channel handling. [#18938 , #18990 ]
Fixed several depth buffer issues. [#19561 , #19622 ]
Fixed Nullable type handling in Lua docs. [#19201 ]
Fixed a crash when GrantExternalConditionWarhead
was granted on an invalid target. [#19306 ]
Fixed Aircraft
idle speed ignoring speed modifiers. [#19453 ]
Fixed WithIdleOverlay
PlayerPalette editor rendering. [#19517 ]
Fixed duplicate Actor ID detection in the map editor. [#19530 ]
Fixed an edge case where the wrong sheet may be mapped to a depth sprite. [#19563 ]
Fixed formatting issues in the trait/Lua/weapon documentation outputs. [#19403 , #19664 ]
Fixed a crash when a capturable actor replaces itself with a non-capturable actor while being captured. [#19617 ]
Fixed incorrect path-finding logic around neighbouring cells on different heights. [#19692 ]
Significantly overhauled map resources and rendering. [#19059 , #19080 , #19090 , #19321 , #19656 , #19789 ]
Replaced hardcoded tilesets with mod-defined tileset loaders. [#18728 ]
Replaced custom placement preview palettes with explicit alpha values. [#18942 ]
Replaced projectile, WithParachute
and WithShadow
shadow palettes with ShadowColor
. [#19012 ]
Replaced last uses of 'seconds' with ticks in world simulation. [#19265 , #19295 ]
Replaced F
extension with string interpolation. [#19372 ]
Refactored internal game loop, OrderManager and netcode (WIP). [#19359 , #19398 , #19402 , #19404 , #19422 , #19447 , #19489 , #19451 , #19374 , #19608 , #19634 , #19646 , #19632 , #19653 , #19657 , #19640 , #19650 , #19694 , #19733 ]
Refactored and fixed sprite offset/ZRamp/depth handling (WIP). [#19559 ]
Randomized AI idle harvester scan intervals. [#19194 ]
Completed transition of internal "player stance" terminology to "player relationship". [#19129 ]
Improved support for zip files created by external tools. [#18945 ]
Improved performance of BlankLoadScreen
. [#18895 ]
Improved performance of FieldLoader
. [#19205 ]
Improved error handling for aud files with unsupported compression modes. [#18911 , #18937 ]
Improved UPnP port-forwarding behaviour. [#19021 , #19114 ]
Improved handling of game speed options. [#19297 ]
Improved minimap creation. [#19572 ]
Improved the launch-game.sh
zenity mod selector. [#19703 ]
Removed unused code from .aud reader. [#18911 ]
Removed the incomplete MiniYaml based translation system. [#18959 ]
Removed requirement for a palette to be defined for 32bpp assets. [#19445 , #19476 ]
Removed requirement for a palette to be defined for terrain. [#19446 ]
Removed own implementations of ReadOnlyList and Dictionary. [#19252 ]
Removed highlight, disabled, and iron curtain palettes. [#18550 ]
Removed hard-coded .vqa assumptions from the engine. [#18773 ]
Removed obsolete GenericSelectTarget
base order generator. [#18820 ]
Removed the enforcement of StyleCop rules in thirdparty mods. [#19615 ]
Changed renderer to downscale framebuffer resolution for large world viewports. [#18940 ]
Changed style rules to not highlight missing braces for oneliners in VSCode. [#19058 ]
Changed to use pattern matching. [#19018 , #19200 ]
Changed BuildingInfluence to track overlapping buildings in the same cell. [#19294 ]
Moved sprite scaling support from RenderSprites to Sequences. [#18986 ]
Moved Text notification handling from Game to its own class. [#19436 ]
Moved a using into the Mono specific code path. [#19796 ]
Moved selection hotkeys from world interaction widget into individual hotkey logic. [#19673 ]
Made ISpriteLoader aware of the source file name. [#19228 ]
Updated code to C#7.3 conventions. [#18995 , #19189 , #19199 , #19222 ]
Specify interaction bounds relative to the mod tile size. [#19174 ]
Trait Changes:
ActorSpawnManager
: Added random range support to SpawnInterval
. [#18794 ]
Carryall
: Added InitialActor
property for default cargo. [#19068 , #19620 ]
Chronoshiftable
: Restrict trait to Mobile
and Husk
actors. [#19243 ]
GrantConditionWhileAiming
: Fixed that condition wasn't revoked after attack stopped for non-turreted actors. [#19215 ]
SmokeTrailWhenDamaged
: Trait has been removed. Use LeavesTrails
instead. [#19152 ]
WithAimAnimation
: Fixed that it would continue to aim after attack stopped. [#19215 ]
Renamed SpawnMPUnits
to SpawnStartingUnits
, MPStartUnits
to StartingUnits
, MPStartLocations
to MapStartingLocations
, and CreateMPPlayers
to CreateMapPlayers
. [#18836 ]
Added condition support to Contrail
. [#19076 ]
Added condition support to ExplosionOnDamageTransition
. [#19207 ]
Added condition support to ActorLostNotification
. [#19246 ]
Added condition support to Harvester
. [#19373 ]
Added WithMakeOverlay
trait. [#19131 ]
Added facing support to WithAttackOverlay
. [#19131 ]
Added custom palette support to WithSpriteBody
. [#19131 ]
Added TransparentIndex
to PaletteFromFile
. [#19131 ]
Added AmmoUsage
property to Armament
and Minelayer
. [#19362 ]
Added GrantConditionOnTileSet
trait and applied it to igloos in RA and TD. [#19502 ]
Packaging
Changed toolchain and release packages to use .NET 5 by default. [#18947 , #17989 , #18955 , #19045 , #19026 , #19225 , #19293 , #19325 , #19379 , #19389 , #19687 , #19737 ]
Fixed several issues with the macOS compatibility build. [#19539 ]
Updated SharpZipLib to 1.3.3. [#19679 ]